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