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