r49788 MediaWiki - Code Review archive

Repository:MediaWiki
Revision:r49787‎ | r49788 | r49789 >
Date:00:45, 24 April 2009
Author:werdna
Status:deferred
Tags:
Comment:
Merge HoneypotIntegration from trunk to preferences-work to prevent conflicts
Modified paths:
  • /branches/preferences-work/extensions/HoneypotIntegration/HoneypotIntegration (added) (history)

Diff [purge]

Index: branches/preferences-work/extensions/HoneypotIntegration/HoneypotIntegration/HoneypotIntegration.class.php
@@ -0,0 +1,175 @@
 2+<?php
 3+
 4+class HoneypotIntegration {
 5+ static $IPs = array();
 6+ static $Data = array();
 7+ public static function onAbuseFilterFilterAction( &$vars, $title ) {
 8+ $vars->setVar( 'honeypot_list_count', self::listingCount() ? 1 : 0 );
 9+ return true;
 10+ }
 11+
 12+ public static function onAbuseFilterBuilder( &$builder ) {
 13+ wfLoadExtensionMessages( 'HoneypotIntegration' );
 14+ $builder['vars']['honeypot_list_count'] = 'honeypot-list-count';
 15+ return true;
 16+ }
 17+
 18+ public static function onShowEditForm( &$editPage, &$out ) {
 19+
 20+ // Spammers are more likely to fall for real text than for a random token.
 21+ // Extract a decent-sized string from the text
 22+ $editText = $editPage->textbox1;
 23+ $randomText = '';
 24+
 25+ if ( strlen( $editText ) > 10 ) {
 26+ // Start somewhere in the first quarter of the text,
 27+ // run for somewhere between a quarter and a half of the text, or 100-1000 bytes,
 28+ // whichever is shorter.
 29+ $start = rand( 0, strlen( $editText ) / 4 );
 30+ $length = rand( min( strlen( $editText ) / 4, 100 ), min( strlen( $editText ) / 2, 1000 ) );
 31+ $randomText = substr( $editText, $start, $length );
 32+ }
 33+
 34+ $out->addHTML( self::generateHoneypotLink( $randomText ) );
 35+ return 1;
 36+ }
 37+
 38+ public static function generateHoneypotLink( $randomText = null ) {
 39+ global $wgHoneypotURLs, $wgHoneypotTemplates;
 40+
 41+ $index = rand( 0, count( $wgHoneypotURLs ) - 1 );
 42+ $url = $wgHoneypotURLs[$index];
 43+ $index = rand( 0, count( $wgHoneypotTemplates ) - 1 );
 44+ $template = $wgHoneypotTemplates[$index];
 45+
 46+ if ( !$randomText )
 47+ $randomText = wfGenerateToken( );
 48+
 49+ // Variable replacement
 50+ $output = strtr( $template,
 51+ array(
 52+ 'honeypoturl' => $url,
 53+ 'randomtext' => htmlspecialchars( $randomText )
 54+ )
 55+ );
 56+
 57+ return "$output\n";
 58+ }
 59+
 60+ public static function isIPListed( $ip ) {
 61+ $subnet = substr( IP::toHex( $ip ), 0, -6 );
 62+ $subnet_ips = self::getHoneypotIPs( $subnet );
 63+
 64+ $fss = fss_prep_search( "[$ip]" );
 65+ return false !== fss_exec_search( $fss, $subnet_ips );
 66+ }
 67+
 68+ // Gets data from memcached
 69+ // for a given class A subnet
 70+ public static function getHoneypotData( $subnet ) {
 71+ if ( isset(self::$Data[$subnet]) ) {
 72+ return self::$Data[$subnet];
 73+ }
 74+ // Check cache
 75+ global $wgMemc;
 76+
 77+ $data = $wgMemc->get( wfMemcKey( 'honeypot-data', $subnet ) );
 78+ if ($data) {
 79+ wfDebug( "Honeypot Integration: Got data for subnet $subnet from memcached\n" );
 80+ self::$mData[$subnet] = $data;
 81+ return $data;
 82+ }
 83+
 84+ global $wgHoneypotAutoLoad;
 85+
 86+ if ($wgHoneypotAutoLoad) {
 87+ list($data,$ips) = self::loadHoneypotData( $subnet );
 88+ return $data;
 89+ }
 90+
 91+ wfDebug( "Honeypot Integration: Couldn't find honeypot data for subnet $subnet ".
 92+ "in cache, and AutoLoad disabled\n" );
 93+ }
 94+
 95+ // Gets IPs from memcached for a given Class A subnet
 96+ public static function getHoneypotIPs( $subnet ) {
 97+ if ( isset(self::$IPs[$subnet]) ) {
 98+ return self::$IPs[$subnet];
 99+ }
 100+
 101+ // Check cache
 102+ global $wgMemc;
 103+
 104+ $ips = $wgMemc->get( wfMemcKey( 'honeypot-ips', $subnet ) );
 105+ if ($ips) {
 106+ wfDebug( "Honeypot Integration: Got IPs for subnet $subnet from memcached\n" );
 107+ self::$IPs[$subnet] = $ips;
 108+ return $ips;
 109+ }
 110+
 111+ global $wgHoneypotAutoLoad;
 112+
 113+ if ($wgHoneypotAutoLoad) {
 114+ list($data,$ips) = self::loadHoneypotData( $subnet );
 115+ return $ips;
 116+ }
 117+
 118+ wfDebug( "Honeypot Integration: Couldn't find honeypot data for subnet $subnet" .
 119+ " in cache, and AutoLoad disabled\n" );
 120+ }
 121+
 122+ // Loads data and saves it to memcached
 123+ public static function loadHoneypotData() {
 124+ list($data,$ips) = self::loadHoneypotDataFromFile();
 125+
 126+ global $wgMemc;
 127+ foreach ( $ips as $subnet => $ipData ) {
 128+ $wgMemc->set( wfMemcKey( 'honeypot-data', $subnet ), $data[$subnet], 86400 );
 129+ $wgMemc->set( wfMemcKey( 'honeypot-ips', $subnet ), $ips[$subnet], 86400 );
 130+ }
 131+
 132+ return array($data,$ips);
 133+ }
 134+
 135+ // Loads data
 136+ public static function loadHoneypotDataFromFile() {
 137+ global $wgHoneypotDataFile;
 138+ $fh = fopen( $wgHoneypotDataFile, 'r' );
 139+
 140+ $save_data = array();
 141+ $ips = array();
 142+
 143+ while ( !feof($fh) ) {
 144+ $line = trim( fgets( $fh ) );
 145+ $data = preg_split( '/\s/', $line, 3 );
 146+
 147+ if ( IP::isIPAddress( $data[0] ) ) {
 148+ $subnet = substr( IP::toHex( $data[0] ), 0, -6 );
 149+
 150+ if ( !isset($ips[$subnet]) )
 151+ $ips[$subnet] = '';
 152+ if ( !isset( $save_data[$subnet] ) )
 153+ $save_data[$subnet] = array();
 154+
 155+ $save_data[$subnet][$data[0]] = $data;
 156+ $ips[$subnet] .= '['.$data[0]."]\n";
 157+ }
 158+ }
 159+
 160+ fclose( $fh );
 161+
 162+ self::$IPs = $ips;
 163+ self::$Data = $save_data;
 164+
 165+ return array( $save_data, $ips );
 166+ }
 167+
 168+ public static function onGetUserPermissionsErrorsExpensive() {
 169+ $ip = wfGetIP();
 170+
 171+ if ( self::isIPListed( $ip ) ) {
 172+ wfDebugLog( 'HoneypotIntegrationMatches', "Attempted edit from $ip matched honeypot" );
 173+ }
 174+ return true;
 175+ }
 176+}
Property changes on: branches/preferences-work/extensions/HoneypotIntegration/HoneypotIntegration/HoneypotIntegration.class.php
___________________________________________________________________
Added: svn:eol-style
1177 + native
Index: branches/preferences-work/extensions/HoneypotIntegration/HoneypotIntegration/HoneypotIntegration.i18n.php
@@ -0,0 +1,258 @@
 2+<?php
 3+/**
 4+ * Internationalisation file for InterwikiList extension.
 5+ *
 6+ * @file
 7+ * @ingroup Extensions
 8+ */
 9+
 10+$messages = array();
 11+
 12+/** English
 13+ * @author Andrew Garrett
 14+ */
 15+$messages['en'] = array(
 16+ 'honeypot-desc' => 'Provides integration with [http://projecthoneypot.org/ Project Honey Pot] for MediaWiki sites',
 17+ 'abusefilter-edit-builder-vars-honeypot-list-count' => 'Number of recent events the IP address has triggered, according to Project Honey Pot',
 18+);
 19+
 20+/** Message documentation (Message documentation)
 21+ * @author Purodha
 22+ */
 23+$messages['qqq'] = array(
 24+ 'honeypot-desc' => 'Short description of this extension, shown on [[Special:Version]]. Do not translate or change links.',
 25+);
 26+
 27+/** Afrikaans (Afrikaans)
 28+ * @author Naudefj
 29+ */
 30+$messages['af'] = array(
 31+ 'honeypot-desc' => 'Bied aan MediaWiki-webwerwe integrasie met [http://projecthoneypot.org/ Project Honey Pot]',
 32+ 'abusefilter-edit-builder-vars-honeypot-list-count' => "Volgens Project Honey Pot is 'n aantal gebeurtenisse opgeteken vanaf die IP-adres",
 33+);
 34+
 35+/** Arabic (العربية)
 36+ * @author Meno25
 37+ */
 38+$messages['ar'] = array(
 39+ 'honeypot-desc' => 'يوفر تكاملا مع [http://projecthoneypot.org/ Project Honey Pot] لمواقع ميدياويكي',
 40+ 'abusefilter-edit-builder-vars-honeypot-list-count' => 'عدد الأحداث الأخيرة التي أطلقها عنوان الأيبي، طبقا لProject Honey Pot',
 41+);
 42+
 43+/** Belarusian (Taraškievica orthography) (Беларуская (тарашкевіца))
 44+ * @author EugeneZelenko
 45+ */
 46+$messages['be-tarask'] = array(
 47+ 'honeypot-desc' => 'Забясьпечвае інтэграцыю сайтаў MediaWiki з [http://projecthoneypot.org/ праектам Honey Pot]',
 48+ 'abusefilter-edit-builder-vars-honeypot-list-count' => 'Колькасьць апошніх падзеяў, якія выклікаў ІР-адрас, у адпаведнасьці з праектам Honey Pot',
 49+);
 50+
 51+/** Breton (Brezhoneg)
 52+ * @author Fulup
 53+ */
 54+$messages['br'] = array(
 55+ 'honeypot-desc' => "Aotren a ra enframmañ lec'hiennoù MediaWiki gant [http://projecthoneypot.org/ Raktres Honey Pot]",
 56+ 'abusefilter-edit-builder-vars-honeypot-list-count' => "Niver a zarvoudoù nevez graet gant ar chomlec'h IP, diouzh raktres Honey Pot",
 57+);
 58+
 59+/** Bosnian (Bosanski)
 60+ * @author CERminator
 61+ */
 62+$messages['bs'] = array(
 63+ 'honeypot-desc' => 'Omogućuje intergraciju sa [http://projecthoneypot.org/ projektom Honey Pot] za MedijaViki sajtove',
 64+ 'abusefilter-edit-builder-vars-honeypot-list-count' => 'Broj nedavnih događaja koja je IP adresa pokrenula, u skladu s projektom Honey Pot',
 65+);
 66+
 67+/** German (Deutsch)
 68+ * @author Umherirrender
 69+ */
 70+$messages['de'] = array(
 71+ 'honeypot-desc' => 'Integration mit dem [http://projecthoneypot.org/ „Honey Pot“-Projekt] für MediaWiki-Installationen',
 72+ 'abusefilter-edit-builder-vars-honeypot-list-count' => 'Anzahl der durch einer IP-Adresse ausgelöster aktueller Ereignisse, gemäß dem „Honey Pot“-Projekt',
 73+);
 74+
 75+/** Lower Sorbian (Dolnoserbski)
 76+ * @author Michawiki
 77+ */
 78+$messages['dsb'] = array(
 79+ 'honeypot-desc' => 'Zmóžnja integraciju do [http://projecthoneypot.org/ projekta Honey Pot] za sedła MediaWiki',
 80+ 'abusefilter-edit-builder-vars-honeypot-list-count' => 'Licba aktualnych tšojenjow, kótarež IP-adresa jo zapušćiła, pó projekśe Honey Pot',
 81+);
 82+
 83+/** Spanish (Español)
 84+ * @author Crazymadlover
 85+ * @author Sanbec
 86+ */
 87+$messages['es'] = array(
 88+ 'honeypot-desc' => 'Provee integración con [http://projecthoneypot.org/ Projecto Honey Pot] para sitios MediaWiki',
 89+ 'abusefilter-edit-builder-vars-honeypot-list-count' => 'Número de eventos recientes que la dirección IP ha desencadenado en relación con el proyecto Honey Pot',
 90+);
 91+
 92+/** French (Français)
 93+ * @author IAlex
 94+ */
 95+$messages['fr'] = array(
 96+ 'honeypot-desc' => "Permet d'intégrer des sites MediaWiki avec le [http://projecthoneypot.org/ Projet Honey Pot]",
 97+ 'abusefilter-edit-builder-vars-honeypot-list-count' => "Nombre d'événements récents que l'adresse IP a fait, en accord avec le projet Honey Pot",
 98+);
 99+
 100+/** Galician (Galego)
 101+ * @author Toliño
 102+ */
 103+$messages['gl'] = array(
 104+ 'honeypot-desc' => 'Fornece a integración co [http://projecthoneypot.org/ proxecto Honey Pot] para sitios MediaWiki',
 105+ 'abusefilter-edit-builder-vars-honeypot-list-count' => 'Número de acontecementos recentes que o enderezo IP ten desencadeado, de acordo co proxecto Honey Pot',
 106+);
 107+
 108+/** Swiss German (Alemannisch)
 109+ * @author Als-Holder
 110+ */
 111+$messages['gsw'] = array(
 112+ 'honeypot-desc' => 'Stellt d Integration mit [http://projecthoneypot.org/ Project Honey Pot] fir MediaWiki-Sites z Verfiegig',
 113+ 'abusefilter-edit-builder-vars-honeypot-list-count' => 'Zahl vu aktuällen Änderige, wu d IP Adräss gmacht het, noche em Honey Pot-Projäkt',
 114+);
 115+
 116+/** Hebrew (עברית)
 117+ * @author Rotemliss
 118+ * @author YaronSh
 119+ */
 120+$messages['he'] = array(
 121+ 'honeypot-desc' => 'שילוב אתרי מדיה־ויקי עם [http://projecthoneypot.org/ מיזם Honey Pot]',
 122+ 'abusefilter-edit-builder-vars-honeypot-list-count' => 'מספר האירועים האחרונים שבוצעו מכתובת ה־IP, לפי מיזם Honey Pot',
 123+);
 124+
 125+/** Upper Sorbian (Hornjoserbsce)
 126+ * @author Michawiki
 127+ */
 128+$messages['hsb'] = array(
 129+ 'honeypot-desc' => 'Zmóžnja integraciju do [http://projecthoneypot.org/ projekta Honey Pot] za sydła MediaWiki',
 130+ 'abusefilter-edit-builder-vars-honeypot-list-count' => 'Ličba aktualnych podawkow, kotrež IP-adresa je pušćiła, po projekće Honey Pot',
 131+);
 132+
 133+/** Interlingua (Interlingua)
 134+ * @author McDutchie
 135+ */
 136+$messages['ia'] = array(
 137+ 'honeypot-desc' => 'Provide integration con le [http://projecthoneypot.org/ projecto Honey Pot] pro sitos MediaWiki',
 138+ 'abusefilter-edit-builder-vars-honeypot-list-count' => 'Numero de eventos recente que iste adresse IP ha causate, secundo le projecto Honey Pot',
 139+);
 140+
 141+/** Italian (Italiano)
 142+ * @author Pietrodn
 143+ */
 144+$messages['it'] = array(
 145+ 'honeypot-desc' => "Fornisce l'integrazione con il [http://projecthoneypot.org/ Progetto Honey Pot] per i siti MediaWiki",
 146+ 'abusefilter-edit-builder-vars-honeypot-list-count' => "Numero di eventi recenti che l'indirizzo IP ha attivato, in base al progetto Honey Pot",
 147+);
 148+
 149+/** Japanese (日本語)
 150+ * @author Fryed-peach
 151+ */
 152+$messages['ja'] = array(
 153+ 'honeypot-desc' => '[http://projecthoneypot.org/ Project Honey Pot] と MediaWiki サイトとの統合を提供する',
 154+ 'abusefilter-edit-builder-vars-honeypot-list-count' => 'そのIPアドレスが引き起こした最近の出来事の数(Project Honey Pot 調べ)',
 155+);
 156+
 157+/** Ripoarisch (Ripoarisch)
 158+ * @author Purodha
 159+ */
 160+$messages['ksh'] = array(
 161+ 'honeypot-desc' => 'Sorresch för MediaWiki_Web_ßaitß för en Intejrazjuhn met däm [http://projecthoneypot.org/ Projek Honnig-Pott].',
 162+ 'abusefilter-edit-builder-vars-honeypot-list-count' => '!FUZZY!!De Aanzahl Föörfäll, die die <i lang="en">IP</i>-Address köözlich ußjelööß hät, wie et Projek Honning-Pott säät',
 163+);
 164+
 165+/** Luxembourgish (Lëtzebuergesch)
 166+ * @author Robby
 167+ */
 168+$messages['lb'] = array(
 169+ 'abusefilter-edit-builder-vars-honeypot-list-count' => "Zuel vun den aktuellen Evenementer déi duerch d'IP-Adress ausgeléist goufen, esou wéi et aus dem Projet ''Honey Pot'' ervirgeet",
 170+);
 171+
 172+/** Dutch (Nederlands)
 173+ * @author Siebrand
 174+ */
 175+$messages['nl'] = array(
 176+ 'honeypot-desc' => 'Biedt integratie met [http://projecthoneypot.org/ Project Honey Pot] voor MediaWiki-sites',
 177+ 'abusefilter-edit-builder-vars-honeypot-list-count' => 'Aantal recente gebeurtenissen die het IP-adres heeft veroorzaakt volgens Project Honey Pot',
 178+);
 179+
 180+/** Norwegian Nynorsk (‪Norsk (nynorsk)‬)
 181+ * @author Harald Khan
 182+ */
 183+$messages['nn'] = array(
 184+ 'honeypot-desc' => 'Gjev integrering for [http://projecthoneypot.org/ Project Honey Pot] på MediaWiki-nettstader',
 185+ 'abusefilter-edit-builder-vars-honeypot-list-count' => 'Tal på nylege hendingar IP-adressa har sett i verk, ifylgje Project Honey Pot',
 186+);
 187+
 188+/** Occitan (Occitan)
 189+ * @author Cedric31
 190+ */
 191+$messages['oc'] = array(
 192+ 'honeypot-desc' => "Permet d'integrar de sites MediaWiki amb lo [http://projecthoneypot.org/ Projècte Honey Pot]",
 193+ 'abusefilter-edit-builder-vars-honeypot-list-count' => "Nombre d'eveniments recents que l'adreça IP a fach, en acòrd amb lo projècte Honey Pot",
 194+);
 195+
 196+/** Polish (Polski)
 197+ * @author Sp5uhe
 198+ */
 199+$messages['pl'] = array(
 200+ 'honeypot-desc' => 'Zapewnia integrację pomiędzy [http://projecthoneypot.org/ Projektem Honey Pot] a witrynami MediaWiki',
 201+ 'abusefilter-edit-builder-vars-honeypot-list-count' => 'Liczba ostatnich zdarzeń wywołanych adresem IP, zgodnie z Projektem Honey Pot',
 202+);
 203+
 204+/** Portuguese (Português)
 205+ * @author Malafaya
 206+ */
 207+$messages['pt'] = array(
 208+ 'honeypot-desc' => 'Providencia integração com [http://projecthoneypot.org/ Project Honey Pot] para sítios MediaWiki',
 209+ 'abusefilter-edit-builder-vars-honeypot-list-count' => 'Número de eventos recentes que o endereço IP despoletou, segundo Project Honey Pot',
 210+);
 211+
 212+/** Brazilian Portuguese (Português do Brasil)
 213+ * @author Eduardo.mps
 214+ */
 215+$messages['pt-br'] = array(
 216+ 'honeypot-desc' => 'Provê integração com [http://projecthoneypot.org/ Project Honey Pot] para sítios MediaWiki',
 217+ 'abusefilter-edit-builder-vars-honeypot-list-count' => 'Número de eventos recentes que o endereço IP disparou, segundo Project Honey Pot',
 218+);
 219+
 220+/** Tarandíne (Tarandíne)
 221+ * @author Joetaras
 222+ */
 223+$messages['roa-tara'] = array(
 224+ 'honeypot-desc' => "Prevede 'n'indegrazione cu 'u [http://projecthoneypot.org/ Pruggette Honey Pot] pe le site MediaUicchi",
 225+ 'abusefilter-edit-builder-vars-honeypot-list-count' => "Numere de le fatte recende ca l'indirzze IP ha scatenate, accurdanne cu 'u Pruggette Joney Pot",
 226+);
 227+
 228+/** Russian (Русский)
 229+ * @author Александр Сигачёв
 230+ */
 231+$messages['ru'] = array(
 232+ 'honeypot-desc' => 'Обеспечивает интеграцию MediaWiki-сайтов с [http://projecthoneypot.org/ проектом Honey Pot]',
 233+ 'abusefilter-edit-builder-vars-honeypot-list-count' => 'Количество последних событий, вызвавших попадание IP-адреса в соответствие с проектом Honey Pot',
 234+);
 235+
 236+/** Slovak (Slovenčina)
 237+ * @author Helix84
 238+ */
 239+$messages['sk'] = array(
 240+ 'honeypot-desc' => 'Poskytuje integráciu lokalít MediaWiki s [http://projecthoneypot.org/ projektom Honey Pot]',
 241+ 'abusefilter-edit-builder-vars-honeypot-list-count' => 'Počet udalostí v poslednej dobe, ktoré IP adresa spustila podľa projektu Honey Pot',
 242+);
 243+
 244+/** Tagalog (Tagalog)
 245+ * @author AnakngAraw
 246+ */
 247+$messages['tl'] = array(
 248+ 'honeypot-desc' => "Nagbibigay ng pagsasama sa [http://projecthoneypot.org/ Proyektong Palayok ng Pulot-pukyutan (''Project Honey Pot'')] para sa lahat ng mga sityo ng MediaWiki",
 249+ 'abusefilter-edit-builder-vars-honeypot-list-count' => "Bilang ng kamakailang mga kaganapang pinagalaw ng adres ng IP, ayon sa \"Proyektong Palayok ng Pulot-pukyutan\" (''Project Honey Pot'')",
 250+);
 251+
 252+/** Vietnamese (Tiếng Việt)
 253+ * @author Vinhtantran
 254+ */
 255+$messages['vi'] = array(
 256+ 'honeypot-desc' => 'Cung cấp sự tích hợp với [http://projecthoneypot.org/ Dự Án Hũ Mật] cho các trang MediaWiki',
 257+ 'abusefilter-edit-builder-vars-honeypot-list-count' => 'Số sự kiện gần đây được địa chỉ IP kích hoạt, theo Dự Án Hũ Mật',
 258+);
 259+
Property changes on: branches/preferences-work/extensions/HoneypotIntegration/HoneypotIntegration/HoneypotIntegration.i18n.php
___________________________________________________________________
Added: svn:eol-style
1260 + native
Index: branches/preferences-work/extensions/HoneypotIntegration/HoneypotIntegration/HoneypotIntegration.php
@@ -0,0 +1,44 @@
 2+<?php
 3+
 4+if ( !defined( 'MEDIAWIKI' ) )
 5+ die( "This is a MediaWiki extension definition file; it is not a valid entry point." );
 6+
 7+/**#@+
 8+ * Provides integration with Project Honey Pot for MediaWiki sites.
 9+ * Requires
 10+ * @addtogroup Extensions
 11+ *
 12+ *
 13+ * @author Andrew Garrett <andrew@werdn.us>
 14+ * @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later
 15+ */
 16+
 17+$dir = dirname( __FILE__ );
 18+$wgExtensionCredits['other'][] = array(
 19+ 'name' => 'HoneypotIntegration',
 20+ 'author' => 'Andrew Garrett',
 21+ 'description' => 'Provides integration with Project Honey Pot for MediaWiki sites',
 22+ 'descriptionmsg' => 'honeypot-desc',
 23+);
 24+
 25+$wgExtensionMessagesFiles['HoneypotIntegration'] = "$dir/HoneypotIntegration.i18n.php";
 26+$wgAutoloadClasses[ 'HoneypotIntegration' ] = "$dir/HoneypotIntegration.class.php";
 27+
 28+#$wgHooks['AbuseFilter-filterAction'][] = 'HoneypotIntegration::onAbuseFilterFilterAction';
 29+#$wgHooks['AbuseFilter-builder'][] = 'HoneypotIntegration::onAbuseFilterBuilder';
 30+$wgHooks['EditPage::showEditForm:fields'][] = 'HoneypotIntegration::onShowEditForm';
 31+$wgHooks['GetUserPermissionsErrorsExpensive'][] =
 32+ 'HoneypotIntegration::onGetUserPermissionsErrorsExpensive';
 33+
 34+$wgHoneypotURLs = array( 'http://www.google.com' );
 35+$wgHoneypotTemplates = array(
 36+ '<a href="honeypoturl"><!-- randomtext --></a>',
 37+);
 38+
 39+$wgHoneypotAutoLoad = false;
 40+
 41+$wgHoneypotDataFile = false;
 42+
 43+if ( !extension_loaded( 'fss' ) ) {
 44+ die( "FastStringSearch is required for Project Honeypot Integration" );
 45+}
Property changes on: branches/preferences-work/extensions/HoneypotIntegration/HoneypotIntegration/HoneypotIntegration.php
___________________________________________________________________
Added: svn:keywords
146 + LastChangedDate LastChangedRevision
Added: svn:eol-style
247 + native

Status & tagging log