Wrapper functions introduced for configuration, loaders refactured:
[mailer.git] / inc / extensions / ext-bonus.php
1 <?php
2 /************************************************************************
3  * Mailer v0.2.1-FINAL                                Start: 04/04/2004 *
4  * ===================                          Last change: 06/13/2005 *
5  *                                                                      *
6  * -------------------------------------------------------------------- *
7  * File              : ext-bonus.php                                    *
8  * -------------------------------------------------------------------- *
9  * Short description : Bonus pages                                      *
10  * -------------------------------------------------------------------- *
11  * Kurzbeschreibung  : Bonus-Seiten                                     *
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 - 2011 by Mailer Developer Team                   *
20  * For more information visit: http://www.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 of this extension
44 setThisExtensionVersion('0.9.4');
45
46 // Version history array (add more with , '0.1.0' and so on)
47 setExtensionVersionHistory(array('0.0', '0.1.6', '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', '0.3.7', '0.3.8', '0.3.9', '0.4.0', '0.4.1', '0.4.2', '0.4.3', '0.4.4', '0.4.5', '0.4.6', '0.4.7', '0.4.8', '0.4.9', '0.5.0', '0.5.1', '0.5.2', '0.5.3', '0.5.4', '0.5.5', '0.5.6', '0.5.7', '0.5.8', '0.5.9', '0.6.0', '0.6.1', '0.6.2', '0.6.3', '0.6.4', '0.6.5', '0.6.6', '0.6.7', '0.6.8', '0.6.9', '0.7.0', '0.7.1', '0.7.2', '0.7.3', '0.7.4', '0.7.5', '0.7.6', '0.7.7', '0.7.8', '0.7.9', '0.8.0', '0.8.1', '0.8.2', '0.8.3', '0.8.4', '0.8.5', '0.8.6', '0.8.7', '0.8.8', '0.8.9', '0.9.0', '0.9.1', '0.9.2', '0.9.3', '0.9.4'));
48
49 switch (getExtensionMode()) {
50         case 'register': // Do stuff when installation is running (modules.php?module=admin is called)
51                 // Add dependency to 'user'
52                 addExtensionDependency('user');
53
54                 // SQL commands to run
55                 addAdminMenuSql('email','send_bonus','Bonusmail senden','Versenden Sie hier Bonus-Mails an alle Mitglieder oder nur an alle aus einer Kategorie. Es spielt keine Rolle, wie viele Mails bereits versendet worden, Sie k&ouml;nnen hier immer senden.', 5);
56                 addMemberMenuSql('main','bonus','Bonuspunkte','N','Y',7);
57                 addDropTableSql('bonus');
58                 addCreateTableSql('bonus', "(
59 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
60 `cat_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
61 `subject` VARCHAR(255) NOT NULL DEFAULT '',
62 `text` LONGTEXT NOT NULL,
63 `receivers` LONGTEXT NOT NULL,
64 `points` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
65 `time` TINYINT(3) UNSIGNED NOT NULL DEFAULT 0,
66 `data_type` ENUM('NEW','QUEUE','SEND') NOT NULL DEFAULT 'NEW',
67 `timestamp` VARCHAR(10) NOT NULL DEFAULT 0,
68 `url` VARCHAR(255) NOT NULL DEFAULT '',
69 `target_send` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
70 `clicks` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
71 `mails_sent` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
72 KEY (`cat_id`),
73 PRIMARY KEY (`id`)
74 ) ENGINE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT = 'Bonus mails'");
75                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_links` MODIFY `link_type` ENUM('NORMAL','BONUS') NOT NULL DEFAULT 'NORMAL'");
76                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_links` ADD `bonus_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
77                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_links` ADD INDEX (`bonus_id`)");
78
79                 // Run this SQL when html_mail extension is installed
80                 if (isExtensionActive('html_mail')) {
81                         addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_bonus` ADD `html_msg` ENUM('Y','N') NOT NULL DEFAULT 'N'");
82                 } // END - if
83                 break;
84
85         case 'remove': // Do stuff when removing extension
86                 // SQL commands to run
87                 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `what` IN ('bonus','config_bonus','send_bonus','list_bonus','list_notifications')");
88                 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_member_menu` WHERE `what`='bonus' LIMIT 1");
89                 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_guest_menu` WHERE `action`='bonus'");
90                 addDropTableSql('bonus');
91                 addDropTableSql('bonus_urls');
92                 addDropTableSql('bonus_customer');
93                 addDropTableSql('bonus_turbo');
94
95                 // Unregister filter
96                 unregisterFilter(__FUNCTION__, __LINE__, 'member_login_check', 'ADD_LOGIN_BONUS', true, isExtensionDryRun());
97                 break;
98
99         case 'activate': // Do stuff when admin activates this extension
100                 // SQL commands to run
101                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `visible`='Y', `locked`='N' WHERE `what`='bonus' LIMIT 1");
102                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_guest_menu` SET `visible`='Y', `locked`='N' WHERE `action`='bonus' LIMIT 1");
103                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_mod_reg` SET `locked`='N', `hidden`='N', `admin_only`='N', `mem_only`='N' WHERE `module`='show_bonus' LIMIT 1");
104                 break;
105
106         case 'deactivate': // Do stuff when admin deactivates this extension
107                 // SQL commands to run
108                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `visible`='N', `locked`='Y' WHERE `what`='bonus' LIMIT 1");
109                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_guest_menu` SET `visible`='N', `locked`='Y' WHERE `action`='bonus' LIMIT 1");
110                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_mod_reg` SET `locked`='Y' WHERE `module`='show_bonus' LIMIT 1");
111                 break;
112
113         case 'update': // Update an extension
114                 switch (getCurrentExtensionVersion()) {
115                         case '0.1.6': // SQL queries for v0.1.6
116                                 // Update notes (these will be set as task text!)
117                                 setExtensionUpdateNotes("Paid-Links wurden verschoben in die Erweiterung <strong>sponsor</strong>.");
118                                 break;
119
120                         case '0.2.0': // SQL queries for v0.2.0
121                                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_bonus` SET `target_send`=`mails_sent` WHERE `target_send`=0 AND `mails_sent`>0 AND `receivers` != ''");
122
123                                 // Update notes (these will be set as task text!)
124                                 setExtensionUpdateNotes("Behebt ein Versand-Problem mit den Bonus-Mails. Es wurde die Spalte target_send nicht beim Einf&uuml;gen der Buchung gessetzt.");
125                                 break;
126
127                         case '0.2.1': // SQL queries for v0.2.1
128                                 // Add extension dependency because of the update command
129                                 addExtensionDependency('sql_patches');
130
131                                 addConfigAddSql('login_bonus', "FLOAT(20,3) NOT NULL DEFAULT 10.000");
132                                 addConfigAddSql('turbo_bonus', "FLOAT(20,3) NOT NULL DEFAULT 100.000");
133                                 addConfigAddSql('login_timeout', "BIGINT(20) UNSIGNED NOT NULL DEFAULT {?ONE_DAY?}");
134                                 addConfigAddSql('turbo_rates', "VARCHAR(255) NOT NULL DEFAULT '50;20;10'");
135                                 addConfigAddSql('bonus_ranks', "TINYINT(3) UNSIGNED NOT NULL DEFAULT 10");
136
137                                 // Use actual month for this update
138                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD `login_bonus` FLOAT(20,3) NOT NULL DEFAULT 0.000");
139                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD `turbo_bonus` FLOAT(20,3) NOT NULL DEFAULT 0.000");
140
141                                 // Update notes (these will be set as task text!)
142                                 setExtensionUpdateNotes("Login-Bonus und Turbo-Klick-Bonus intergriert.");
143                                 break;
144
145                         case '0.2.2': // SQL queries for v0.2.2
146                                 addDropTableSql('bonus_turbo');
147                                 addCreateTableSql('bonus_turbo', "(
148 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
149 `userid` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
150 `mail_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
151 `bonus_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
152 `level` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
153 `points` FLOAT(20,3) NOT NULL DEFAULT '0.000',
154 `timemark` VARCHAR(32) NOT NULL DEFAULT 0,
155 PRIMARY KEY (`id`),
156 INDEX `mail_id` (`mail_id`),
157 INDEX `bonus_id` (`bonus_id`),
158 INDEX `userid` (`userid`)
159 ) ENGINE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT = 'Fastest click rallye table'");
160
161                                 // Update notes (these will be set as task text!)
162                                 setExtensionUpdateNotes("Turbo-Bonus wird in Tabelle gez&auml;hlt f&uuml;r Anzeige, wer alles bereits geklickt hat und welchen Platz er gemacht hat.");
163                                 break;
164
165                         case '0.2.3': // SQL queries for v0.2.3
166                                 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_member_menu` WHERE `what`='bonus' LIMIT 1");
167                                 addMemberMenuSql('main','bonus','Aktiv-Rallye','N','Y',7);
168
169                                 // Update notes (these will be set as task text!)
170                                 setExtensionUpdateNotes("Aktiv-Rallye mit Klick-Verg&uuml;tung hinzugef&uuml;gt.");
171                                 break;
172
173                         case '0.2.4': // SQL queries for v0.2.4
174                                 // Update notes (these will be set as task text!)
175                                 setExtensionUpdateNotes("Wegen des Theme-Supportes hat sich die URL zur CSS-Datei ge&auml;ndert.");
176                                 break;
177
178                         case '0.2.5': // SQL queries for v0.2.5
179                                 addDropTableSql('bonus_urls');
180                                 addDropTableSql('bonus_customer');
181
182                                 // Update notes (these will be set as task text!)
183                                 setExtensionUpdateNotes("Tabellen <u>{?_MYSQL_PREFIX?}_bonus_urls</u> und <u>{?_MYSQL_PREFIX?}_bonus_customer</u> entfernt, da dies bald von der Erweiterung <u>sponsor</u> erledigt wird.");
184                                 break;
185
186                         case '0.2.6': // SQL queries for v0.2.6
187                                 // Update notes (these will be set as task text!)
188                                 setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.");
189                                 break;
190
191                         case '0.2.7': // SQL queries for v0.2.7
192                                 // Update notes (these will be set as task text!)
193                                 setExtensionUpdateNotes("Turbo-Bonus klappt wieder (dies sind {?POINTS?} die an die schnellsten Klicker verg&uuml;tet werden!)");
194                                 break;
195
196                         case '0.2.8': // SQL queries for v0.2.8
197                                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_bonus` SET `timestamp`=0 WHERE `timestamp`='0000000000'");
198                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_bonus_turbo` CHANGE `points` `points` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
199                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` CHANGE `turbo_bonus` `turbo_bonus` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
200                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` CHANGE `login_bonus` `login_bonus` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
201
202                                 // For configuration, we need different entries
203                                 addConfigChangeSql('turbo_bonus', 'turbo_bonus', 'FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000');
204                                 addConfigChangeSql('login_bonus', 'login_bonus', 'FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000');
205
206                                 // Update notes (these will be set as task text!)
207                                 setExtensionUpdateNotes("5 Nachkommastellen implementiert");
208                                 break;
209
210                         case '0.2.9': // SQL queries for v0.2.9
211                                 // Update notes (these will be set as task text!)
212                                 setExtensionUpdateNotes("Problem mit Speicherung der Einstellungen beseitigt.");
213                                 break;
214
215                         case '0.3.0': // SQL queries for v0.3.0
216                                 // Update notes (these will be set as task text!)
217                                 setExtensionUpdateNotes("Men&uuml;punkte im Gast-/Mitgliedsbereich k&ouml;nnen nicht mehr aufgerufen werden, wenn die Erweiterung deaktiviert ist.");
218                                 break;
219
220                         case '0.3.1': // SQL queries for v0.3.1
221                                 // Update notes (these will be set as task text!)
222                                 setExtensionUpdateNotes("Sicherheitsupdate am Script <u>show_bonus.php</u> durchgef&uuml;hrt.");
223                                 break;
224
225                         case '0.3.2': // SQL queries for v0.3.2
226                                 // Update notes (these will be set as task text!)
227                                 setExtensionUpdateNotes("Design &quot;Solid-Business&quot; eingebaut.");
228                                 break;
229
230                         case '0.3.3': // SQL queries for v0.3.3
231                                 // Update notes (these will be set as task text!)
232                                 setExtensionUpdateNotes("Seit <strong>Patch 340</strong> &uuml;berfl&uuml;ssige HTML-Tags entfernt.");
233                                 break;
234
235                         case '0.3.4': // SQL queries for v0.3.4
236                                 addAdminMenuSql('user','list_bonus','Aktiv-Rallye-Teilnehmer','Listet alle Mitglieder auf, die einen Aktiv-Bonus haben und zeigt die derzeit m&ouml;glichen Gewinner an.', 10);
237
238                                 // Update notes (these will be set as task text!)
239                                 setExtensionUpdateNotes("Link <u>Aktiv-Rallye-Teilnehmer</u> hinzugef&uuml;gt, inklusive manuelle Vorbereitung der Verg&uuml;tung.");
240                                 break;
241
242                         case '0.3.5': // SQL queries for v0.3.5
243                                 addConfigAddSql('bonus_mode', "ENUM('UID','JACKPOT','ADD') NOT NULL DEFAULT 'ADD'");
244                                 addConfigAddSql('bonus_userid', "BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
245
246                                 // Update notes (these will be set as task text!)
247                                 setExtensionUpdateNotes("Der Login-Bonus Aktiv-Bonus (= Klick-Bonus) k&ouml;nnen nun zuerst von einem Mitgliederaccount (das sollte Ihres sein!), vom Jackpot abgezogen oder einfach dazuadiert werden.");
248                                 break;
249
250                         case '0.3.6': // SQL queries for v0.3.6
251                                 // Update notes (these will be set as task text!)
252                                 setExtensionUpdateNotes("In der Admin-Liste werden nur aktive Mitglieder gelistet und zudem die sp&auml;teste Zeitmarke f&uuml;r die Auswertung angezeigt.");
253                                 break;
254
255                         case '0.3.7': // SQL queries for v0.3.7
256                                 // Update notes (these will be set as task text!)
257                                 setExtensionUpdateNotes("Mitglieder-Account auw&auml;hlbar, von dem die {?POINTS?} f&uuml;r den Aktiv- und Login-Bonus abgebucht werden.");
258                                 break;
259
260                         case '0.3.8': // SQL queries for v0.3.8
261                                 // Update notes (these will be set as task text!)
262                                 setExtensionUpdateNotes("Ausgabe des generierten HTML-Codes nach <u>inc/footer.php</u> verlagert.");
263                                 break;
264
265                         case '0.3.9': // SQL queries for v0.3.9
266                                 // Update notes (these will be set as task text!)
267                                 setExtensionUpdateNotes("Fehlende Variablen gefixt.");
268                                 break;
269
270                         case '0.4.0': // SQL queries for v0.4.0
271                                 addConfigAddSql('bonus_timeout', "BIGINT(20) UNSIGNED NOT NULL DEFAULT ".(getOneDay()*7)."");
272                                 addConfigAddSql('bonus_lines', "BIGINT(20) UNSIGNED NOT NULL DEFAULT 10");
273
274                                 // Update notes (these will be set as task text!)
275                                 setExtensionUpdateNotes("Automatisches L&ouml;schen von Turbo-Bonus-Zeilen ({?_MYSQL_PREFIX?}_bonus_turbo) und begrenzte Anzahl von Eintr&auml;gen hinzugef&uuml;gt.");
276                                 break;
277
278                         case '0.4.1': // SQL queries for v0.4.1
279                                 // Update notes (these will be set as task text!)
280                                 setExtensionUpdateNotes("Verg&uuml;tung des Aktiv-Bonus repariert.");
281                                 break;
282
283                         case '0.4.2': // SQL queries for v0.4.2
284                                 // Update notes (these will be set as task text!)
285                                 setExtensionUpdateNotes("Admin-Bereich / Aktiv-Teilnehmer auflisten: Problem mit Konstante __AUTOPURGE_TIMEOUT und das Template <u>admin_list_bonus.tpl</u> korregiert.");
286                                 break;
287
288                         case '0.4.3': // SQL queries for v0.4.3
289                                 // Update notes (these will be set as task text!)
290                                 setExtensionUpdateNotes("Verbesserung des Versandes von  HTML-Bonus-Mails.");
291                                 break;
292
293                         case '0.4.4': // SQL queries for v0.4.4
294                                 addConfigAddSql('bonus_order', "FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 15.00000");
295                                 addConfigAddSql('bonus_ref', "FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 100.00000");
296                                 addConfigAddSql('bonus_stats', "FLOAT(20,5) UNSIGNED NOT NULL DEFAULT '5.00000'");
297                                 addConfigAddSql('bonus_active', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
298                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD `bonus_order` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
299                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD `bonus_ref` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
300                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD `bonus_stats` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
301
302                                 // Update notes (these will be set as task text!)
303                                 setExtensionUpdateNotes("Bonus-{?POINTS?} f&uuml;r: Mailbestellung, Referal-Werbung (bei Best. der EMail-Adresse) und wenn 100% Klickrate jeder Mailbuchung erreicht wurde.<br />Template <u>admin_config_bonus_pro.tpl</u> ist &uuml;berfl&uuml;ssig geworden. Bitte l&ouml;schen Sie dies!<br />Eingestellte Bonus-{?POINTS?} f&uuml;r Rank 2 war um eins verschoben.");
304                                 break;
305
306                         case '0.4.5': // SQL queries for v0.4.5
307                                 // Update notes (these will be set as task text!)
308                                 setExtensionUpdateNotes("Abzug vom Bonus-Account integriert.");
309                                 break;
310
311                         case '0.4.6': // SQL queries for v0.4.6
312                                 // Update notes (these will be set as task text!)
313                                 setExtensionUpdateNotes("Rank 2 bekommt nun auch seine {?POINTS?} gutgeschrieben.");
314                                 break;
315
316                         case '0.4.7': // SQL queries for v0.4.7
317                                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_user_data` SET `login_bonus`=0, `turbo_bonus`=0, `bonus_ref`=0, `bonus_order`=0, `bonus_stats`=0");
318
319                                 // Update notes (these will be set as task text!)
320                                 setExtensionUpdateNotes("Die Aktiv-Rallye wurde nicht auf 0 {?POINTS?} gesetzt. Dieser Fehler ist nun behoben. Allerdings ist mit diesem Update auch die Aktiv-Rallye zur&uuml;ckgesetzt worden.");
321                                 break;
322
323                         case '0.4.8': // SQL queries for v0.4.8
324                                 // Update notes (these will be set as task text!)
325                                 setExtensionUpdateNotes("In <u>inc/monthly_bonus.php</u> fehlte ein Punkt; Fehler besseitigt.");
326                                 break;
327
328                         case '0.4.9': // SQL queries for v0.4.9
329                                 // Update notes (these will be set as task text!)
330                                 setExtensionUpdateNotes("Login-Bonus wird mit angezeigt.");
331                                 break;
332
333                         case '0.5.0': // SQL queries for v0.5.0
334                                 // Update notes (these will be set as task text!)
335                                 setExtensionUpdateNotes("Problem mit <strong>is_hundred</strong> beim t&auml;glichen Reset beseitigt.");
336                                 break;
337
338                         case '0.5.1': // SQL queries for v0.5.1
339                                 // Update notes (these will be set as task text!)
340                                 setExtensionUpdateNotes("Problem mit <strong>bonus_stats / Zeile 31</strong> beim t&auml;glichen Reset beseitigt.");
341                                 break;
342
343                         case '0.5.2': // SQL queries for v0.5.2
344                                 // Update notes (these will be set as task text!)
345                                 setExtensionUpdateNotes("W&ouml;rter <strong>{?mt_word?}</strong>, <strong>{?mt_word2?}</strong> und <strong>{?mt_word3?}</strong> sind austauschbar.");
346                                 break;
347
348                         case '0.5.3': // SQL queries for v0.5.3
349                                 // Update notes (these will be set as task text!)
350                                 setExtensionUpdateNotes("Speichern der Aktiv-{?POINTS?} f&uuml;r Platz 2 bis <strong>x</strong> korregiert.");
351                                 break;
352
353                         case '0.5.4': // SQL queries for v0.5.4
354                                 // Update notes (these will be set as task text!)
355                                 setExtensionUpdateNotes("Variablenfehler in <strong>inc/monthly_bonus.php</strong> behoben.");
356                                 break;
357
358                         case '0.5.5': // SQL queries for v0.5.5
359                                 // Update notes (these will be set as task text!)
360                                 setExtensionUpdateNotes("Weitere Variablenfehler in <strong>inc/monthly_bonus.php</strong> haben daf&uuml;r gesorgt, dass die monatliche Aktiv-Rallye nicht ausgesch&uuml;ttet wurde. Mit diesem Update wurde die Aussch&uuml;ttung initialisiert. Ihre Mitglieder bekommen voraussichtlicht nichts doppelt verg&uuml;tet.");
361                                 break;
362
363                         case '0.5.6': // SQL queries for v0.5.6
364                                 // Get current month
365                                 $curr = getMonth();
366                                 if (strlen($curr) == 1) $curr = '0' . $curr;
367                                 if ($curr == '00') $curr = '12';
368
369                                 // Generate timemark...
370                                 $mark = mktime(0, 0, 0, $curr, 1, getYear());
371
372                                 // Update accounts which are not active last months
373                                 addExtensionSql("UPDATE
374         `{?_MYSQL_PREFIX?}_user_data`
375 SET
376         `turbo_bonus`=0,
377         `login_bonus`=0,
378         `bonus_order`=0,
379         `bonus_stats`=0,
380         `bonus_ref`=0
381 WHERE
382         `last_online` < ".$mark."
383 ORDER BY
384         `userid` ASC");
385
386                                 // Update notes (these will be set as task text!)
387                                 setExtensionUpdateNotes("Ein weiterer Scriptfehler hat nur die Gewinner aus der Aktiv-Rallye genommen. Die anderen Mitglieder sind somit &quot;nach oben gerutsch&quot;.");
388                                 break;
389
390                         case '0.5.7': // SQL queries for v0.5.7
391                                 break;
392
393                         case '0.5.8': // SQL queries for v0.5.8
394                                 // Update notes (these will be set as task text!)
395                                 setExtensionUpdateNotes("Problem mit <strong>is_hundred</strong> beim t&auml;glichen Reset endlich beseitigt.");
396                                 break;
397
398                         case '0.5.9': // SQL queries for v0.5.9
399                                 setExtensionUpdateNotes("Fehlermeldung <strong>/home/verzeichnis/html/inc/stats_bonus.php (42):You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '' WHERE userid='59' LIMIT 1' at line 1</strong> beseitigt.");
400                                 break;
401
402                         case '0.6.0': // SQL queries for v0.6.0
403                                 setExtensionUpdateNotes("SQL-Fehlermeldung in <strong>inc/monthly_bonus.php</strong> beseitigt.");
404                                 break;
405
406                         case '0.6.1': // SQL queries for v0.6.1
407                                 setExtensionUpdateNotes("Versand von Bonus-Mails repariert.");
408                                 break;
409
410                         case '0.6.2': // SQL queries for v0.6.2
411                                 setExtensionUpdateNotes("L&ouml;schen von bereits gel&ouml;schten Mails wird nun abgelehnt.");
412                                 break;
413
414                         case '0.6.3': // SQL queries for v0.6.3
415                                 setExtensionUpdateNotes("Abspeichern von Einstellungen repariert.");
416                                 break;
417
418                         case '0.6.4': // SQL queries for v0.6.4
419                                 // Update notes (these will be set as task text!)
420                                 setExtensionUpdateNotes("Der Men&uuml;punkt &quot;Bonus-{?POINTS?}&quot; unter Einstellungen wird nach &quot;Aktiv-Rallye umbenannt. Und die Aktiv-Rallye konnte aufgrund eines Template-Fehlers nicht gespeichert werden.");
421                                 break;
422
423                         case '0.6.5': // SQL queries for v0.6.5
424                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_stats` ADD `bonus_stats` ENUM('Y','N') NOT NULL DEFAULT 'N'");
425
426                                 // Update notes (these will be set as task text!)
427                                 setExtensionUpdateNotes("Fehler mit bonus_stats beseitigt.");
428                                 break;
429
430                         case '0.6.6': // SQL queries for v0.6.6
431                                 setExtensionUpdateNotes("Template-Fehler beseitigt im Admin-Bereich.");
432                                 break;
433
434                         case '0.6.7': // SQL queries for v0.6.7
435                                 setExtensionUpdateNotes("Vorbereitung auf die neue Mediendaten v0.0.4.");
436                                 break;
437
438                         case '0.6.8': // SQL queries for v0.6.8
439                                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_bonus` SET `data_type`='SEND' WHERE `data_type` != 'SEND' AND `data_type` != 'DELETED' AND `receivers`='' AND `target_send`=0");
440
441                                 // Update notes (these will be set as task text!)
442                                 setExtensionUpdateNotes("Eingegebene Anzahl auszusendener Bonus-Mails wurde bei der Empf&auml;nderauswahl nicht ber&uuml;cksichtigt. Zudem wird jetzt das eingestellte Auswahlverfahren mitber&uuml;cksichtigt.");
443                                 break;
444
445                         case '0.6.9': // SQL queries for v0.6.9
446                                 addConfigAddSql('bonus_order_yn', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
447                                 addConfigAddSql('bonus_ref_yn', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
448                                 addConfigAddSql('bonus_stats_yn', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
449                                 addConfigAddSql('bonus_login_yn', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
450                                 addConfigAddSql('bonus_click_yn', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
451
452                                 // Update notes (these will be set as task text!)
453                                 setExtensionUpdateNotes("Es k&ouml;nnen nun auch die folgenden Verg&uuml;tungen bei der Auswertung der monatlichen Aktiv-Rallye mit ber&uuml;cksichtigt werden: Mailbest&auml;tigung (war vorher schon), Login-, Mailbuchung, Referal und Statistik-Bonus (100% Klickrate erreicht).");
454                                 break;
455
456                         case '0.7.0': // SQL queries for v0.7.0
457                                 setExtensionUpdateNotes("Zuschaltung von weiteren Bonis wird jetzt auch bei der Auflistung der mitmachenden Mitglieder im Mitgliedsbereich beachtet.");
458                                 break;
459
460                         case '0.7.1': // SQL queries for v0.7.1
461                                 setExtensionUpdateNotes("Im Adminbereich wird nun ebenfalls die Zuschaltung von weiteren Bonis ber&uuml;cksichtigt. Zudem wird der Gesamtbonus an alle Mitglieder errechnet und auch angezeigt.");
462                                 break;
463
464                         case '0.7.2': // SQL queries for v0.7.2
465                                 setExtensionUpdateNotes("Die Verg&uuml;tung der erreichten 100%-Klickrate war noch wegen Programmierungen am Script auskommentiert. Sorry!");
466                                 break;
467
468                         case '0.7.3': // SQL queries for v0.7.3
469                                 setExtensionUpdateNotes("Gutgeschriebene Bonus-{?POINTS?} werden nach Deaktivierung der Aktiv-Rallye gel&ouml;scht.");
470                                 break;
471
472                         case '0.7.4': // SQL queries for v0.7.4
473                                 setExtensionUpdateNotes("Rechtlichen Hinweis im Mitgliedsbereich vergessen. (<strong>member_bonus.tpl</strong>)");
474                                 break;
475
476                         case '0.7.5': // SQL queries for v0.7.5
477                                 setExtensionUpdateNotes("Im Admin-Bereich Hinweis hinzugef&uuml;gt, wenn Aktiv-Rallye inaktiv ist. Bitte Script inc/monthly_bonus.php l&ouml;schen!");
478                                 break;
479
480                         case '0.7.6': // SQL queries for v0.7.6
481                                 setExtensionUpdateNotes("Auswahlmechanismus der Gewinner repariert. Trotz Hinzuschalten von weiteren zu ber&uuml;cksichtigen Boni wurden diese bei der Sortierung der Mitglieder-Ids nicht ber&uuml;cksichtig.");
482                                 break;
483
484                         case '0.7.7': // SQL queries for v0.7.7
485                                 addConfigAddSql('bonus_en_notify', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
486                                 addConfigAddSql('bonus_di_notify', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
487                                 addConfigAddSql('bonus_new_mem_notify', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
488                                 addConfigAddSql('bonus_notify_points', "FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
489                                 addConfigAddSql('bonus_notify_wait', "BIGINT(20) UNSIGNED NOT NULL DEFAULT '30'");
490                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD `bonus_ral_en_notify` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
491                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD `bonus_ral_di_notify` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
492                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD `bonus_ral_notify` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
493
494                                 // Update notes (these will be set as task text!)
495                                 setExtensionUpdateNotes("Optionale automatische Benachrichtigung &uuml;ber aktivierte und/oder deaktivierte Aktiv-Rallye einstellbar.");
496                                 break;
497
498                         case '0.7.8': // SQL queries for v0.7.8
499                                 // Update notes (these will be set as task text!)
500                                 setExtensionUpdateNotes("Fehler im t&auml;glichen Reset beseitigt.");
501                                 break;
502
503                         case '0.7.9': // SQL queries for v0.7.9
504                                 setExtensionUpdateNotes("Dollarzeichen fehlte in <strong>inc/daily/daily_bonus.php</strong>, Zeile 39");
505                                 break;
506
507                         case '0.8.0': // SQL queries for v0.8.0
508                                 setExtensionUpdateNotes("De-/Aktivieren des mit dieser Erweiterung verkn&uuml;pften Modules eingebunden.");
509                                 break;
510
511                         case '0.8.1': // SQL queries for v0.8.1
512                                 setExtensionUpdateNotes("Bei {?POINTS?}-Gleichstand wird als n&auml;chstes nach wer als letztes Online war umsortiert.");
513                                 break;
514
515                         case '0.8.2': // SQL queries for v0.8.2
516                                 addConfigAddSql('bonus_include_own', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
517                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_bonus` ADD `is_notify` ENUM('Y','N') NOT NULL DEFAULT 'N'");
518
519                                 // Update notes (these will be set as task text!)
520                                 setExtensionUpdateNotes("Eigene Mitglieder-Ids sind von der Aktiv-Rallye nun ausschliessbar. Benachrichtigungsmails sind von Aktiv-Rallye ausgeschlossen.");
521                                 break;
522
523                         case '0.8.3': // SQL queries for v0.8.3
524                                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `action`='rals', `sort`=2, `title`='Aktiv-Rallye' WHERE `what`='bonus' LIMIT 1");
525
526                                 // Update notes (these will be set as task text!)
527                                 setExtensionUpdateNotes("Mitgliedsmen&uuml; komplett umgebaut.");
528                                 break;
529
530                         case '0.8.4': // SQL queries for v0.8.4
531                                 setExtensionUpdateNotes("Ladeproblem bei nicht installierter Erweiterung <strong>cache</strong> gefixt.");
532                                 break;
533
534                         case '0.8.5': // SQL queries for v0.8.5
535                                 setExtensionUpdateNotes("CSS-Klassenname gefixt in Templates.");
536                                 break;
537
538                         case '0.8.6': // SQL queries for v0.8.6
539                                 setExtensionUpdateNotes("Fehlerhinweis bei deaktivierter Erweiterung verbessert.");
540                                 break;
541
542                         case '0.8.7': // SQL queries for v0.8.7
543                                 addAdminMenuSql('email','list_notifications','Benachrichtigungen','Listet alle an die Mitglieder ausgesandten Benachrichtigungen auf.', 10);
544
545                                 // Update notes
546                                 setExtensionUpdateNotes("Benachrichtigungsmails f&uuml;r z.B. Bettel- oder Aktiv-Rallye werden nun angezeigt.");
547                                 break;
548
549                         case '0.8.8': // SQL queries for v0.8.8
550                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_stats` ADD `bonus_stats_active` ENUM('Y','N') NOT NULL DEFAULT 'N'");
551
552                                 // Update notes
553                                 setExtensionUpdateNotes("Benachrichtigungsmails f&uuml;r z.B. Bettel- oder Aktiv-Rallye werden nun angezeigt.");
554                                 break;
555
556                         case '0.8.9': // SQL queries for v0.8.9
557                                 addAdminMenuSql('setup','config_bonus','Aktiv-Rallye','Richten Sie eine komplette Aktiv-Rallye hier ein. Legen Sie Verg&uuml;tungen fest, die die Mitglieder f&uuml;r bestimmte Aktionen auf ihr Aktiv-Konto gutgeschrieben bekommen sollen.',8);
558
559                                 // Update notes
560                                 setExtensionUpdateNotes("Benachrichtigungsmails f&uuml;r z.B. Bettel- oder Aktiv-Rallye werden nun angezeigt.");
561                                 break;
562
563                         case '0.9.0': // SQL queries for v0.9.0
564                                 // Register filter
565                                 registerFilter('member_login_check', 'ADD_LOGIN_BONUS', false, true, isExtensionDryRun());
566
567                                 // Update notes
568                                 setExtensionUpdateNotes("Filter hinzugef&uuml;gt der den Login-Bonus aktualisiert (bzw. soll) (internes TODO).");
569                                 break;
570
571                         case '0.9.1': // SQL queries for v0.9.1
572                                 addConfigChangeSql('bonus_en_notify', 'bonus_enable_notify', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
573                                 addConfigChangeSql('bonus_di_notify', 'bonus_disable_notify', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
574                                 addConfigChangeSql('bonus_new_mem_notify', 'bonus_new_member_notify', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
575
576                                 // Update notes
577                                 setExtensionUpdateNotes("Umbenannt nach neuer Konvention (bitte Einstellungen kontrollieren).");
578                                 break;
579
580                         case '0.9.2': // SQL queries for v0.9.2
581                                 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` CHANGE `bonus_ral_en_notify` `bonus_ralley_enable_notify` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0');
582                                 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` CHANGE `bonus_ral_di_notify` `bonus_ralley_disable_notify` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0');
583                                 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` CHANGE `bonus_ral_notify` `bonus_rallley_notify` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0');
584
585                                 // Update notes
586                                 setExtensionUpdateNotes("Umbenannt nach neuer Konvention (bitte Einstellungen kontrollieren).");
587                                 break;
588
589                         case '0.9.3': // SQL queries for v0.9.3
590                                 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` CHANGE `bonus_ralley_enable_notify` `bonus_rallye_enable_notify` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0');
591                                 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` CHANGE `bonus_ralley_disable_notify` `bonus_rallye_disable_notify` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0');
592                                 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` DROP `bonus_ralley_notify` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0');
593
594                                 // Update notes
595                                 setExtensionUpdateNotes("Typos gefixt.");
596                                 break;
597
598                         case '0.9.4': // SQL queries for v0.9.4
599                                 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_user_links` CHANGE `bonus_id` `bonus_id` BIGINT( 20 ) UNSIGNED NULL DEFAULT NULL');
600                                 addExtensionSql('UPDATE `{?_MYSQL_PREFIX?}_user_links` SET `bonus_id`=NULL WHERE `bonus_id`=0');
601
602                                 // Update notes
603                                 setExtensionUpdateNotes("Konfliktierende SQL-Befehle aus ext-user verschoben.");
604                                 break;
605                 } // END - switch
606                 break;
607
608         case 'modify': // When the extension got modified
609                 break;
610
611         case 'test': // For testing purposes
612                 break;
613
614         case 'init': // Do stuff when extension is initialized
615                 // Check for bonus rallye is active and send mails out
616                 if ((isBonusRallyeActive()) && (isBonusNewMemberNotifyEnabled())) {
617                         // Include file for sending out mails
618                         addIncludeToPool('notify', 'inc/mails/bonus_mails.php');
619                 } // END - if
620                 break;
621
622         default: // Unknown extension mode
623                 logDebugMessage(__FILE__, __LINE__, sprintf("Unknown extension mode %s in extension %s detected.", getExtensionMode(), getCurrentExtensionName()));
624                 break;
625 } // END - switch
626
627 // [EOF]
628 ?>