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