Module erstellen

am 21.02.2007 - 17:34 Uhr in
Hallo
ich hab mal eine Frage zum erstellen von Modulen.
Ich hab ein Module gemacht, das eine Datenbank erstellt, eine Settings Seite hat und per cron upgedatet wird.
Jetzt fehlt nur noch die Einbindung in die Seite ;-)
erstmal zum Funktionsumfang.
Es soll ein antiSpam Module werden
anhand einer ip/Referer/UA liste sollen bestimmte User ausgeschlossen werden.
um die Funktionen optimal einbinden zu können, müsste ich unter anderem auch auf diese Funktion (http://de2.php.net/manual/de/function.header.php) zurückgreifen können.
Ist es möglich und wenn ja wie diese per Module aufzurufen?
Weiterhin müsste ggf. eine Seite (unabhängig von dem gesamten core System - vergleichbar mit "Front Page") für bestimmte ip/Referer/UA ausgegeben werden.
Wie ist so etwas möglich?
THX
- Anmelden oder Registrieren um Kommentare zu schreiben
hm, hast du schonmal die
am 21.02.2007 - 17:39 Uhr
hm, hast du schonmal die filter versucht die drupal eh mit sich bringt? in kombination mit dem spam module, oder fehlt dir da irgendwas an funktionalität?
gruß pebosi
gruß pebosi
--
https://pebosi.net
Einbindung von Modulen in Seite
am 21.02.2007 - 17:47 Uhr
Die "Einbindung von Modulen" (aus deinem Modulcode) in die "Seite" geschieht mit dem hook_menu.
Beispiel:
function deinmodul_menu($may_cache) {
$items = array();
if ($may_cache) {
$items[] = array(
'path' => 'ein_path', 'title' => t('Name deines Moduls'),
'callback' => 'name_der_funktion',//welche den HTML Output generiert
'access' => user_access('access content'),
'type' => MENU_SUGGESTED_ITEM
);
}
return $items;
}
md - drupalcenter
http://mdwp.de :: http://drupal.mdwp.de
vCard herunterladen
vg
md - DrupalCenter.de
mdwp* Drupal Consulting & Services
ich weiß jetzt nicht in wie
am 21.02.2007 - 18:13 Uhr
ich weiß jetzt nicht in wie weit die Funktion im spam module vorhanden ist aber:
aber das module soll folgendes machen:
verhindern des Zugriffes auf die Seite für:
Content Grabber, Web Spam, Sauger, Hijacker, Duplicate Content ...
wenn So ein Zugriff stattfindet, soll folgendes geschehen:
- Logeintrag
- header("HTTP/1.0 403 Forbidden");
- Ausgabe einer vorher definierten Seite
- chapcha falls es doch ein Mensch war - damit die Seite doch angeschaut werden kann
-----------------------
THX md
allerdings meint ich das nicht. Diese Funktion hab ich schon.
ich dachte eher an diese Funktion http://api.drupal.org/api/HEAD/function/drupal_goto (ich hab die im Quellcode von "Front Page" geguckt)
------------------------
ich hab jetzt aber noch eine frage.
in dem Module "Front Page" gibt es die Funktion [function front_page()]
wie wird diese Funktion aufgerufen bzw. wo?
Da in dieser Funktion ja die Anweisung für das Setzen der Frontpage steht.
THX
Urlaub an der Ostsee
Urlaub an der Ostsee
ich hab mir das jetzt noch
am 22.02.2007 - 17:13 Uhr
ich hab mir das jetzt noch mal angeschaut...
um das zu realisieren, müsste man (so wie ich das sehe) das core System verändern.
oder seht ihr da eine andere Möglichkeit?
Zeile 799 includes/bootstrap.inc
case DRUPAL_BOOTSTRAP_ACCESS:
// Deny access to hosts which were banned - t() is not yet available.
if (drupal_is_denied('host', $_SERVER['REMOTE_ADDR'])) {
header('HTTP/1.1 403 Forbidden');
print 'Sorry, '. $_SERVER['REMOTE_ADDR']. ' has been banned.';
exit();
}
break;
hier müsste dann anstelle des core-codes ein eigenen-code aus meinem Module aufgerufen werden.
mfg
Urlaub an der Ostsee
Urlaub an der Ostsee
Hmm, was genau möchtest Du
am 22.02.2007 - 17:20 Uhr
Hmm, was genau möchtest Du denn mit der Header-Funktion machen? Evtl. gibt es ja noch andere Möglichkeiten...
--
bv - drupalcenter.de
Der Besucher soll auf
am 22.02.2007 - 18:03 Uhr
Der Besucher soll auf folgendes getestet werden:
anhand einer erweiterbaren blacklist/ whitelist (inklusive auto update) sollen bestimmte Besucher geblockt werden
z.b.
header("HTTP/1.0 403 Forbidden");
die ("forbidden Message"); //Inklusive chapcha falls es doch ein Mensch war ;-)
oder umgeleitet werden.
z.b.
header('HTTP/1.0 301');
header('Location: http://www.SPAM-THE-WEB-NOT-ME.LOL/');
exit;
Urlaub an der Ostsee
Ein Script mit dieser
am 23.02.2007 - 09:41 Uhr
Ein Script mit dieser Funktionalität gibt es bei bot-trap.de einfach in die index.php per include einbinden und fertig.
gruß pebosi
gruß pebosi
--
https://pebosi.net
das Script kenne
am 23.02.2007 - 17:14 Uhr
das Script kenne ich.
Allerdings bietet es nicht alle genanten Funktionen.
Ich hab jetzt mal was geschrieben:
Folgendes muss im core angepasst werden:
includes/bootstrap.inc
Zeile 768:
....., DRUPAL_BOOTSTRAP_SESSION, DRUPAL_BOOTSTRAP_ACCESS, ....
Zeile 799:
case DRUPAL_BOOTSTRAP_ACCESS:
// Deny access to hosts which were banned - t() is not yet available.
if (drupal_is_denied('host', $_SERVER['REMOTE_ADDR'])) {
header('HTTP/1.1 403 Forbidden');
print 'Sorry, '. $_SERVER['REMOTE_ADDR']. ' has been banned.';
exit();
}
//include PR
require_once './sites/all/modules/pageRestrictor/pageRestrictor.inc';
pageRestrictor();
break;
Der code der Datei /sites/all/modules/pageRestrictor/pageRestrictor.inc
function pageRestrictor(){
global $user;
if($user->uid != '0' || (isset($user->pageRestrictor->status) && $user->pageRestrictor->status == 'true')) return;//only check anonymous user || check if anonymous user hase solve the test
if(isset($user->pageRestrictor->value, $user->pageRestrictor->key, $_POST[$user->pageRestrictor->key]) && $user->pageRestrictor->value == $_POST[$user->pageRestrictor->key]){
//anonymous user solve the Problem
$user->pageRestrictor[status] = 'true';
return;
}elseif(isset($user->pageRestrictor->key, $_POST[$user->pageRestrictor->key])){
//anonymous user do not solve the Problem
_pageRestrictor_403();
exit();
}
$user->pageRestrictor = array();
$user->pageRestrictor[status] = 'false'; //set the status to 'false'
.............
}
function _pageRestrictor_403(){
}
ihr könnt ja mal was dazu sagen.
Urlaub an der Ostsee