Do not add columns to CREATE statements if you already add them with ALTER TABLE
[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.4');
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'));
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                 break;
95
96         case 'activate': // Do stuff when admin activates this extension
97                 // SQL commands to run
98                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_guest_menu` SET `visible`='Y',`locked`='N' WHERE `what`='beg' LIMIT 1");
99                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `visible`='Y',`locked`='N' WHERE `what` IN ('beg','beg2')");
100                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_mod_reg` SET `locked`='N',`hidden`='N',`admin_only`='N',`mem_only`='N' WHERE `module`='beg' LIMIT 1");
101                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_mod_reg` SET `locked`='N',`hidden`='N',`admin_only`='N',`mem_only`='N' WHERE `module`='beg' LIMIT 1");
102                 break;
103
104         case 'deactivate': // Do stuff when admin deactivates this extension
105                 // SQL commands to run
106                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_guest_menu` SET `visible`='N',`locked`='Y' WHERE `what`='beg' LIMIT 1");
107                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `visible`='N',`locked`='Y' WHERE `what` IN('beg','beg2')");
108                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_mod_reg` SET `locked`='Y' WHERE `module`='beg' LIMIT 1");
109                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_mod_reg` SET `locked`='Y' WHERE `module`='beg' LIMIT 1");
110                 break;
111
112         case 'update': // Update an extension
113                 switch (getCurrentExtensionVersion()) {
114                         case '0.0.1': // SQL queries for v0.0.1
115                                 // Update notes (these will be set as task text!)
116                                 setExtensionUpdateNotes("Design &quot;Solid-Business&quot; eingebaut.");
117                                 break;
118
119                         case '0.0.2': // SQL queries for v0.0.2
120                                 // Update notes (these will be set as task text!)
121                                 setExtensionUpdateNotes("Seit <strong>Patch 340</strong> &uuml;berfl&uuml;ssige HTML-Tags entfernt.");
122                                 break;
123
124                         case '0.0.3': // SQL queries for v0.0.3
125                                 addConfigAddSql('beg_points_max', 'FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.10000');
126
127                                 // Update notes (these will be set as task text!)
128                                 setExtensionUpdateNotes("Maximale Obergrenze an {?POINTS?} einstellbar (Standard: 0,1 {?POINTS?})");
129                                 break;
130
131                         case '0.0.4': // SQL queries for v0.0.4
132                                 // Update notes (these will be set as task text!)
133                                 setExtensionUpdateNotes("&Uuml;berlange Kommastellen bei Punktangaben aus Bettellink und Gastbereich entfernt und Admin-Templates repariert (&quot;Unbekannte Spalte <u>beg_points_ma</u>&quot;).");
134                                 break;
135
136                         case '0.0.5': // SQL queries for v0.0.5
137                                 // Update notes (these will be set as task text!)
138                                 setExtensionUpdateNotes("Im Mitgliedsmen&uuml; wurde die Beschreibung aus dem Gastmen&uuml; verwendet.");
139                                 break;
140
141                         case '0.0.6': // SQL queries for v0.0.6
142                                 addConfigAddSql('beg_userid', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0');
143
144                                 // Update notes (these will be set as task text!)
145                                 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.");
146                                 break;
147
148                         case '0.0.8': // SQL queries for v0.0.8
149                                 addConfigAddSql('beg_ip_timeout', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 1800');
150
151                                 // Update notes (these will be set as task text!)
152                                 setExtensionUpdateNotes("Zeitsperre gegen die selbe IP-Nummer hinzugef&uuml;gt.");
153                                 break;
154
155                         case '0.0.9': // SQL queries for v0.0.9
156                                 // Update notes (these will be set as task text!)
157                                 setExtensionUpdateNotes("Bitte verschieben Sie die beg-Templates (Ordner: {?PATH?}/templates/".getLanguage()."/html/) in den neuen Order beg!");
158                                 break;
159
160                         case '0.1.0': // SQL queries for v0.2.1
161                                 // Update notes (these will be set as task text!)
162                                 setExtensionUpdateNotes("Abspeichern von Einstellungen repariert.");
163                                 break;
164
165                         case '0.1.1': // SQL queries for v0.1.1
166                                 // Update notes (these will be set as task text!)
167                                 setExtensionUpdateNotes("Vorbereitung auf die neue Mediendaten v0.0.4.");
168                                 break;
169
170                         case '0.1.2':
171                                 // SQL queries for v0.1.2
172                                 addConfigAddSql('beg_ranks', 'TINYINT(3) UNSIGNED NOT NULL DEFAULT 10');
173                                 addConfigAddSql('beg_active', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
174                                 addConfigAddSql('beg_rallye', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
175                                 addExtensionAddTableColumnSql('user_data', 'beg_points', 'FLOAT(21,5) UNSIGNED NOT NULL DEFAULT 0.00000');
176
177                                 // Menu system
178                                 addAdminMenuSql('user', 'list_beg', 'Bettel-Rallye', 'Listet alle Teilnehmer der monatlichen Bettel-Rallye auf.', 12);
179
180                                 // Update notes (these will be set as task text!)
181                                 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.");
182                                 break;
183
184                         case '0.1.3': // SQL queries for v0.1.3
185                                 // Update notes (these will be set as task text!)
186                                 setExtensionUpdateNotes("Erbettelte {?POINTS?} werden nach Deaktivierung der Bettel-Rallye gel&ouml;scht.");
187                                 break;
188
189                         case '0.1.4': // SQL queries for v0.1.4
190                                 // Update notes (these will be set as task text!)
191                                 setExtensionUpdateNotes("Rechtlichen Hinweis im Mitgliedsbereich vergessen (<strong>member_list_beg.tpl</strong>); Template <strong>member_beg_404.tpl</strong> fehlte!");
192                                 break;
193
194                         case '0.1.5': // SQL queries for v0.1.5
195                                 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");
196
197                                 // Update notes (these will be set as task text!)
198                                 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!");
199                                 break;
200
201                         case '0.1.6': // SQL queries for v0.1.6
202                                 // Update notes (these will be set as task text!)
203                                 setExtensionUpdateNotes("Es wurden immer dem ersten bettelndem Mitglied die {?POINTS?} gutgeschrieben.");
204                                 break;
205
206                         case '0.1.7': // SQL queries for v0.1.7
207                                 addConfigAddSql('beg_ral_en_notify', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
208                                 addConfigAddSql('beg_ral_di_notify', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
209                                 addConfigAddSql('beg_new_mem_notify', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
210                                 addConfigAddSql('beg_notify_bonus', 'FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000');
211                                 addConfigAddSql('beg_notify_wait', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 30');
212                                 addExtensionAddTableColumnSql('user_data', 'beg_ral_notify', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0');
213                                 addExtensionAddTableColumnSql('user_data', 'beg_ral_en_notify', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0');
214                                 addExtensionAddTableColumnSql('user_data', 'beg_ral_di_notify', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0');
215
216                                 // Update notes (these will be set as task text!)
217                                 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.");
218                                 break;
219
220                         case '0.1.8': // SQL queries for v0.1.8
221                                 // Update notes (these will be set as task text!)
222                                 setExtensionUpdateNotes("Fehler im t&auml;glichen Reset beseitigt.");
223                                 break;
224
225                         case '0.1.9': // SQL queries for v0.1.9
226                                 // Update notes (these will be set as task text!)
227                                 setExtensionUpdateNotes("De-/Aktivieren des mit dieser Erweiterung verkn&uuml;pften Modules eingebunden.");
228                                 break;
229
230                         case '0.2.0': // SQL queries for v0.2.0
231                                 // Update notes (these will be set as task text!)
232                                 setExtensionUpdateNotes("Bei {?POINTS?}-Gleichstand wird als n&auml;chstes nach wer als letztes Online war umsortiert.");
233                                 break;
234
235                         case '0.2.1': // SQL queries for v0.2.1
236                                 // Update notes (these will be set as task text!)
237                                 setExtensionUpdateNotes("Fehler <strong>unknown column &#39;userid&#39;</strong> beseitigt.");
238                                 break;
239
240                         case '0.2.2': // SQL queries for v0.2.2
241                                 addConfigAddSql('beg_include_own', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
242
243                                 // Update notes (these will be set as task text!)
244                                 setExtensionUpdateNotes("Eigene Mitglieds-Ids sind von der Bettel-Rallye nun ausschliessbar.");
245                                 break;
246
247                         case '0.2.3': // SQL queries for v0.2.3
248                                 // Update notes (these will be set as task text!)
249                                 setExtensionUpdateNotes("Abfrage des Account-Status eingebaut. Es k&ouml;nnen nur best&auml;tigte Accounts betteln.");
250                                 break;
251
252                         case '0.2.4': // SQL queries for v0.2.4
253                                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `action`='extras',`sort`=1 WHERE `what`='beg' LIMIT 1");
254
255                                 // Update notes (these will be set as task text!)
256                                 setExtensionUpdateNotes("Mitgliedsmen&uuml; komplett umgebaut.");
257                                 break;
258
259                         case '0.2.5': // SQL queries for v0.2.5
260                                 // Update notes (these will be set as task text!)
261                                 setExtensionUpdateNotes("Fehlerhinweis bei deaktivierter Erweiterung verbessert.");
262                                 break;
263
264                         case '0.2.6': // SQL queries for v0.2.6
265                                 addExtensionAddTableColumnSql('beg_ips', 'sid', "VARCHAR(255) NOT NULL DEFAULT ''");
266                                 addConfigAddSql('beg_pay_mode', "ENUM('IMG','JS','BOTH','NONE') DEFAULT 'NONE' NOT NULL ;");
267
268                                 // Update notes (these will be set as task text!)
269                                 setExtensionUpdateNotes("IP-Lock mit Session-Id erweitert. Tracker-Script eingef&uuml;gt, dass das Einbinden des Bettel-Links als Bild/Script/CSS verhindern soll.");
270                                 break;
271
272                         case '0.2.7': // SQL queries for v0.2.7
273                                 addConfigChangeSql('beg_ral_en_notify', 'beg_ral_enable_notify', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
274                                 addConfigChangeSql('beg_ral_di_notify', 'beg_ral_disable_notify', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
275                                 addConfigChangeSql('beg_new_mem_notify', 'beg_new_member_notify', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
276                                 addExtensionChangeTableColumnSql('user_data', 'beg_ral_en_notify', 'beg_ral_enable_notify', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0');
277                                 addExtensionChangeTableColumnSql('user_data', 'beg_ral_di_notify', 'beg_ral_disable_notify', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0');
278
279                                 // Update notes (these will be set as task text!)
280                                 setExtensionUpdateNotes("Umbenannt nach neuer Namenskonvention");
281                                 break;
282
283                         case '0.2.8': // SQL queries for v0.2.8
284                                 addConfigChangeSql('beg_ral_enable_notify', 'beg_rallye_enable_notify', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
285                                 addConfigChangeSql('beg_ral_disable_notify', 'beg_rallye_disable_notify', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
286                                 addExtensionChangeTableColumnSql('user_data', 'beg_ral_enable_notify', 'beg_rallye_enable_notify', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0');
287                                 addExtensionChangeTableColumnSql('user_data', 'beg_ral_disable_notify', 'beg_rallye_disable_notify', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0');
288
289                                 // Update notes (these will be set as task text!)
290                                 setExtensionUpdateNotes("Umbenannt nach neuer Namenskonvention");
291                                 break;
292
293                         case '0.2.9': // SQL queries for v0.2.9
294                                 addDropTableSql('beg_referrals');
295                                 addCreateTableSql('beg_referrals', "
296 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
297 `userid` BIGINT(20) UNSIGNED NULL DEFAULT NULL,
298 `remote_ip` VARCHAR(15) NOT NULL DEFAULT '0.0.0.0',
299 `timestamp` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
300 `referral_url` TINYTEXT NOT NULL,
301 PRIMARY KEY (`id`),
302 INDEX (`userid`)",
303                                         'Recorded referral URLs');
304
305                                 // Add admin menu
306                                 addAdminMenuSql('user','list_beg_referral_urls','Bettel-Referrals auflisten','Listet alle Bettellink-Aufrufe inklusive Referral-URL auf.','13');
307
308                                 // Update notes (these will be set as task text!)
309                                 setExtensionUpdateNotes("Loggen der Referral-URLs hinzugef&uuml;gt.");
310                                 break;
311
312                         case '0.3.0': // SQL queries for v0.3.0
313                                 addConfigDropSql('beg_mode');
314
315                                 // Register points data
316                                 registerExtensionPointsData('beg'        , 'points', 'LOCKED', 'DIRECT');
317                                 registerExtensionPointsData('monthly_beg', 'points', 'LOCKED', 'DIRECT');
318
319                                 // This depends on ext-sql_patches
320                                 addExtensionDependency('sql_patches');
321
322                                 // Update notes
323                                 setExtensionUpdateNotes("Monatliche Bettelrallye und die erbettelten {?POINTS?} werden nun &uuml;ber die Tabelle <strong>{OPEN_CONFIG}_MYSQL_PREFIX{CLOSE_CONFIG}_points_data</strong> verwaltet.");
324                                 break;
325
326                         case '0.3.1': // SQL queries for v0.3.1
327                                 // Add/move menu
328                                 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_member_menu` WHERE `what`='beg2'");
329                                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_guest_menu` SET `action`='members',`sort`=3 WHERE `what`='beg' LIMIT 1");
330                                 addMemberMenuSql('rals', 'beg2', 'Bettel-Rallye', 3);
331
332                                 // Update notes
333                                 setExtensionUpdateNotes("Bettel-Rallye re-hinzugef&uuml;gt.");
334                                 break;
335
336                         case '0.3.2': // SQL queries for v0.3.2
337                                 // Add module entry
338                                 addModuleSql('beg', '{OPEN_TEMPLATE}MODULE_BEG_TITLE{CLOSE_TEMPLATE}', 'Y', 'Y', 'N', 'N');
339
340                                 // Set module title
341                                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_mod_reg` SET `title`='Betteln bei {OPEN_CONFIG}MAIN_TITLE{CLOSE_CONFIG}' WHERE `module`='beg' AND `title`='' LIMIT 1");
342
343                                 // Update notes
344                                 setExtensionUpdateNotes("Modul registriert und bei leerem Titel mit einem Standardtitel versehen.");
345                                 break;
346
347                         case '0.3.3': // SQL queries for v0.3.3
348                                 // Register a filter
349                                 registerFilter(__FILE__, __LINE__, 'pre_user_registration', 'BEG_RALLYE_USER_REGISTRATION_ADD_SQL_COLUMNS', FALSE, TRUE, isExtensionDryRun());
350                                 registerFilter(__FILE__, __LINE__, 'init', 'BEG_PURGE_IPS_NOTIFY_USER', FALSE, TRUE, isExtensionDryRun());
351
352                                 // This depends on ext-register
353                                 addExtensionDependency('register');
354
355                                 // Update notes
356                                 setExtensionUpdateNotes("Filter f&uuml;r Anmeldeformular und Aufr&auml;men der IPs hinzugef&uuml;gt.");
357                                 break;
358
359                         case '0.3.4': // SQL queries for v0.3.4
360                                 // Register points data
361                                 registerExtensionPointsData('beg_ref'        , 'points', 'LOCKED', 'DIRECT');
362                                 registerExtensionPointsData('monthly_beg_ref', 'points', 'LOCKED', 'DIRECT');
363
364                                 // SQL queries (renaming)
365                                 addRenameTableSql('beg_referrals', 'referrals');
366                                 addExtensionChangeTableColumnSql('beg_referrals', 'referal_url', 'referral_url', 'TINYTEXT NOT NULL');
367                                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `what`='list_beg_referral_urls' WHERE `what`='list_beg_referal_urls' LIMIT 1");
368
369                                 // Update notes
370                                 setExtensionUpdateNotes("Verwendungszwecke f&uuml;r Referralgutgschriften registriert.");
371                                 break;
372                 } // END - switch
373                 break;
374
375         case 'modify': // When the extension got modified
376                 break;
377
378         case 'test': // For testing purposes
379                 break;
380
381         case 'init': // When extension is initialized
382                 break;
383
384         default: // Unknown extension mode
385                 logDebugMessage(__FILE__, __LINE__, sprintf("Unknown extension mode %s in extension %s detected.", getExtensionMode(), getCurrentExtensionName()));
386                 break;
387 } // END - switch
388
389 // [EOF]
390 ?>