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