Filters for configurable userid exclusion added:
[mailer.git] / inc / extensions / ext-beg.php
1 <?php
2 /************************************************************************
3  * Mailer v0.2.1-FINAL                                Start: 09/25/2004 *
4  * ===================                          Last change: 09/25/2004 *
5  *                                                                      *
6  * -------------------------------------------------------------------- *
7  * File              : ext-beg.php                                      *
8  * -------------------------------------------------------------------- *
9  * Short description : Begging link                                     *
10  * -------------------------------------------------------------------- *
11  * Kurzbeschreibung  : Bettel-Link                                      *
12  * -------------------------------------------------------------------- *
13  * $Revision::                                                        $ *
14  * $Date::                                                            $ *
15  * $Tag:: 0.2.1-FINAL                                                 $ *
16  * $Author::                                                          $ *
17  * -------------------------------------------------------------------- *
18  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
19  * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
20  * For more information visit: http://mxchange.org                      *
21  *                                                                      *
22  * This program is free software; you can redistribute it and/or modify *
23  * it under the terms of the GNU General Public License as published by *
24  * the Free Software Foundation; either version 2 of the License, or    *
25  * (at your option) any later version.                                  *
26  *                                                                      *
27  * This program is distributed in the hope that it will be useful,      *
28  * but WITHOUT ANY WARRANTY; without even the implied warranty of       *
29  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the        *
30  * GNU General Public License for more details.                         *
31  *                                                                      *
32  * You should have received a copy of the GNU General Public License    *
33  * along with this program; if not, write to the Free Software          *
34  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
35  * MA  02110-1301  USA                                                  *
36  ************************************************************************/
37
38 // Some security stuff...
39 if (!defined('__SECURITY')) {
40         die();
41 } // END - if
42
43 // Version number
44 setThisExtensionVersion('0.3.5');
45
46 // Version history array (add more with , '0.0.1' and so on)
47 setExtensionVersionHistory(array('0.0.0', '0.0.1', '0.0.2', '0.0.3', '0.0.4', '0.0.5', '0.0.6', '0.0.7', '0.0.8', '0.0.9', '0.1.0', '0.1.1', '0.1.2', '0.1.3', '0.1.4', '0.1.5', '0.1.6', '0.1.7', '0.1.8', '0.1.9', '0.2.0', '0.2.1', '0.2.2', '0.2.3', '0.2.4', '0.2.5', '0.2.6', '0.2.7', '0.2.8', '0.2.9', '0.3.0', '0.3.1', '0.3.2', '0.3.3', '0.3.4', '0.3.5'));
48
49 switch (getExtensionMode()) {
50         case 'register': // Do stuff when installation is running
51                 // SQL commands to run
52                 // - Menu systems
53                 addAdminMenuSql('setup', 'config_beg', 'Bettel-Link', 'IP-Sperre, {OPEN_CONFIG}POINTS{CLOSE_CONFIG}-Verg&uuml;tung usw. k&ouml;nnen Sie hier einstellen.', 10);
54                 addGuestMenuSql('members', 'beg', '{OPEN_CONFIG}POINTS{CLOSE_CONFIG} erbetteln!', 4);
55                 addMemberMenuSql('extras', 'beg', 'Ihr Bettel-Link', 1);
56                 // - Configuration
57                 addConfigAddSql('beg_timeout', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 600');
58                 addConfigAddSql('beg_userid_timeout', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 1800');
59                 addConfigAddSql('beg_points', 'FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00100');
60                 addExtensionAddTableColumnSql('user_data', 'beg_clicks', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0');
61
62                 // Table for IP locks
63                 addDropTableSql('beg_ips');
64                 addCreateTableSql('beg_ips', "
65 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
66 `userid` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
67 `remote_ip` VARCHAR(15) NOT NULL DEFAULT '0.0.0.0',
68 `timeout` VARCHAR(10) NOT NULL DEFAULT '',
69 PRIMARY KEY (`id`),
70 INDEX (`userid`)",
71                         'IP lock data for beg links');
72                 break;
73
74         case 'remove': // Do stuff when removing extension
75                 // SQL commands to run
76                 addDropTableSql('beg_ips');
77                 addDropTableSql('beg_referrals');
78                 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `what` IN ('config_beg','list_beg','list_beg_referral_urls')");
79                 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_guest_menu` WHERE `what`='beg'");
80                 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_member_menu` WHERE `what` IN ('beg','beg2')");
81
82                 // Unregister points data
83                 unregisterExtensionPointsData('beg');
84                 unregisterExtensionPointsData('beg_ref');
85                 unregisterExtensionPointsData('monthly_beg');
86                 unregisterExtensionPointsData('monthly_beg_ref');
87
88                 // Unregister module
89                 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_mod_reg` WHERE `module`='beg' LIMIT 1");
90
91                 // Unregister filter
92                 unregisterFilter(__FILE__, __LINE__, 'pre_user_registration', 'BEG_RALLYE_USER_REGISTRATION_ADD_SQL_COLUMNS', TRUE, isExtensionDryRun());
93                 unregisterFilter(__FILE__, __LINE__, 'init', 'BEG_PURGE_IPS_NOTIFY_USER', TRUE, isExtensionDryRun());
94                 unregisterFilter(__FILE__, __LINE__, 'config_userid_exclusion_sql', 'EXCLUDE_BEG_USERID', TRUE, isExtensionDryRun());
95                 break;
96
97         case 'activate': // Do stuff when admin activates this extension
98                 // SQL commands to run
99                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_guest_menu` SET `visible`='Y',`locked`='N' WHERE `what`='beg' LIMIT 1");
100                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `visible`='Y',`locked`='N' WHERE `what` IN ('beg','beg2')");
101                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_mod_reg` SET `locked`='N',`hidden`='N',`admin_only`='N',`mem_only`='N' WHERE `module`='beg' LIMIT 1");
102                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_mod_reg` SET `locked`='N',`hidden`='N',`admin_only`='N',`mem_only`='N' WHERE `module`='beg' LIMIT 1");
103                 break;
104
105         case 'deactivate': // Do stuff when admin deactivates this extension
106                 // SQL commands to run
107                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_guest_menu` SET `visible`='N',`locked`='Y' WHERE `what`='beg' LIMIT 1");
108                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `visible`='N',`locked`='Y' WHERE `what` IN('beg','beg2')");
109                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_mod_reg` SET `locked`='Y' WHERE `module`='beg' LIMIT 1");
110                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_mod_reg` SET `locked`='Y' WHERE `module`='beg' LIMIT 1");
111                 break;
112
113         case 'update': // Update an extension
114                 switch (getCurrentExtensionVersion()) {
115                         case '0.0.1': // SQL queries for v0.0.1
116                                 // Update notes (these will be set as task text!)
117                                 setExtensionUpdateNotes("Design &quot;Solid-Business&quot; eingebaut.");
118                                 break;
119
120                         case '0.0.2': // SQL queries for v0.0.2
121                                 // Update notes (these will be set as task text!)
122                                 setExtensionUpdateNotes("Seit <strong>Patch 340</strong> &uuml;berfl&uuml;ssige HTML-Tags entfernt.");
123                                 break;
124
125                         case '0.0.3': // SQL queries for v0.0.3
126                                 addConfigAddSql('beg_points_max', 'FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.10000');
127
128                                 // Update notes (these will be set as task text!)
129                                 setExtensionUpdateNotes("Maximale Obergrenze an {?POINTS?} einstellbar (Standard: 0,1 {?POINTS?})");
130                                 break;
131
132                         case '0.0.4': // SQL queries for v0.0.4
133                                 // Update notes (these will be set as task text!)
134                                 setExtensionUpdateNotes("&Uuml;berlange Kommastellen bei Punktangaben aus Bettellink und Gastbereich entfernt und Admin-Templates repariert (&quot;Unbekannte Spalte <u>beg_points_ma</u>&quot;).");
135                                 break;
136
137                         case '0.0.5': // SQL queries for v0.0.5
138                                 // Update notes (these will be set as task text!)
139                                 setExtensionUpdateNotes("Im Mitgliedsmen&uuml; wurde die Beschreibung aus dem Gastmen&uuml; verwendet.");
140                                 break;
141
142                         case '0.0.6': // SQL queries for v0.0.6
143                                 addConfigAddSql('beg_userid', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0');
144
145                                 // Update notes (these will be set as task text!)
146                                 setExtensionUpdateNotes("Ein Mitgliedsaccount (empfehlenswert ist Ihr eigenes!) kann zum Abbuchen der {?POINTS?} verwendet werden. Template <u>admin_config_beg.tpl</u> (und pro!) nicht vergessen, zu aktualisieren.");
147                                 break;
148
149                         case '0.0.8': // SQL queries for v0.0.8
150                                 addConfigAddSql('beg_ip_timeout', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 1800');
151
152                                 // Update notes (these will be set as task text!)
153                                 setExtensionUpdateNotes("Zeitsperre gegen die selbe IP-Nummer hinzugef&uuml;gt.");
154                                 break;
155
156                         case '0.0.9': // SQL queries for v0.0.9
157                                 // Update notes (these will be set as task text!)
158                                 setExtensionUpdateNotes("Bitte verschieben Sie die beg-Templates (Ordner: {?PATH?}/templates/".getLanguage()."/html/) in den neuen Order beg!");
159                                 break;
160
161                         case '0.1.0': // SQL queries for v0.2.1
162                                 // Update notes (these will be set as task text!)
163                                 setExtensionUpdateNotes("Abspeichern von Einstellungen repariert.");
164                                 break;
165
166                         case '0.1.1': // SQL queries for v0.1.1
167                                 // Update notes (these will be set as task text!)
168                                 setExtensionUpdateNotes("Vorbereitung auf die neue Mediendaten v0.0.4.");
169                                 break;
170
171                         case '0.1.2':
172                                 // SQL queries for v0.1.2
173                                 addConfigAddSql('beg_ranks', 'TINYINT(3) UNSIGNED NOT NULL DEFAULT 10');
174                                 addConfigAddSql('beg_active', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
175                                 addConfigAddSql('beg_rallye', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
176                                 addExtensionAddTableColumnSql('user_data', 'beg_points', 'FLOAT(21,5) UNSIGNED NOT NULL DEFAULT 0.00000');
177
178                                 // Menu system
179                                 addAdminMenuSql('user', 'list_beg', 'Bettel-Rallye', 'Listet alle Teilnehmer der monatlichen Bettel-Rallye auf.', 12);
180
181                                 // Update notes (these will be set as task text!)
182                                 setExtensionUpdateNotes("Optionale Bettel-Rallye m&ouml;glich. Und die erbettelten {?POINTS?} k&ouml;nnen entweder nur dem bettelndem Mitglied direkt oder auch seinem Werber gutgeschrieben werden k&ouml;nnen.");
183                                 break;
184
185                         case '0.1.3': // SQL queries for v0.1.3
186                                 // Update notes (these will be set as task text!)
187                                 setExtensionUpdateNotes("Erbettelte {?POINTS?} werden nach Deaktivierung der Bettel-Rallye gel&ouml;scht.");
188                                 break;
189
190                         case '0.1.4': // SQL queries for v0.1.4
191                                 // Update notes (these will be set as task text!)
192                                 setExtensionUpdateNotes("Rechtlichen Hinweis im Mitgliedsbereich vergessen (<strong>member_list_beg.tpl</strong>); Template <strong>member_beg_404.tpl</strong> fehlte!");
193                                 break;
194
195                         case '0.1.5': // SQL queries for v0.1.5
196                                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `title`='Bettellink/-rallye', descr='IP-Sperre, {OPEN_CONFIG}POINTS{CLOSE_CONFIG}-Verg&uuml;tung und auch die Bettel-Rallye k&ouml;nnen Sie hier einstellen.' WHERE `what`='config_beg' LIMIT 1");
197
198                                 // Update notes (these will be set as task text!)
199                                 setExtensionUpdateNotes("Fehlendes Template im Admin-Bereich hinzugef&uuml;gt. Im Admin-Bereich Hinweis hinzugef&uuml;gt, wenn Bettel-Rallye inaktiv ist. Bitte Script inc/monthly_beg.php l&ouml;schen!");
200                                 break;
201
202                         case '0.1.6': // SQL queries for v0.1.6
203                                 // Update notes (these will be set as task text!)
204                                 setExtensionUpdateNotes("Es wurden immer dem ersten bettelndem Mitglied die {?POINTS?} gutgeschrieben.");
205                                 break;
206
207                         case '0.1.7': // SQL queries for v0.1.7
208                                 addConfigAddSql('beg_rallye_enable_notify', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
209                                 addConfigAddSql('beg_rallye_disable_notify', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
210                                 addConfigAddSql('beg_new_mem_notify', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
211                                 addConfigAddSql('beg_notify_bonus', 'FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000');
212                                 addConfigAddSql('beg_notify_wait', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 30');
213                                 addExtensionAddTableColumnSql('user_data', 'beg_ral_notify', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0');
214                                 addExtensionAddTableColumnSql('user_data', 'beg_rallye_enable_notify', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0');
215                                 addExtensionAddTableColumnSql('user_data', 'beg_rallye_disable_notify', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0');
216
217                                 // Update notes (these will be set as task text!)
218                                 setExtensionUpdateNotes("Die Mitglieder k&ouml;nnen nun optional automatisch &uuml;ber eine aktivierte und/oder deaktivierte Bettel-Rallye informiert werden. Beide Benachrichtigungen k&ouml;nnen Sie unter <strong>Einstellungen --&gt; Bettel-Link/-rallye</strong> seperat ein- und ausschalten! Zudem ist eine Sperre gegen eingeloggte Mitglieder eingebaut, die das Klicken auf den eigenen Bettel-Link etwas erschweren soll.");
219                                 break;
220
221                         case '0.1.8': // SQL queries for v0.1.8
222                                 // Update notes (these will be set as task text!)
223                                 setExtensionUpdateNotes("Fehler im t&auml;glichen Reset beseitigt.");
224                                 break;
225
226                         case '0.1.9': // SQL queries for v0.1.9
227                                 // Update notes (these will be set as task text!)
228                                 setExtensionUpdateNotes("De-/Aktivieren des mit dieser Erweiterung verkn&uuml;pften Modules eingebunden.");
229                                 break;
230
231                         case '0.2.0': // SQL queries for v0.2.0
232                                 // Update notes (these will be set as task text!)
233                                 setExtensionUpdateNotes("Bei {?POINTS?}-Gleichstand wird als n&auml;chstes nach wer als letztes Online war umsortiert.");
234                                 break;
235
236                         case '0.2.1': // SQL queries for v0.2.1
237                                 // Update notes (these will be set as task text!)
238                                 setExtensionUpdateNotes("Fehler <strong>unknown column &#39;userid&#39;</strong> beseitigt.");
239                                 break;
240
241                         case '0.2.2': // SQL queries for v0.2.2
242                                 addConfigAddSql('beg_include_own', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
243
244                                 // Update notes (these will be set as task text!)
245                                 setExtensionUpdateNotes("Eigene Mitglieds-Ids sind von der Bettel-Rallye nun ausschliessbar.");
246                                 break;
247
248                         case '0.2.3': // SQL queries for v0.2.3
249                                 // Update notes (these will be set as task text!)
250                                 setExtensionUpdateNotes("Abfrage des Account-Status eingebaut. Es k&ouml;nnen nur best&auml;tigte Accounts betteln.");
251                                 break;
252
253                         case '0.2.4': // SQL queries for v0.2.4
254                                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `action`='extras',`sort`=1 WHERE `what`='beg' LIMIT 1");
255
256                                 // Update notes (these will be set as task text!)
257                                 setExtensionUpdateNotes("Mitgliedsmen&uuml; komplett umgebaut.");
258                                 break;
259
260                         case '0.2.5': // SQL queries for v0.2.5
261                                 // Update notes (these will be set as task text!)
262                                 setExtensionUpdateNotes("Fehlerhinweis bei deaktivierter Erweiterung verbessert.");
263                                 break;
264
265                         case '0.2.6': // SQL queries for v0.2.6
266                                 addExtensionAddTableColumnSql('beg_ips', 'sid', "VARCHAR(255) NOT NULL DEFAULT ''");
267                                 addConfigAddSql('beg_pay_mode', "ENUM('IMG','JS','BOTH','NONE') DEFAULT 'NONE' NOT NULL ;");
268
269                                 // Update notes (these will be set as task text!)
270                                 setExtensionUpdateNotes("IP-Lock mit Session-Id erweitert. Tracker-Script eingef&uuml;gt, dass das Einbinden des Bettel-Links als Bild/Script/CSS verhindern soll.");
271                                 break;
272
273                         case '0.2.7': // SQL queries for v0.2.7
274                                 addConfigChangeSql('beg_ral_en_notify', 'beg_rallye_enable_notify', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
275                                 addConfigChangeSql('beg_ral_di_notify', 'beg_rallye_disable_notify', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
276                                 addConfigChangeSql('beg_new_mem_notify', 'beg_new_member_notify', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
277                                 addExtensionChangeTableColumnSql('user_data', 'beg_ral_en_notify', 'beg_rallye_enable_notify', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0');
278                                 addExtensionChangeTableColumnSql('user_data', 'beg_ral_di_notify', 'beg_rallye_disable_notify', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0');
279
280                                 // Update notes (these will be set as task text!)
281                                 setExtensionUpdateNotes("Umbenannt nach neuer Namenskonvention");
282                                 break;
283
284                         case '0.2.8': // SQL queries for v0.2.8
285                                 addConfigChangeSql('beg_ral_enable_notify', 'beg_rallye_enable_notify', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
286                                 addConfigChangeSql('beg_ral_disable_notify', 'beg_rallye_disable_notify', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
287                                 addExtensionChangeTableColumnSql('user_data', 'beg_ral_enable_notify', 'beg_rallye_enable_notify', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0');
288                                 addExtensionChangeTableColumnSql('user_data', 'beg_ral_disable_notify', 'beg_rallye_disable_notify', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0');
289
290                                 // Update notes (these will be set as task text!)
291                                 setExtensionUpdateNotes("Umbenannt nach neuer Namenskonvention");
292                                 break;
293
294                         case '0.2.9': // SQL queries for v0.2.9
295                                 addDropTableSql('beg_referrals');
296                                 addCreateTableSql('beg_referrals', "
297 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
298 `userid` BIGINT(20) UNSIGNED NULL DEFAULT NULL,
299 `remote_ip` VARCHAR(15) NOT NULL DEFAULT '0.0.0.0',
300 `timestamp` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
301 `referral_url` TINYTEXT NOT NULL,
302 PRIMARY KEY (`id`),
303 INDEX (`userid`)",
304                                         'Recorded referral URLs');
305
306                                 // Add admin menu
307                                 addAdminMenuSql('user','list_beg_referral_urls','Bettel-Referrals auflisten','Listet alle Bettellink-Aufrufe inklusive Referral-URL auf.','13');
308
309                                 // Update notes (these will be set as task text!)
310                                 setExtensionUpdateNotes("Loggen der Referral-URLs hinzugef&uuml;gt.");
311                                 break;
312
313                         case '0.3.0': // SQL queries for v0.3.0
314                                 addConfigDropSql('beg_mode');
315
316                                 // Register points data
317                                 registerExtensionPointsData('beg'        , 'points', 'LOCKED', 'DIRECT');
318                                 registerExtensionPointsData('monthly_beg', 'points', 'LOCKED', 'DIRECT');
319
320                                 // Update notes
321                                 setExtensionUpdateNotes("Monatliche Bettelrallye und die erbettelten {?POINTS?} werden nun &uuml;ber die Tabelle <strong>{OPEN_CONFIG}_MYSQL_PREFIX{CLOSE_CONFIG}_points_data</strong> verwaltet.");
322                                 break;
323
324                         case '0.3.1': // SQL queries for v0.3.1
325                                 // Add/move menu
326                                 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_member_menu` WHERE `what`='beg2'");
327                                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_guest_menu` SET `action`='members',`sort`=3 WHERE `what`='beg' LIMIT 1");
328                                 addMemberMenuSql('rals', 'beg2', 'Bettel-Rallye', 3);
329
330                                 // Update notes
331                                 setExtensionUpdateNotes("Bettel-Rallye re-hinzugef&uuml;gt.");
332                                 break;
333
334                         case '0.3.2': // SQL queries for v0.3.2
335                                 // Add module entry
336                                 addModuleSql('beg', '{OPEN_TEMPLATE}MODULE_BEG_TITLE{CLOSE_TEMPLATE}', 'Y', 'Y', 'N', 'N');
337
338                                 // Set module title
339                                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_mod_reg` SET `title`='Betteln bei {OPEN_CONFIG}MAIN_TITLE{CLOSE_CONFIG}' WHERE `module`='beg' AND `title`='' LIMIT 1");
340
341                                 // Update notes
342                                 setExtensionUpdateNotes("Modul registriert und bei leerem Titel mit einem Standardtitel versehen.");
343                                 break;
344
345                         case '0.3.3': // SQL queries for v0.3.3
346                                 // Register a filter
347                                 registerFilter(__FILE__, __LINE__, 'pre_user_registration', 'BEG_RALLYE_USER_REGISTRATION_ADD_SQL_COLUMNS', FALSE, TRUE, isExtensionDryRun());
348                                 registerFilter(__FILE__, __LINE__, 'init', 'BEG_PURGE_IPS_NOTIFY_USER', FALSE, TRUE, isExtensionDryRun());
349
350                                 // This depends on ext-register
351                                 addExtensionDependency('register');
352
353                                 // Update notes
354                                 setExtensionUpdateNotes("Filter f&uuml;r Anmeldeformular und Aufr&auml;men der IPs hinzugef&uuml;gt.");
355                                 break;
356
357                         case '0.3.4': // SQL queries for v0.3.4
358                                 // Register points data
359                                 registerExtensionPointsData('beg_ref'        , 'points', 'LOCKED', 'DIRECT');
360                                 registerExtensionPointsData('monthly_beg_ref', 'points', 'LOCKED', 'DIRECT');
361
362                                 // SQL queries (renaming)
363                                 addRenameTableSql('beg_referrals', 'referrals');
364                                 addExtensionChangeTableColumnSql('beg_referrals', 'referal_url', 'referral_url', 'TINYTEXT NOT NULL');
365                                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `what`='list_beg_referral_urls' WHERE `what`='list_beg_referal_urls' LIMIT 1");
366
367                                 // Update notes
368                                 setExtensionUpdateNotes("Verwendungszwecke f&uuml;r Referralgutgschriften registriert.");
369                                 break;
370
371                         case '0.3.5': // SQL queries for v0.3.5
372                                 // Register a filter
373                                 registerFilter(__FILE__, __LINE__, 'config_userid_exclusion_sql', 'EXCLUDE_BEG_USERID', FALSE, TRUE, isExtensionDryRun());
374
375                                 // Update notes
376                                 setExtensionUpdateNotes("Filter f&uuml;r das Ausschlie&szlig;en des konfigurierbaren Mitgliedaccounts hinzugef&uuml;gt.");
377                                 break;
378                 } // END - switch
379                 break;
380
381         case 'modify': // When the extension got modified
382                 break;
383
384         case 'test': // For testing purposes
385                 break;
386
387         case 'init': // When extension is initialized
388                 break;
389
390         default: // Unknown extension mode
391                 reportBug(__FILE__, __LINE__, sprintf("Unknown extension mode %s in extension %s detected.", getExtensionMode(), getCurrentExtensionName()));
392                 break;
393 } // END - switch
394
395 // [EOF]
396 ?>