5db31d82ecad27891f9953d43e46b4c47b030943
[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  *                                                                      *
14  * -------------------------------------------------------------------- *
15  * Copyright (c) 2003 - 2008 by Roland Haeder                           *
16  * For more information visit: http://www.mxchange.org                  *
17  *                                                                      *
18  * This program is free software; you can redistribute it and/or modify *
19  * it under the terms of the GNU General Public License as published by *
20  * the Free Software Foundation; either version 2 of the License, or    *
21  * (at your option) any later version.                                  *
22  *                                                                      *
23  * This program is distributed in the hope that it will be useful,      *
24  * but WITHOUT ANY WARRANTY; without even the implied warranty of       *
25  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the        *
26  * GNU General Public License for more details.                         *
27  *                                                                      *
28  * You should have received a copy of the GNU General Public License    *
29  * along with this program; if not, write to the Free Software          *
30  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
31  * MA  02110-1301  USA                                                  *
32  ************************************************************************/
33
34 // Some security stuff...
35 if (!defined('__SECURITY')) {
36         $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
37         require($INC);
38 }
39
40 // Version of this extension
41 EXT_SET_VERSION("0.8.8");
42
43 // Version history array (add more with , "0.1" and so on)
44 EXT_SET_VER_HISTORY(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"));
45
46 switch ($EXT_LOAD_MODE)
47 {
48 case "register": // Do stuff when installation is running (modules.php?module=admin&action=login is called)
49         // SQL commands to run
50         ADD_SQL("INSERT INTO `{!_MYSQL_PREFIX!}_admin_menu` (`action`,`what`,`title`,`sort`,`descr`) VALUES ('email','send_bonus','Bonusmail senden',5,'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.')");
51         ADD_SQL("INSERT INTO `{!_MYSQL_PREFIX!}_member_menu` (`action`, `what`, `title`, `sort`, `visible`, `locked`, `counter`) VALUES ('main','bonus','Bonuspunkte',7,'Y','Y', 0)");
52         ADD_SQL("DROP TABLE IF EXISTS `{!_MYSQL_PREFIX!}_bonus`");
53         ADD_SQL("CREATE TABLE `{!_MYSQL_PREFIX!}_bonus` (
54 id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
55 cat_id BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
56 subject VARCHAR(255) NOT NULL DEFAULT '',
57 text LONGBLOB NOT NULL,
58 receivers LONGBLOB NOT NULL,
59 points BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
60 time TINYINT(3) UNSIGNED NOT NULL DEFAULT 0,
61 data_type ENUM('NEW','QUEUE','SEND') NOT NULL DEFAULT 'NEW',
62 timestamp VARCHAR(10) NOT NULL DEFAULT 0,
63 url VARCHAR(255) NOT NULL DEFAULT '',
64 target_send BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
65 clicks BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
66 mails_sent BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
67 KEY(cat_id),
68 PRIMARY KEY  (id)
69 )TYPE={!_TABLE_TYPE!}");
70         ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_user_links` MODIFY link_type ENUM('NORMAL','BONUS') NOT NULL DEFAULT 'NORMAL'");
71         ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_user_links` ADD bonus_id BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
72         ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_user_links` ADD INDEX (bonus_id)");
73
74         // Run this SQL when html or html_mail extension is installed
75         if (EXT_IS_ACTIVE("html_mail")) ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_bonus` add html_msg ENUM('Y','N') NOT NULL DEFAULT 'N'");
76         break;
77
78 case "remove": // Do stuff when removing extension
79         // SQL commands to run
80         ADD_SQL("DELETE LOW_PRIORITY FROM `{!_MYSQL_PREFIX!}_admin_menu` WHERE what IN ('bonus','config_bonus','send_bonus','list_bonus','list_notifications') LIMIT 5");
81         ADD_SQL("DELETE LOW_PRIORITY FROM `{!_MYSQL_PREFIX!}_member_menu` WHERE `what`='bonus' LIMIT 1");
82         ADD_SQL("DELETE LOW_PRIORITY FROM `{!_MYSQL_PREFIX!}_guest_menu` WHERE `action`='bonus' LIMIT 1");
83         ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_user_links` MODIFY link_type ENUM('NORMAL') NOT NULL DEFAULT 'NORMAL'");
84         ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_user_links` DROP bonus_id");
85         ADD_SQL("DROP TABLE IF EXISTS `{!_MYSQL_PREFIX!}_bonus`");
86         ADD_SQL("DROP TABLE IF EXISTS `{!_MYSQL_PREFIX!}_bonus_urls`");
87         ADD_SQL("DROP TABLE IF EXISTS `{!_MYSQL_PREFIX!}_bonus_customer`");
88         ADD_SQL("DROP TABLE IF EXISTS `{!_MYSQL_PREFIX!}_bonus_turbo`");
89         break;
90
91 case "activate": // Do stuff when admin activates this extension
92         // SQL commands to run
93         ADD_SQL("UPDATE `{!_MYSQL_PREFIX!}_member_menu` SET `visible`='Y', `locked`='N' WHERE `what`='bonus' LIMIT 1");
94         ADD_SQL("UPDATE `{!_MYSQL_PREFIX!}_guest_menu` SET `visible`='Y', `locked`='N' WHERE `action`='bonus' LIMIT 1");
95         ADD_SQL("UPDATE `{!_MYSQL_PREFIX!}_mod_reg` SET `locked`='N', hidden='N', admin_only='N', mem_only='N' WHERE module='show_bonus' LIMIT 1");
96         break;
97
98 case "deactivate": // Do stuff when admin deactivates this extension
99         // SQL commands to run
100         ADD_SQL("UPDATE `{!_MYSQL_PREFIX!}_member_menu` SET `visible`='N', `locked`='Y' WHERE `what`='bonus' LIMIT 1");
101         ADD_SQL("UPDATE `{!_MYSQL_PREFIX!}_guest_menu` SET `visible`='N', `locked`='Y' WHERE `action`='bonus' LIMIT 1");
102         ADD_SQL("UPDATE `{!_MYSQL_PREFIX!}_mod_reg` SET `locked`='Y' WHERE module='show_bonus' LIMIT 1");
103         break;
104
105 case "update": // Update an extension
106         switch ($EXT_VER)
107         {
108         case "0.1.6": // SQL queries for v0.1.6
109                 // Update notes (these will be set as task text!)
110                 EXT_SET_UPDATE_NOTES("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                 ADD_SQL("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                 EXT_SET_UPDATE_NOTES("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                 ADD_SQL("DELETE LOW_PRIORITY FROM `{!_MYSQL_PREFIX!}_admin_menu` WHERE `what`='config_bonus' LIMIT 1");
122                 ADD_SQL("INSERT INTO `{!_MYSQL_PREFIX!}_admin_menu` (`action`,`what`,`title`,`sort`,`descr`) VALUES ('setup','config_bonus','Bonus-{!POINTS!}',8,'Richten Sie Bonus-{!POINTS!} ein, die beim x&#39;ten Klick auf die Mail verbucht werden sollen. Beispiele: Der 1. Klick sollte mehr {!POINTS!} zus&auml;tzlich bekommen, als der 10. Klick.')");
123                 ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD login_bonus FLOAT(20,3) NOT NULL DEFAULT 10.000");
124                 ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD turbo_bonus FLOAT(20,3) NOT NULL DEFAULT 100.000");
125                 ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD login_timeout BIGINT(20) UNSIGNED NOT NULL DEFAULT ".getConfig('one_day')."");
126                 ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD turbo_rates VARCHAR(255) NOT NULL DEFAULT '50;20;10'");
127                 ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD bonus_ranks TINYINT(3) UNSIGNED NOT NULL DEFAULT 10");
128                 // Use actual month for this update
129                 ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_user_data` ADD login_bonus FLOAT(20,3) NOT NULL DEFAULT 0.000");
130                 ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_user_data` ADD turbo_bonus FLOAT(20,3) NOT NULL DEFAULT 0.000");
131                 ADD_SQL("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                 EXT_SET_UPDATE_NOTES("Login-Bonus und Turbo-Klick-Bonus intergriert.");
135                 break;
136
137         case "0.2.2": // SQL queries for v0.2.2
138                 ADD_SQL("DROP TABLE IF EXISTS `{!_MYSQL_PREFIX!}_bonus_turbo`");
139                 ADD_SQL("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                 EXT_SET_UPDATE_NOTES("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                 ADD_SQL("DELETE LOW_PRIORITY FROM `{!_MYSQL_PREFIX!}_member_menu` WHERE `what`='bonus' LIMIT 1");
159                 ADD_SQL("INSERT INTO `{!_MYSQL_PREFIX!}_member_menu` (`action`, `what`, `title`, `sort`, `visible`, `locked`, `counter`) VALUES ('main','bonus','Aktiv-Rallye',7,'Y','Y', 0)");
160
161                 // Update notes (these will be set as task text!)
162                 EXT_SET_UPDATE_NOTES("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                 EXT_SET_UPDATE_NOTES("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                 ADD_SQL("DROP TABLE IF EXISTS `{!_MYSQL_PREFIX!}_bonus_urls`");
172                 ADD_SQL("DROP TABLE IF EXISTS `{!_MYSQL_PREFIX!}_bonus_customer`");
173
174                 // Update notes (these will be set as task text!)
175                 EXT_SET_UPDATE_NOTES("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                 EXT_SET_UPDATE_NOTES("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                 EXT_SET_UPDATE_NOTES("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                 ADD_SQL("UPDATE `{!_MYSQL_PREFIX!}_bonus` SET timestamp='0' WHERE timestamp='0000000000'");
190                 ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_bonus_turbo` CHANGE points points FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
191                 ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` CHANGE turbo_bonus turbo_bonus FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
192                 ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` CHANGE login_bonus login_bonus FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
193                 ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_user_data` CHANGE turbo_bonus turbo_bonus FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
194                 ADD_SQL("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                 EXT_SET_UPDATE_NOTES("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                 EXT_SET_UPDATE_NOTES("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                 EXT_SET_UPDATE_NOTES("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                 EXT_SET_UPDATE_NOTES("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                 EXT_SET_UPDATE_NOTES("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                 EXT_SET_UPDATE_NOTES("Seit <a href=\"#\">Patch 340</a> &uuml;berfl&uuml;ssige HTML-Tags entfernt.");
223                 break;
224
225         case "0.3.4": // SQL queries for v0.3.4
226                 ADD_SQL("INSERT INTO `{!_MYSQL_PREFIX!}_admin_menu` (`action`,`what`,`title`,`descr`,`sort`) VALUES ('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                 EXT_SET_UPDATE_NOTES("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                 ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD bonus_mode ENUM('UID','JACKPOT','ADD') NOT NULL DEFAULT 'ADD'");
234                 ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD bonus_uid BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
235
236                 // Update notes (these will be set as task text!)
237                 EXT_SET_UPDATE_NOTES("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                 EXT_SET_UPDATE_NOTES("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                 EXT_SET_UPDATE_NOTES("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                 EXT_SET_UPDATE_NOTES("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                 EXT_SET_UPDATE_NOTES("Fehlende Variablen gefixt.");
258                 break;
259
260         case "0.4.0": // SQL queries for v0.4.0
261                 ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD bonus_timeout BIGINT(20) UNSIGNED NOT NULL DEFAULT ".(getConfig('one_day')*7)."");
262                 ADD_SQL("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                 EXT_SET_UPDATE_NOTES("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                 EXT_SET_UPDATE_NOTES("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                 EXT_SET_UPDATE_NOTES("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                 EXT_SET_UPDATE_NOTES("Verbesserung des Versandes von  HTML-Bonus-Mails.");
281                 break;
282
283         case "0.4.4": // SQL queries for v0.4.4
284                 ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD bonus_order FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 15.00000");
285                 ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD bonus_ref FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 100.00000");
286                 ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD bonus_stats FLOAT(20,5) UNSIGNED NOT NULL DEFAULT '5.00000'");
287                 ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD bonus_active ENUM('Y','N') NOT NULL DEFAULT 'Y'");
288                 ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_user_data` ADD bonus_order FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
289                 ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_user_data` ADD bonus_ref FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
290                 ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_user_data` ADD bonus_stats FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
291                 ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_user_stats` ADD is_stats ENUM('Y','N') NOT NULL DEFAULT 'N'");
292
293                 // Update notes (these will be set as task text!)
294                 EXT_SET_UPDATE_NOTES("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                 EXT_SET_UPDATE_NOTES("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                 EXT_SET_UPDATE_NOTES("Rank 2 bekommt nun auch seine {!POINTS!} gutgeschrieben.");
305                 break;
306
307         case "0.4.7": // SQL queries for v0.4.7
308                 ADD_SQL("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                 EXT_SET_UPDATE_NOTES("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                 EXT_SET_UPDATE_NOTES("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                 EXT_SET_UPDATE_NOTES("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                 EXT_SET_UPDATE_NOTES("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                 EXT_SET_UPDATE_NOTES("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                 EXT_SET_UPDATE_NOTES("W&ouml;rter <strong>Mailtausch</strong>, <strong>Mailtausches</strong> und <strong>Mailtauscher</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                 EXT_SET_UPDATE_NOTES("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                 EXT_SET_UPDATE_NOTES("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                 EXT_SET_UPDATE_NOTES("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                 ADD_SQL("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");
367
368                 // Update notes (these will be set as task text!)
369                 EXT_SET_UPDATE_NOTES("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                 EXT_SET_UPDATE_NOTES("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                 EXT_SET_UPDATE_NOTES("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                 EXT_SET_UPDATE_NOTES("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                 EXT_SET_UPDATE_NOTES("Versand von Bonus-Mails repariert.");
390                 break;
391
392         case "0.6.2": // SQL queries for v0.6.2
393                 EXT_SET_UPDATE_NOTES("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                 EXT_SET_UPDATE_NOTES("Abspeichern von Einstellungen repariert.");
398                 break;
399
400         case "0.6.4": // SQL queries for v0.6.4
401                 ADD_SQL("UPDATE `{!_MYSQL_PREFIX!}_admin_menu` SET `title`='Aktiv-Rallye' WHERE `what`='config_bonus' LIMIT 1");
402
403                 // Update notes (these will be set as task text!)
404                 EXT_SET_UPDATE_NOTES("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.");
405                 break;
406
407         case "0.6.5": // SQL queries for v0.6.5
408                 ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_user_stats` ADD bonus_stats ENUM('Y','N') NOT NULL DEFAULT 'N'");
409
410                 // Update notes (these will be set as task text!)
411                 EXT_SET_UPDATE_NOTES("Fehler mit bonus_stats beseitigt.");
412                 break;
413
414         case "0.6.6": // SQL queries for v0.6.6
415                 EXT_SET_UPDATE_NOTES("Template-Fehler beseitigt im Admin-Bereich.");
416                 break;
417
418         case "0.6.7": // SQL queries for v0.6.7
419                 EXT_SET_UPDATE_NOTES("Vorbereitung auf die neue Mediendaten v0.0.4.");
420                 break;
421
422         case "0.6.8": // SQL queries for v0.6.8
423                 ADD_SQL("UPDATE `{!_MYSQL_PREFIX!}_bonus` SET data_type='SEND' WHERE data_type != 'SEND' AND data_type != 'DELETED' AND receivers='' AND target_send='0'");
424
425                 // Update notes (these will be set as task text!)
426                 EXT_SET_UPDATE_NOTES("Eingegebene Anzahl auszusendener Bonus-Mails wurde bei der Empf&auml;nderauswahl nicht ber&uuml;cksichtigt. Zudem wird jetzt das eingestellte Auswahlverfahren mitber&uuml;cksichtigt.");
427                 break;
428
429         case "0.6.9": // SQL queries for v0.6.9
430                 ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD bonus_order_yn ENUM('Y','N') NOT NULL DEFAULT 'N'");
431                 ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD bonus_ref_yn ENUM('Y','N') NOT NULL DEFAULT 'N'");
432                 ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD bonus_stats_yn ENUM('Y','N') NOT NULL DEFAULT 'N'");
433                 ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD bonus_login_yn ENUM('Y','N') NOT NULL DEFAULT 'N'");
434                 ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD bonus_click_yn ENUM('Y','N') NOT NULL DEFAULT 'Y'");
435
436                 // Update notes (these will be set as task text!)
437                 EXT_SET_UPDATE_NOTES("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).");
438                 break;
439
440         case "0.7.0": // SQL queries for v0.7.0
441                 EXT_SET_UPDATE_NOTES("Zuschaltung von weiteren Bonis wird jetzt auch bei der Auflistung der mitmachenden Mitglieder im Mitgliedsbereich beachtet.");
442                 break;
443
444         case "0.7.1": // SQL queries for v0.7.1
445                 EXT_SET_UPDATE_NOTES("Im Adminbereich wird nun ebenfalls die Zuschaltung von weiteren Bonis ber&uuml;cksichtigt. Zudem wird der Gesamtbonus an alle Mitglieder errechnet und auch angezeigt.");
446                 break;
447
448         case "0.7.2": // SQL queries for v0.7.2
449                 EXT_SET_UPDATE_NOTES("Die Verg&uuml;tung der erreichten 100%-Klickrate war noch wegen Programmierungen am Script auskommentiert. Sorry!");
450                 break;
451
452         case "0.7.3": // SQL queries for v0.7.3
453                 EXT_SET_UPDATE_NOTES("Gutgeschriebene Bonus-{!POINTS!} werden nach Deaktivierung der Aktiv-Rallye gel&ouml;scht.");
454                 break;
455
456         case "0.7.4": // SQL queries for v0.7.4
457                 EXT_SET_UPDATE_NOTES("Rechtlichen Hinweis im Mitgliedsbereich vergessen. (<strong>member_bonus.tpl</strong>)");
458                 break;
459
460         case "0.7.5": // SQL queries for v0.7.5
461                 EXT_SET_UPDATE_NOTES("Im Admin-Bereich Hinweis hinzugef&uuml;gt, wenn Aktiv-Rallye inaktiv ist. Bitte Script inc/monthly_bonus.php l&ouml;schen!");
462                 break;
463
464         case "0.7.6": // SQL queries for v0.7.6
465                 EXT_SET_UPDATE_NOTES("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.");
466                 break;
467
468         case "0.7.7": // SQL queries for v0.7.7
469                 ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD bonus_en_notify ENUM('Y','N') NOT NULL DEFAULT 'N'");
470                 ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD bonus_di_notify ENUM('Y','N') NOT NULL DEFAULT 'N'");
471                 ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD bonus_new_mem_notify ENUM('Y','N') NOT NULL DEFAULT 'N'");
472                 ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD bonus_notify_points FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
473                 ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD bonus_notify_wait BIGINT(20) UNSIGNED NOT NULL DEFAULT '30'");
474                 ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_user_data` ADD bonus_ral_notify BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
475                 ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_user_data` ADD bonus_ral_en_notify BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
476                 ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_user_data` ADD bonus_ral_di_notify BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
477
478                 // Update notes (these will be set as task text!)
479                 EXT_SET_UPDATE_NOTES("Optionale automatische Benachrichtigung &uuml;ber aktivierte und/oder deaktivierte Aktiv-Rallye einstellbar.");
480                 break;
481
482         case "0.7.8": // SQL queries for v0.7.8
483                 // Update notes (these will be set as task text!)
484                 EXT_SET_UPDATE_NOTES("Fehler im t&auml;glichen Reset beseitigt.");
485                 break;
486
487         case "0.7.9": // SQL queries for v0.7.9
488                 EXT_SET_UPDATE_NOTES("Dollarzeichen fehlte in <strong>inc/reset/reset_bonus.php</strong>, Zeile 39");
489                 break;
490
491         case "0.8.0": // SQL queries for v0.8.0
492                 EXT_SET_UPDATE_NOTES("De-/Aktivieren des mit dieser Erweiterung verkn&uuml;pften Modules eingebunden.");
493                 break;
494
495         case "0.8.1": // SQL queries for v0.8.1
496                 EXT_SET_UPDATE_NOTES("Bei {!POINTS!}-Gleichstand wird als n&auml;chstes nach wer als letztes Online war umsortiert.");
497                 break;
498
499         case "0.8.2": // SQL queries for v0.8.2
500                 ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD bonus_include_own ENUM('Y','N') NOT NULL DEFAULT 'N'");
501                 ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_bonus` ADD is_notify ENUM('Y','N') NOT NULL DEFAULT 'N'");
502
503                 // Update notes (these will be set as task text!)
504                 EXT_SET_UPDATE_NOTES("Eigene User-ID von Aktiv-Rallye ausschliessbar. Benachrichtigungsmails sind von Aktiv-Rallye ausgeschlossen.");
505                 break;
506
507         case "0.8.3": // SQL queries for v0.8.3
508                 ADD_SQL("UPDATE `{!_MYSQL_PREFIX!}_member_menu` SET `action`='rals', `sort`='2', `title`='Aktiv-Rallye' WHERE `what`='bonus' LIMIT 1");
509
510                 // Update notes (these will be set as task text!)
511                 EXT_SET_UPDATE_NOTES("Mitgliedsmen&uuml; komplett umgebaut.");
512                 break;
513
514         case "0.8.4": // SQL queries for v0.8.4
515                 EXT_SET_UPDATE_NOTES("Ladeproblem bei nicht installierter Erweiterung <strong>cache</strong> gefixt.");
516                 break;
517
518         case "0.8.5": // SQL queries for v0.8.5
519                 EXT_SET_UPDATE_NOTES("CSS-Klassenname gefixt in Templates.");
520                 break;
521
522         case "0.8.6": // SQL queries for v0.8.6
523                 EXT_SET_UPDATE_NOTES("Fehlerhinweis bei deaktivierter Erweiterung verbessert.");
524                 break;
525
526         case "0.8.7": // SQL queries for v0.8.7
527                 ADD_SQL("INSERT INTO `{!_MYSQL_PREFIX!}_admin_menu` (`action`,`what`,`title`,`descr`,`sort`) VALUES ('email','list_notifications','Benachrichtigungen','Listet alle an die Mitglieder ausgesandten Benachrichtigungen auf.', 10)");
528
529                 // Update notes
530                 EXT_SET_UPDATE_NOTES("Benachrichtigungsmails f&uuml;r z.B. Bettel- oder Aktiv-Rallye werden nun angezeigt.");
531                 break;
532
533         case "0.8.8": // SQL queries for v0.8.8
534                 ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_user_stats` ADD bonus_stats_active ENUM('Y','N') NOT NULL DEFAULT 'N'");
535
536                 // Update notes
537                 EXT_SET_UPDATE_NOTES("Benachrichtigungsmails f&uuml;r z.B. Bettel- oder Aktiv-Rallye werden nun angezeigt.");
538                 break;
539         }
540         break;
541
542 case "test": // For testing purposes. For details see file inc/modules/admin/what-extensions.php, arround line 305.
543         break;
544
545 default: // Do stuff when extension is loaded
546         if (isResetModeEnabled() && (!isDebugModeEnabled()) && ($GLOBALS['output_mode'] != 1)) {
547                 // Daily reset was run so let's check if active rallye is activated
548                 if (getConfig('bonus_active') == "Y") {
549                         // Run active rallye
550                         if (getConfig('bonus_stats') > 0) $INC_POOL[] = sprintf("%sinc/stats_bonus.php", constant('PATH'));
551                         $INC_POOL[] = sprintf("%sinc/monthly/monthly_bonus.php", constant('PATH'));
552                 } else {
553                         // Reset points
554                         $INC_POOL[] = sprintf("%sinc/reset/reset_bonus.php", constant('PATH'));
555                 }
556         }
557
558         // Check for bonus rallye is active and send mails out
559         if ((getConfig('bonus_active') == "Y") && (getConfig('bonus_new_mem_notify') == "Y")) {
560                 // Include file for sending out mails
561                 $INC_POOL[] = sprintf("%sinc/mails/bonus_mails.php", constant('PATH'));
562         }
563         break;
564 }
565
566 //
567 ?>