Rewrites/fixes for handling config entries in SQLs
[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  * Needs to be in all Files and every File needs "svn propset           *
18  * svn:keywords Date Revision" (autoprobset!) at least!!!!!!            *
19  * -------------------------------------------------------------------- *
20  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
21  * Copyright (c) 2009, 2010 by Mailer Developer Team                    *
22  * For more information visit: http://www.mxchange.org                  *
23  *                                                                      *
24  * This program is free software; you can redistribute it and/or modify *
25  * it under the terms of the GNU General Public License as published by *
26  * the Free Software Foundation; either version 2 of the License, or    *
27  * (at your option) any later version.                                  *
28  *                                                                      *
29  * This program is distributed in the hope that it will be useful,      *
30  * but WITHOUT ANY WARRANTY; without even the implied warranty of       *
31  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the        *
32  * GNU General Public License for more details.                         *
33  *                                                                      *
34  * You should have received a copy of the GNU General Public License    *
35  * along with this program; if not, write to the Free Software          *
36  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
37  * MA  02110-1301  USA                                                  *
38  ************************************************************************/
39
40 // Some security stuff...
41 if (!defined('__SECURITY')) {
42         die();
43 } // END - if
44
45 // Version of this extension
46 setThisExtensionVersion('0.9.0');
47
48 // Version history array (add more with , '0.1.0' and so on)
49 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'));
50
51 switch (getExtensionMode()) {
52         case 'register': // Do stuff when installation is running (modules.php?module=admin is called)
53                 // SQL commands to run
54                 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);
55                 addMemberMenuSql('main','bonus','Bonuspunkte','N','Y',7);
56                 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_bonus`');
57                 addExtensionSql("CREATE TABLE `{?_MYSQL_PREFIX?}_bonus` (
58 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
59 `cat_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
60 `subject` VARCHAR(255) NOT NULL DEFAULT '',
61 `text` LONGTEXT NOT NULL,
62 `receivers` LONGTEXT NOT NULL,
63 `points` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
64 `time` TINYINT(3) UNSIGNED NOT NULL DEFAULT 0,
65 `data_type` ENUM('NEW','QUEUE','SEND') NOT NULL DEFAULT 'NEW',
66 `timestamp` VARCHAR(10) NOT NULL DEFAULT 0,
67 `url` VARCHAR(255) NOT NULL DEFAULT '',
68 `target_send` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
69 `clicks` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
70 `mails_sent` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
71 KEY (`cat_id`),
72 PRIMARY KEY  (`id`)
73 )TYPE={?_TABLE_TYPE?} COMMENT='Bonus mails'");
74                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_links` MODIFY `link_type` ENUM('NORMAL','BONUS') NOT NULL DEFAULT 'NORMAL'");
75                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_links` ADD `bonus_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
76                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_links` ADD INDEX (`bonus_id`)");
77
78                 // Run this SQL when html or html_mail extension is installed
79                 if (isExtensionActive('html_mail')) addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_bonus` ADD `html_msg` ENUM('Y','N') NOT NULL DEFAULT 'N'");
80                 break;
81
82         case 'remove': // Do stuff when removing extension
83                 // SQL commands to run
84                 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `what` IN ('bonus','config_bonus','send_bonus','list_bonus','list_notifications')");
85                 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_member_menu` WHERE `what`='bonus' LIMIT 1");
86                 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_guest_menu` WHERE `action`='bonus'");
87                 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_bonus`');
88                 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_bonus_urls`');
89                 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_bonus_customer`');
90                 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_bonus_turbo`');
91
92                 // Unregister filter
93                 unregisterFilter('member_login_check', 'ADD_LOGIN_BONUS', true, getExtensionDryRun());
94                 break;
95
96         case 'activate': // Do stuff when admin activates this extension
97                 // SQL commands to run
98                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `visible`='Y', `locked`='N' WHERE `what`='bonus' LIMIT 1");
99                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_guest_menu` SET `visible`='Y', `locked`='N' WHERE `action`='bonus' LIMIT 1");
100                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_mod_reg` SET `locked`='N', `hidden`='N', `admin_only`='N', `mem_only`='N' WHERE `module`='show_bonus' LIMIT 1");
101                 break;
102
103         case 'deactivate': // Do stuff when admin deactivates this extension
104                 // SQL commands to run
105                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `visible`='N', `locked`='Y' WHERE `what`='bonus' LIMIT 1");
106                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_guest_menu` SET `visible`='N', `locked`='Y' WHERE `action`='bonus' LIMIT 1");
107                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_mod_reg` SET `locked`='Y' WHERE `module`='show_bonus' LIMIT 1");
108                 break;
109
110         case 'update': // Update an extension
111                 switch (getCurrentExtensionVersion()) {
112                         case '0.1.6': // SQL queries for v0.1.6
113                                 // Update notes (these will be set as task text!)
114                                 setExtensionUpdateNotes("Paid-Links wurden verschoben in die Erweiterung <strong>sponsor</strong>.");
115                                 break;
116
117                         case '0.2.0': // SQL queries for v0.2.0
118                                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_bonus` SET `target_send`=`mails_sent` WHERE `target_send`=0 AND `mails_sent`>0 AND `receivers` != ''");
119
120                                 // Update notes (these will be set as task text!)
121                                 setExtensionUpdateNotes("Behebt ein Versand-Problem mit den Bonus-Mails. Es wurde die Spalte target_send nicht beim Einf&uuml;gen der Buchung gessetzt. Bitte laden Sie sich dazu - wenn nicht bereits geschehen - alle Patches bis mindestens Patch 240 unter <strike>Updates pr&uuml;fen</strike> herunter.");
122                                 break;
123
124                         case '0.2.1': // SQL queries for v0.2.1
125                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `login_bonus` FLOAT(20,3) NOT NULL DEFAULT 10.000");
126                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `turbo_bonus` FLOAT(20,3) NOT NULL DEFAULT 100.000");
127                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `login_timeout` BIGINT(20) UNSIGNED NOT NULL DEFAULT {?ONE_DAY?}");
128                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `turbo_rates` VARCHAR(255) NOT NULL DEFAULT '50;20;10'");
129                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_ranks` TINYINT(3) UNSIGNED NOT NULL DEFAULT 10");
130                                 // Use actual month for this update
131                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD `login_bonus` FLOAT(20,3) NOT NULL DEFAULT 0.000");
132                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD `turbo_bonus` FLOAT(20,3) NOT NULL DEFAULT 0.000");
133                                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_extensions` SET `ext_has_css`='Y' WHERE `ext_name`='bonus' AND `ext_has_css`='N' LIMIT 1");
134
135                                 // Update notes (these will be set as task text!)
136                                 setExtensionUpdateNotes("Login-Bonus und Turbo-Klick-Bonus intergriert.");
137                                 break;
138
139                         case '0.2.2': // SQL queries for v0.2.2
140                                 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_bonus_turbo`');
141                                 addExtensionSql("CREATE TABLE `{?_MYSQL_PREFIX?}_bonus_turbo` (
142 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
143 `userid` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
144 `mail_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
145 `bonus_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
146 `level` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
147 `points` FLOAT(20,3) NOT NULL DEFAULT '0.000',
148 `timemark` VARCHAR(32) NOT NULL DEFAULT 0,
149 PRIMARY KEY (`id`),
150 INDEX `mail_id` (`mail_id`),
151 INDEX `bonus_id` (`bonus_id`),
152 INDEX `userid` (`userid`)
153 ) TYPE={?_TABLE_TYPE?}");
154
155                                 // Update notes (these will be set as task text!)
156                                 setExtensionUpdateNotes("Turbo-Bonus wird in Tabelle gez&auml;hlt f&uuml;r Anzeige, wer alles bereits geklickt hat und welchen Platz er gemacht hat.");
157                                 break;
158
159                         case '0.2.3': // SQL queries for v0.2.3
160                                 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_member_menu` WHERE `what`='bonus' LIMIT 1");
161                                 addMemberMenuSql('main','bonus','Aktiv-Rallye','N','Y',7);
162
163                                 // Update notes (these will be set as task text!)
164                                 setExtensionUpdateNotes("Aktiv-Rallye mit Klick-Verg&uuml;tung hinzugef&uuml;gt.");
165                                 break;
166
167                         case '0.2.4': // SQL queries for v0.2.4
168                                 // Update notes (these will be set as task text!)
169                                 setExtensionUpdateNotes("Wegen des Theme-Supportes hat sich die URL zur CSS-Datei ge&auml;ndert.");
170                                 break;
171
172                         case '0.2.5': // SQL queries for v0.2.5
173                                 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_bonus_urls`');
174                                 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_bonus_customer`');
175
176                                 // Update notes (these will be set as task text!)
177                                 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.");
178                                 break;
179
180                         case '0.2.6': // SQL queries for v0.2.6
181                                 // Update notes (these will be set as task text!)
182                                 setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.");
183                                 break;
184
185                         case '0.2.7': // SQL queries for v0.2.7
186                                 // Update notes (these will be set as task text!)
187                                 setExtensionUpdateNotes("Turbo-Bonus klappt wieder (dies sind {?POINTS?} die an die schnellsten Klicker verg&uuml;tet werden!)");
188                                 break;
189
190                         case '0.2.8': // SQL queries for v0.2.8
191                                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_bonus` SET `timestamp`=0 WHERE `timestamp`='0000000000'");
192                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_bonus_turbo` CHANGE `points` `points` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
193                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` CHANGE `turbo_bonus` `turbo_bonus` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
194                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` CHANGE `login_bonus` `login_bonus` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
195                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` CHANGE `turbo_bonus` `turbo_bonus` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
196                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` CHANGE `login_bonus` `login_bonus` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
197
198                                 // Update notes (these will be set as task text!)
199                                 setExtensionUpdateNotes("5 Nachkommastellen implementiert");
200                                 break;
201
202                         case '0.2.9': // SQL queries for v0.2.9
203                                 // Update notes (these will be set as task text!)
204                                 setExtensionUpdateNotes("Problem mit Speicherung der Einstellungen beseitigt.");
205                                 break;
206
207                         case '0.3.0': // SQL queries for v0.3.0
208                                 // Update notes (these will be set as task text!)
209                                 setExtensionUpdateNotes("Men&uuml;punkte im Gast-/Mitgliedsbereich k&ouml;nnen nicht mehr aufgerufen werden, wenn die Erweiterung deaktiviert ist.");
210                                 break;
211
212                         case '0.3.1': // SQL queries for v0.3.1
213                                 // Update notes (these will be set as task text!)
214                                 setExtensionUpdateNotes("Sicherheitsupdate am Script <u>show_bonus.php</u> durchgef&uuml;hrt.");
215                                 break;
216
217                         case '0.3.2': // SQL queries for v0.3.2
218                                 // Update notes (these will be set as task text!)
219                                 setExtensionUpdateNotes("Design &quot;Solid-Business&quot; eingebaut.");
220                                 break;
221
222                         case '0.3.3': // SQL queries for v0.3.3
223                                 // Update notes (these will be set as task text!)
224                                 setExtensionUpdateNotes("Seit <strong>Patch 340</strong> &uuml;berfl&uuml;ssige HTML-Tags entfernt.");
225                                 break;
226
227                         case '0.3.4': // SQL queries for v0.3.4
228                                 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);
229
230                                 // Update notes (these will be set as task text!)
231                                 setExtensionUpdateNotes("Link <u>Aktiv-Rallye-Teilnehmer</u> hinzugef&uuml;gt, inklusive manuelle Vorbereitung der Verg&uuml;tung.");
232                                 break;
233
234                         case '0.3.5': // SQL queries for v0.3.5
235                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_mode` ENUM('UID','JACKPOT','ADD') NOT NULL DEFAULT 'ADD'");
236                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_userid` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
237
238                                 // Update notes (these will be set as task text!)
239                                 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.");
240                                 break;
241
242                         case '0.3.6': // SQL queries for v0.3.6
243                                 // Update notes (these will be set as task text!)
244                                 setExtensionUpdateNotes("In der Admin-Liste werden nur aktive Mitglieder gelistet und zudem die sp&auml;teste Zeitmarke f&uuml;r die Auswertung angezeigt.");
245                                 break;
246
247                         case '0.3.7': // SQL queries for v0.3.7
248                                 // Update notes (these will be set as task text!)
249                                 setExtensionUpdateNotes("Mitglieder-Account auw&auml;hlbar, von dem die {?POINTS?} f&uuml;r den Aktiv- und Login-Bonus abgebucht werden.");
250                                 break;
251
252                         case '0.3.8': // SQL queries for v0.3.8
253                                 // Update notes (these will be set as task text!)
254                                 setExtensionUpdateNotes("Ausgabe des generierten HTML-Codes nach <u>inc/footer.php</u> verlagert.");
255                                 break;
256
257                         case '0.3.9': // SQL queries for v0.3.9
258                                 // Update notes (these will be set as task text!)
259                                 setExtensionUpdateNotes("Fehlende Variablen gefixt.");
260                                 break;
261
262                         case '0.4.0': // SQL queries for v0.4.0
263                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_timeout` BIGINT(20) UNSIGNED NOT NULL DEFAULT ".(getConfig('ONE_DAY')*7)."");
264                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_lines` BIGINT(20) UNSIGNED NOT NULL DEFAULT 10");
265
266                                 // Update notes (these will be set as task text!)
267                                 setExtensionUpdateNotes("Automatisches L&ouml;schen von Turbo-Bonus-Zeilen ({?_MYSQL_PREFIX?}_bonus_turbo) und begrenzte Anzahl von Eintr&auml;gen hinzugef&uuml;gt.");
268                                 break;
269
270                         case '0.4.1': // SQL queries for v0.4.1
271                                 // Update notes (these will be set as task text!)
272                                 setExtensionUpdateNotes("Verg&uuml;tung des Aktiv-Bonus repariert.");
273                                 break;
274
275                         case '0.4.2': // SQL queries for v0.4.2
276                                 // Update notes (these will be set as task text!)
277                                 setExtensionUpdateNotes("Admin-Bereich / Aktiv-Teilnehmer auflisten: Problem mit Konstante __AUTOPURGE_TIMEOUT und das Template <u>admin_list_bonus.tpl</u> korregiert.");
278                                 break;
279
280                         case '0.4.3': // SQL queries for v0.4.3
281                                 // Update notes (these will be set as task text!)
282                                 setExtensionUpdateNotes("Verbesserung des Versandes von  HTML-Bonus-Mails.");
283                                 break;
284
285                         case '0.4.4': // SQL queries for v0.4.4
286                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_order` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 15.00000");
287                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_ref` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 100.00000");
288                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_stats` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT '5.00000'");
289                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_active` ENUM('Y','N') NOT NULL DEFAULT 'Y'");
290                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD `bonus_order` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
291                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD `bonus_ref` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
292                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD `bonus_stats` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
293
294                                 // Update notes (these will be set as task text!)
295                                 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.");
296                                 break;
297
298                         case '0.4.5': // SQL queries for v0.4.5
299                                 // Update notes (these will be set as task text!)
300                                 setExtensionUpdateNotes("Abzug vom Bonus-Account integriert.");
301                                 break;
302
303                         case '0.4.6': // SQL queries for v0.4.6
304                                 // Update notes (these will be set as task text!)
305                                 setExtensionUpdateNotes("Rank 2 bekommt nun auch seine {?POINTS?} gutgeschrieben.");
306                                 break;
307
308                         case '0.4.7': // SQL queries for v0.4.7
309                                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_user_data` SET `login_bonus`=0, `turbo_bonus`=0, `bonus_ref`=0, `bonus_order`=0, `bonus_stats`=0");
310
311                                 // Update notes (these will be set as task text!)
312                                 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.");
313                                 break;
314
315                         case '0.4.8': // SQL queries for v0.4.8
316                                 // Update notes (these will be set as task text!)
317                                 setExtensionUpdateNotes("In <u>inc/monthly_bonus.php</u> fehlte ein Punkt; Fehler besseitigt.");
318                                 break;
319
320                         case '0.4.9': // SQL queries for v0.4.9
321                                 // Update notes (these will be set as task text!)
322                                 setExtensionUpdateNotes("Login-Bonus wird mit angezeigt.");
323                                 break;
324
325                         case '0.5.0': // SQL queries for v0.5.0
326                                 // Update notes (these will be set as task text!)
327                                 setExtensionUpdateNotes("Problem mit <strong>is_hundred</strong> beim t&auml;glichen Reset beseitigt.");
328                                 break;
329
330                         case '0.5.1': // SQL queries for v0.5.1
331                                 // Update notes (these will be set as task text!)
332                                 setExtensionUpdateNotes("Problem mit <strong>bonus_stats / Zeile 31</strong> beim t&auml;glichen Reset beseitigt.");
333                                 break;
334
335                         case '0.5.2': // SQL queries for v0.5.2
336                                 // Update notes (these will be set as task text!)
337                                 setExtensionUpdateNotes("W&ouml;rter <strong>{?mt_word?}</strong>, <strong>{?mt_word2?}</strong> und <strong>{?mt_word3?}</strong> sind austauschbar.");
338                                 break;
339
340                         case '0.5.3': // SQL queries for v0.5.3
341                                 // Update notes (these will be set as task text!)
342                                 setExtensionUpdateNotes("Speichern der Aktiv-{?POINTS?} f&uuml;r Platz 2 bis <strong>x</strong> korregiert.");
343                                 break;
344
345                         case '0.5.4': // SQL queries for v0.5.4
346                                 // Update notes (these will be set as task text!)
347                                 setExtensionUpdateNotes("Variablenfehler in <strong>inc/monthly_bonus.php</strong> behoben.");
348                                 break;
349
350                         case '0.5.5': // SQL queries for v0.5.5
351                                 // Update notes (these will be set as task text!)
352                                 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.");
353                                 break;
354
355                         case '0.5.6': // SQL queries for v0.5.6
356                                 // Get current month
357                                 $curr = date('m', time());
358                                 if (strlen($curr) == 1) $curr = '0' . $curr;
359                                 if ($curr == "00") $curr = "12";
360
361                                 // Generate timemark...
362                                 $mark = mktime(0, 0, 0, $curr, 1, date('Y', time()));
363
364                                 // Update accounts which are not active last months
365                                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_user_data`
366 SET `turbo_bonus`=0, `login_bonus`=0, `bonus_order`=0, `bonus_stats`=0, `bonus_ref`=0
367 WHERE `last_online` < ".$mark." ORDER BY `userid` ASC");
368
369                                 // Update notes (these will be set as task text!)
370                                 setExtensionUpdateNotes("Ein weiterer Scriptfehler hat nur die Gewinner aus der Aktiv-Rallye genommen. Die anderen Mitglieder sind somit &quot;nach oben gerutsch&quot;.");
371                                 break;
372
373                         case '0.5.7': // SQL queries for v0.5.7
374                                 break;
375
376                         case '0.5.8': // SQL queries for v0.5.8
377                                 // Update notes (these will be set as task text!)
378                                 setExtensionUpdateNotes("Problem mit <strong>is_hundred</strong> beim t&auml;glichen Reset endlich beseitigt.");
379                                 break;
380
381                         case '0.5.9': // SQL queries for v0.5.9
382                                 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.");
383                                 break;
384
385                         case '0.6.0': // SQL queries for v0.6.0
386                                 setExtensionUpdateNotes("SQL-Fehlermeldung in <strong>inc/monthly_bonus.php</strong> beseitigt.");
387                                 break;
388
389                         case '0.6.1': // SQL queries for v0.6.1
390                                 setExtensionUpdateNotes("Versand von Bonus-Mails repariert.");
391                                 break;
392
393                         case '0.6.2': // SQL queries for v0.6.2
394                                 setExtensionUpdateNotes("L&ouml;schen von bereits gel&ouml;schten Mails wird nun abgelehnt.");
395                                 break;
396
397                         case '0.6.3': // SQL queries for v0.6.3
398                                 setExtensionUpdateNotes("Abspeichern von Einstellungen repariert.");
399                                 break;
400
401                         case '0.6.4': // SQL queries for v0.6.4
402                                 // Update notes (these will be set as task text!)
403                                 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.");
404                                 break;
405
406                         case '0.6.5': // SQL queries for v0.6.5
407                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_stats` ADD `bonus_stats` ENUM('Y','N') NOT NULL DEFAULT 'N'");
408
409                                 // Update notes (these will be set as task text!)
410                                 setExtensionUpdateNotes("Fehler mit bonus_stats beseitigt.");
411                                 break;
412
413                         case '0.6.6': // SQL queries for v0.6.6
414                                 setExtensionUpdateNotes("Template-Fehler beseitigt im Admin-Bereich.");
415                                 break;
416
417                         case '0.6.7': // SQL queries for v0.6.7
418                                 setExtensionUpdateNotes("Vorbereitung auf die neue Mediendaten v0.0.4.");
419                                 break;
420
421                         case '0.6.8': // SQL queries for v0.6.8
422                                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_bonus` SET `data_type`='SEND' WHERE `data_type` != 'SEND' AND `data_type` != 'DELETED' AND `receivers`='' AND `target_send`=0");
423
424                                 // Update notes (these will be set as task text!)
425                                 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.");
426                                 break;
427
428                         case '0.6.9': // SQL queries for v0.6.9
429                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_order_yn` ENUM('Y','N') NOT NULL DEFAULT 'N'");
430                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_ref_yn` ENUM('Y','N') NOT NULL DEFAULT 'N'");
431                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_stats_yn` ENUM('Y','N') NOT NULL DEFAULT 'N'");
432                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_login_yn` ENUM('Y','N') NOT NULL DEFAULT 'N'");
433                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_click_yn` ENUM('Y','N') NOT NULL DEFAULT 'Y'");
434
435                                 // Update notes (these will be set as task text!)
436                                 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).");
437                                 break;
438
439                         case '0.7.0': // SQL queries for v0.7.0
440                                 setExtensionUpdateNotes("Zuschaltung von weiteren Bonis wird jetzt auch bei der Auflistung der mitmachenden Mitglieder im Mitgliedsbereich beachtet.");
441                                 break;
442
443                         case '0.7.1': // SQL queries for v0.7.1
444                                 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.");
445                                 break;
446
447                         case '0.7.2': // SQL queries for v0.7.2
448                                 setExtensionUpdateNotes("Die Verg&uuml;tung der erreichten 100%-Klickrate war noch wegen Programmierungen am Script auskommentiert. Sorry!");
449                                 break;
450
451                         case '0.7.3': // SQL queries for v0.7.3
452                                 setExtensionUpdateNotes("Gutgeschriebene Bonus-{?POINTS?} werden nach Deaktivierung der Aktiv-Rallye gel&ouml;scht.");
453                                 break;
454
455                         case '0.7.4': // SQL queries for v0.7.4
456                                 setExtensionUpdateNotes("Rechtlichen Hinweis im Mitgliedsbereich vergessen. (<strong>member_bonus.tpl</strong>)");
457                                 break;
458
459                         case '0.7.5': // SQL queries for v0.7.5
460                                 setExtensionUpdateNotes("Im Admin-Bereich Hinweis hinzugef&uuml;gt, wenn Aktiv-Rallye inaktiv ist. Bitte Script inc/monthly_bonus.php l&ouml;schen!");
461                                 break;
462
463                         case '0.7.6': // SQL queries for v0.7.6
464                                 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.");
465                                 break;
466
467                         case '0.7.7': // SQL queries for v0.7.7
468                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD bonus_en_notify ENUM('Y','N') NOT NULL DEFAULT 'N'");
469                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD bonus_di_notify ENUM('Y','N') NOT NULL DEFAULT 'N'");
470                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD bonus_new_mem_notify ENUM('Y','N') NOT NULL DEFAULT 'N'");
471                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD bonus_notify_points FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
472                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD bonus_notify_wait BIGINT(20) UNSIGNED NOT NULL DEFAULT '30'");
473                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD bonus_ral_notify BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
474                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD bonus_ral_en_notify BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
475                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD bonus_ral_di_notify BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
476
477                                 // Update notes (these will be set as task text!)
478                                 setExtensionUpdateNotes("Optionale automatische Benachrichtigung &uuml;ber aktivierte und/oder deaktivierte Aktiv-Rallye einstellbar.");
479                                 break;
480
481                         case '0.7.8': // SQL queries for v0.7.8
482                                 // Update notes (these will be set as task text!)
483                                 setExtensionUpdateNotes("Fehler im t&auml;glichen Reset beseitigt.");
484                                 break;
485
486                         case '0.7.9': // SQL queries for v0.7.9
487                                 setExtensionUpdateNotes("Dollarzeichen fehlte in <strong>inc/reset/reset_bonus.php</strong>, Zeile 39");
488                                 break;
489
490                         case '0.8.0': // SQL queries for v0.8.0
491                                 setExtensionUpdateNotes("De-/Aktivieren des mit dieser Erweiterung verkn&uuml;pften Modules eingebunden.");
492                                 break;
493
494                         case '0.8.1': // SQL queries for v0.8.1
495                                 setExtensionUpdateNotes("Bei {?POINTS?}-Gleichstand wird als n&auml;chstes nach wer als letztes Online war umsortiert.");
496                                 break;
497
498                         case '0.8.2': // SQL queries for v0.8.2
499                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD bonus_include_own ENUM('Y','N') NOT NULL DEFAULT 'N'");
500                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_bonus` ADD is_notify ENUM('Y','N') NOT NULL DEFAULT 'N'");
501
502                                 // Update notes (these will be set as task text!)
503                                 setExtensionUpdateNotes("Eigene Mitglieder-Ids sind von der Aktiv-Rallye nun ausschliessbar. Benachrichtigungsmails sind von Aktiv-Rallye ausgeschlossen.");
504                                 break;
505
506                         case '0.8.3': // SQL queries for v0.8.3
507                                 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `action`='rals', `sort`=2, `title`='Aktiv-Rallye' WHERE `what`='bonus' LIMIT 1");
508
509                                 // Update notes (these will be set as task text!)
510                                 setExtensionUpdateNotes("Mitgliedsmen&uuml; komplett umgebaut.");
511                                 break;
512
513                         case '0.8.4': // SQL queries for v0.8.4
514                                 setExtensionUpdateNotes("Ladeproblem bei nicht installierter Erweiterung <strong>cache</strong> gefixt.");
515                                 break;
516
517                         case '0.8.5': // SQL queries for v0.8.5
518                                 setExtensionUpdateNotes("CSS-Klassenname gefixt in Templates.");
519                                 break;
520
521                         case '0.8.6': // SQL queries for v0.8.6
522                                 setExtensionUpdateNotes("Fehlerhinweis bei deaktivierter Erweiterung verbessert.");
523                                 break;
524
525                         case '0.8.7': // SQL queries for v0.8.7
526                                 addAdminMenuSql('email','list_notifications','Benachrichtigungen','Listet alle an die Mitglieder ausgesandten Benachrichtigungen auf.', 10);
527
528                                 // Update notes
529                                 setExtensionUpdateNotes("Benachrichtigungsmails f&uuml;r z.B. Bettel- oder Aktiv-Rallye werden nun angezeigt.");
530                                 break;
531
532                         case '0.8.8': // SQL queries for v0.8.8
533                                 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_stats` ADD `bonus_stats_active` ENUM('Y','N') NOT NULL DEFAULT 'N'");
534
535                                 // Update notes
536                                 setExtensionUpdateNotes("Benachrichtigungsmails f&uuml;r z.B. Bettel- oder Aktiv-Rallye werden nun angezeigt.");
537                                 break;
538
539                         case '0.8.9': // SQL queries for v0.8.9
540                                 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);
541
542                                 // Update notes
543                                 setExtensionUpdateNotes("Benachrichtigungsmails f&uuml;r z.B. Bettel- oder Aktiv-Rallye werden nun angezeigt.");
544                                 break;
545
546                         case '0.9.0': // SQL queries for v0.9.0
547                                 // Register filter
548                                 registerFilter('member_login_check', 'ADD_LOGIN_BONUS', false, true, getExtensionDryRun());
549
550                                 // Update notes
551                                 setExtensionUpdateNotes("Filter hinzugef&uuml;gt der den Login-Bonus aktualisiert (bzw. soll) (internes TODO).");
552                                 break;
553                 }
554                 break;
555
556         case 'modify': // When the extension got modified
557                 break;
558
559         case 'test': // For testing purposes. For details see file inc/modules/admin/what-extensions.php, arround line 305.
560                 break;
561
562         case 'init': // Do stuff when extension is initialized
563                 if (isResetModeEnabled() && (!isDebugModeEnabled()) && (getOutputMode() != 1)) {
564                         // Daily reset was run so let's check if active rallye is activated
565                         if (getConfig('bonus_active') == 'Y') {
566                                 // Run active rallye
567                                 addIncludeToPool('reset', 'inc/monthly/monthly_bonus.php');
568                         } else {
569                                 // Reset points
570                                 addIncludeToPool('reset', 'inc/reset/reset_bonus.php');
571                         }
572                 } // END - if
573
574                 // Check for bonus rallye is active and send mails out
575                 if ((getConfig('bonus_active') == 'Y') && (getConfig('bonus_new_mem_notify') == 'Y')) {
576                         // Include file for sending out mails
577                         addIncludeToPool('notify', 'inc/mails/bonus_mails.php');
578                 } // END - if
579                 break;
580
581         case 'init': // Do stuff when extension is initialized
582                 break;
583
584         default: // Unknown extension mode
585                 logDebugMessage(__FILE__, __LINE__, sprintf("Unknown extension mode %s in extension %s detected.", getExtensionMode(), getCurrentExtensionName()));
586                 break;
587 } // END - switch
588
589 // [EOF]
590 ?>