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