Menü aufrufen
Toggle preferences menu
Persönliches Menü aufrufen
Nicht angemeldet
Ihre IP-Adresse wird öffentlich sichtbar sein, wenn Sie Änderungen vornehmen.

Benutzer:Rene/BlockSpammer: Unterschied zwischen den Versionen

aus Stargate Wiki, dem deutschsprachigen Stargate-Lexikon
Beschreibung
Fehler im RegEx behoben
Zeile 18: Zeile 18:
$wgExtensionCredits['other'][] = array(
$wgExtensionCredits['other'][] = array(
'name' => 'BlockSpammer',
'name' => 'BlockSpammer',
'author' => 'René Raule',
'author' => 'Rene Raule',
         'version' => '0.1',
         'version' => '0.2',
'description' => 'Nicht angemeldete Benutzer dürfen keine externen Links anlegen.',
'description' => 'Nicht angemeldete Benutzer duerfen keine externen Links anlegen.',
'descriptionmsg' => 'block_spammer_error-desc',
'descriptionmsg' => 'block_spammer_error-desc',
'url' => 'http://www.stargate-wiki.de/index.php/Benutzer:Rene/BlockSpammer',
'url' => 'http://www.stargate-wiki.de/index.php/Benutzer:Rene/BlockSpammer',
Zeile 29: Zeile 29:
// Welche RegEx zeigen einen Spammer
// Welche RegEx zeigen einen Spammer
$wgBlockSpammerPatterns = array (
$wgBlockSpammerPatterns = array (
"/^http/i",  // if you want to block titles of articles that are URLs
  "/http/i",  // externe Links
);
  );


$wgHooks['ArticleSave'][] = 'wfCheckBlockSpammer';
$wgHooks['ArticleSave'][] = 'wfCheckBlockSpammer';


function wfBlockSpammer() {
function wfBlockSpammer() {
wfLoadExtensionMessages( 'BlockSpammer' );
  wfLoadExtensionMessages( 'BlockSpammer' );
}
}


function wfCheckBlockSpammer (&$article,&$user,&$text ) {
function wfCheckBlockSpammer (&$article,&$user,&$text ) {
global $wgBlockSpammerPatterns;
  global $wgBlockSpammerPatterns;
global $wgOut;
  global $wgOut;
 
   if($user->mId == 0) {
   if($user->mId == 0) {
     $t = PHPDiff($article->mContent."\n",$text."\n",2);
     $t = PHPDiff($article->mContent."\n",$text."\n",2);
  foreach ($wgBlockSpammerPatterns as $re) {
    foreach ($wgBlockSpammerPatterns as $re) {
  if (preg_match($re, $t)===1) {
      if (preg_match($re, $t)===1) {
  // too bad you can't pass parameter to errorpage
        $wgOut->errorpage('block_spammer_error_page_title', 'block_spammer_error' );
  $wgOut->errorpage('block_spammer_error_page_title', 'block_spammer_error' );
        return false;
  return false;
      }
  }
    }
  }
   }
   }
 
  return true;
return true;
}
}