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