c8485ca186c7161b307d733f59a4f1d338aa6b36
[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 - 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.0' 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 is called)
54                 // SQL commands to run
55                 ADD_EXT_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_EXT_SQL("INSERT INTO `{!_MYSQL_PREFIX!}_member_menu` (`action`,`what`,`title`,`sort`,`visible`,`locked`,`counter`) VALUES ('main','bonus','Bonuspunkte',7,'Y','Y', 0)");
57                 ADD_EXT_SQL("DROP TABLE IF EXISTS `{!_MYSQL_PREFIX!}_bonus`");
58                 ADD_EXT_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 LONGTEXT NOT NULL,
63 receivers LONGTEXT 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_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_user_links` MODIFY link_type ENUM('NORMAL','BONUS') NOT NULL DEFAULT 'NORMAL'");
76                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_user_links` ADD bonus_id BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
77                 ADD_EXT_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_EXT_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_EXT_SQL("DELETE LOW_PRIORITY FROM `{!_MYSQL_PREFIX!}_admin_menu` WHERE what IN ('bonus','config_bonus','send_bonus','list_bonus','list_notifications')");
86                 ADD_EXT_SQL("DELETE LOW_PRIORITY FROM `{!_MYSQL_PREFIX!}_member_menu` WHERE `what`='bonus'");
87                 ADD_EXT_SQL("DELETE LOW_PRIORITY FROM `{!_MYSQL_PREFIX!}_guest_menu` WHERE `action`='bonus'");
88                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_user_links` MODIFY link_type ENUM('NORMAL') NOT NULL DEFAULT 'NORMAL'");
89                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_user_links` DROP bonus_id");
90                 ADD_EXT_SQL("DROP TABLE IF EXISTS `{!_MYSQL_PREFIX!}_bonus`");
91                 ADD_EXT_SQL("DROP TABLE IF EXISTS `{!_MYSQL_PREFIX!}_bonus_urls`");
92                 ADD_EXT_SQL("DROP TABLE IF EXISTS `{!_MYSQL_PREFIX!}_bonus_customer`");
93                 ADD_EXT_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_EXT_SQL("UPDATE `{!_MYSQL_PREFIX!}_member_menu` SET `visible`='Y', `locked`='N' WHERE `what`='bonus' LIMIT 1");
99                 ADD_EXT_SQL("UPDATE `{!_MYSQL_PREFIX!}_guest_menu` SET `visible`='Y', `locked`='N' WHERE `action`='bonus' LIMIT 1");
100                 ADD_EXT_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_EXT_SQL("UPDATE `{!_MYSQL_PREFIX!}_member_menu` SET `visible`='N', `locked`='Y' WHERE `what`='bonus' LIMIT 1");
106                 ADD_EXT_SQL("UPDATE `{!_MYSQL_PREFIX!}_guest_menu` SET `visible`='N', `locked`='Y' WHERE `action`='bonus' LIMIT 1");
107                 ADD_EXT_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_EXT_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_EXT_SQL("DELETE LOW_PRIORITY FROM `{!_MYSQL_PREFIX!}_admin_menu` WHERE `what`='config_bonus' LIMIT 1");
127                                 ADD_EXT_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_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD login_bonus FLOAT(20,3) NOT NULL DEFAULT 10.000");
129                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD turbo_bonus FLOAT(20,3) NOT NULL DEFAULT 100.000");
130                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD login_timeout BIGINT(20) UNSIGNED NOT NULL DEFAULT ".getConfig('one_day')."");
131                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD turbo_rates VARCHAR(255) NOT NULL DEFAULT '50;20;10'");
132                                 ADD_EXT_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_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_user_data` ADD login_bonus FLOAT(20,3) NOT NULL DEFAULT 0.000");
135                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_user_data` ADD turbo_bonus FLOAT(20,3) NOT NULL DEFAULT 0.000");
136                                 ADD_EXT_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_EXT_SQL("DROP TABLE IF EXISTS `{!_MYSQL_PREFIX!}_bonus_turbo`");
144                                 ADD_EXT_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_EXT_SQL("DELETE LOW_PRIORITY FROM `{!_MYSQL_PREFIX!}_member_menu` WHERE `what`='bonus' LIMIT 1");
164                                 ADD_EXT_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_EXT_SQL("DROP TABLE IF EXISTS `{!_MYSQL_PREFIX!}_bonus_urls`");
177                                 ADD_EXT_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_EXT_SQL("UPDATE `{!_MYSQL_PREFIX!}_bonus` SET timestamp='0' WHERE timestamp='0000000000'");
195                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_bonus_turbo` CHANGE points points FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
196                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` CHANGE turbo_bonus turbo_bonus FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
197                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` CHANGE login_bonus login_bonus FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
198                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_user_data` CHANGE turbo_bonus turbo_bonus FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
199                                 ADD_EXT_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_EXT_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_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD bonus_mode ENUM('UID','JACKPOT','ADD') NOT NULL DEFAULT 'ADD'");
239                                 ADD_EXT_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_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD bonus_timeout BIGINT(20) UNSIGNED NOT NULL DEFAULT ".(getConfig('one_day')*7)."");
267                                 ADD_EXT_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_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD bonus_order FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 15.00000");
290                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD bonus_ref FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 100.00000");
291                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD bonus_stats FLOAT(20,5) UNSIGNED NOT NULL DEFAULT '5.00000'");
292                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD bonus_active ENUM('Y','N') NOT NULL DEFAULT 'Y'");
293                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_user_data` ADD bonus_order FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
294                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_user_data` ADD bonus_ref FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
295                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_user_data` ADD bonus_stats FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
296
297                                 // Update notes (these will be set as task text!)
298                                 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.");
299                                 break;
300
301                         case '0.4.5': // SQL queries for v0.4.5
302                                 // Update notes (these will be set as task text!)
303                                 EXT_SET_UPDATE_NOTES("Abzug vom Bonus-Account integriert.");
304                                 break;
305
306                         case '0.4.6': // SQL queries for v0.4.6
307                                 // Update notes (these will be set as task text!)
308                                 EXT_SET_UPDATE_NOTES("Rank 2 bekommt nun auch seine {!POINTS!} gutgeschrieben.");
309                                 break;
310
311                         case '0.4.7': // SQL queries for v0.4.7
312                                 ADD_EXT_SQL("UPDATE `{!_MYSQL_PREFIX!}_user_data` SET login_bonus=0, turbo_bonus=0,bonus_ref=0,bonus_order=0,bonus_stats=0");
313
314                                 // Update notes (these will be set as task text!)
315                                 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.");
316                                 break;
317
318                         case '0.4.8': // SQL queries for v0.4.8
319                                 // Update notes (these will be set as task text!)
320                                 EXT_SET_UPDATE_NOTES("In <u>inc/monthly_bonus.php</u> fehlte ein Punkt; Fehler besseitigt.");
321                                 break;
322
323                         case '0.4.9': // SQL queries for v0.4.9
324                                 // Update notes (these will be set as task text!)
325                                 EXT_SET_UPDATE_NOTES("Login-Bonus wird mit angezeigt.");
326                                 break;
327
328                         case '0.5.0': // SQL queries for v0.5.0
329                                 // Update notes (these will be set as task text!)
330                                 EXT_SET_UPDATE_NOTES("Problem mit <strong>is_hundred</strong> beim t&auml;glichen Reset beseitigt.");
331                                 break;
332
333                         case '0.5.1': // SQL queries for v0.5.1
334                                 // Update notes (these will be set as task text!)
335                                 EXT_SET_UPDATE_NOTES("Problem mit <strong>bonus_stats / Zeile 31</strong> beim t&auml;glichen Reset beseitigt.");
336                                 break;
337
338                         case '0.5.2': // SQL queries for v0.5.2
339                                 // Update notes (these will be set as task text!)
340                                 EXT_SET_UPDATE_NOTES("W&ouml;rter <strong>Mailtausch</strong>, <strong>Mailtausches</strong> und <strong>Mailtauscher</strong> sind austauschbar.");
341                                 break;
342
343                         case '0.5.3': // SQL queries for v0.5.3
344                                 // Update notes (these will be set as task text!)
345                                 EXT_SET_UPDATE_NOTES("Speichern der Aktiv-{!POINTS!} f&uuml;r Platz 2 bis <strong>x</strong> korregiert.");
346                                 break;
347
348                         case '0.5.4': // SQL queries for v0.5.4
349                                 // Update notes (these will be set as task text!)
350                                 EXT_SET_UPDATE_NOTES("Variablenfehler in <strong>inc/monthly_bonus.php</strong> behoben.");
351                                 break;
352
353                         case '0.5.5': // SQL queries for v0.5.5
354                                 // Update notes (these will be set as task text!)
355                                 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.");
356                                 break;
357
358                         case '0.5.6': // SQL queries for v0.5.6
359                                 // Get current month
360                                 $curr = date('m', time());
361                                 if (strlen($curr) == 1) $curr = '0'.$curr;
362                                 if ($curr == "00") $curr = "12";
363
364                                 // Generate timemark...
365                                 $mark = mktime(0, 0, 0, $curr, 1, date('Y', time()));
366
367                                 // Update accounts which are not active last months
368                                 ADD_EXT_SQL("UPDATE `{!_MYSQL_PREFIX!}_user_data`
369 SET `turbo_bonus`=0, `login_bonus`=0, `bonus_order`=0, `bonus_stats`=0, `bonus_ref`=0
370 WHERE `last_online` < ".$mark." ORDER BY `userid` ASC");
371
372                                 // Update notes (these will be set as task text!)
373                                 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;.");
374                                 break;
375
376                         case '0.5.7': // SQL queries for v0.5.7
377                                 break;
378
379                         case '0.5.8': // SQL queries for v0.5.8
380                                 // Update notes (these will be set as task text!)
381                                 EXT_SET_UPDATE_NOTES("Problem mit <strong>is_hundred</strong> beim t&auml;glichen Reset endlich beseitigt.");
382                                 break;
383
384                         case '0.5.9': // SQL queries for v0.5.9
385                                 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.");
386                                 break;
387
388                         case '0.6.0': // SQL queries for v0.6.0
389                                 EXT_SET_UPDATE_NOTES("SQL-Fehlermeldung in <strong>inc/monthly_bonus.php</strong> beseitigt.");
390                                 break;
391
392                         case '0.6.1': // SQL queries for v0.6.1
393                                 EXT_SET_UPDATE_NOTES("Versand von Bonus-Mails repariert.");
394                                 break;
395
396                         case '0.6.2': // SQL queries for v0.6.2
397                                 EXT_SET_UPDATE_NOTES("L&ouml;schen von bereits gel&ouml;schten Mails wird nun abgelehnt.");
398                                 break;
399
400                         case '0.6.3': // SQL queries for v0.6.3
401                                 EXT_SET_UPDATE_NOTES("Abspeichern von Einstellungen repariert.");
402                                 break;
403
404                         case '0.6.4': // SQL queries for v0.6.4
405                                 ADD_EXT_SQL("UPDATE `{!_MYSQL_PREFIX!}_admin_menu` SET `title`='Aktiv-Rallye' WHERE `what`='config_bonus' LIMIT 1");
406
407                                 // Update notes (these will be set as task text!)
408                                 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.");
409                                 break;
410
411                         case '0.6.5': // SQL queries for v0.6.5
412                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_user_stats` ADD bonus_stats ENUM('Y','N') NOT NULL DEFAULT 'N'");
413
414                                 // Update notes (these will be set as task text!)
415                                 EXT_SET_UPDATE_NOTES("Fehler mit bonus_stats beseitigt.");
416                                 break;
417
418                         case '0.6.6': // SQL queries for v0.6.6
419                                 EXT_SET_UPDATE_NOTES("Template-Fehler beseitigt im Admin-Bereich.");
420                                 break;
421
422                         case '0.6.7': // SQL queries for v0.6.7
423                                 EXT_SET_UPDATE_NOTES("Vorbereitung auf die neue Mediendaten v0.0.4.");
424                                 break;
425
426                         case '0.6.8': // SQL queries for v0.6.8
427                                 ADD_EXT_SQL("UPDATE `{!_MYSQL_PREFIX!}_bonus` SET data_type='SEND' WHERE data_type != 'SEND' AND data_type != 'DELETED' AND receivers='' AND target_send='0'");
428
429                                 // Update notes (these will be set as task text!)
430                                 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.");
431                                 break;
432
433                         case '0.6.9': // SQL queries for v0.6.9
434                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD bonus_order_yn ENUM('Y','N') NOT NULL DEFAULT 'N'");
435                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD bonus_ref_yn ENUM('Y','N') NOT NULL DEFAULT 'N'");
436                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD bonus_stats_yn ENUM('Y','N') NOT NULL DEFAULT 'N'");
437                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD bonus_login_yn ENUM('Y','N') NOT NULL DEFAULT 'N'");
438                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD bonus_click_yn ENUM('Y','N') NOT NULL DEFAULT 'Y'");
439
440                                 // Update notes (these will be set as task text!)
441                                 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).");
442                                 break;
443
444                         case '0.7.0': // SQL queries for v0.7.0
445                                 EXT_SET_UPDATE_NOTES("Zuschaltung von weiteren Bonis wird jetzt auch bei der Auflistung der mitmachenden Mitglieder im Mitgliedsbereich beachtet.");
446                                 break;
447
448                         case '0.7.1': // SQL queries for v0.7.1
449                                 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.");
450                                 break;
451
452                         case '0.7.2': // SQL queries for v0.7.2
453                                 EXT_SET_UPDATE_NOTES("Die Verg&uuml;tung der erreichten 100%-Klickrate war noch wegen Programmierungen am Script auskommentiert. Sorry!");
454                                 break;
455
456                         case '0.7.3': // SQL queries for v0.7.3
457                                 EXT_SET_UPDATE_NOTES("Gutgeschriebene Bonus-{!POINTS!} werden nach Deaktivierung der Aktiv-Rallye gel&ouml;scht.");
458                                 break;
459
460                         case '0.7.4': // SQL queries for v0.7.4
461                                 EXT_SET_UPDATE_NOTES("Rechtlichen Hinweis im Mitgliedsbereich vergessen. (<strong>member_bonus.tpl</strong>)");
462                                 break;
463
464                         case '0.7.5': // SQL queries for v0.7.5
465                                 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!");
466                                 break;
467
468                         case '0.7.6': // SQL queries for v0.7.6
469                                 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.");
470                                 break;
471
472                         case '0.7.7': // SQL queries for v0.7.7
473                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD bonus_en_notify ENUM('Y','N') NOT NULL DEFAULT 'N'");
474                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD bonus_di_notify ENUM('Y','N') NOT NULL DEFAULT 'N'");
475                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD bonus_new_mem_notify ENUM('Y','N') NOT NULL DEFAULT 'N'");
476                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD bonus_notify_points FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
477                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD bonus_notify_wait BIGINT(20) UNSIGNED NOT NULL DEFAULT '30'");
478                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_user_data` ADD bonus_ral_notify BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
479                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_user_data` ADD bonus_ral_en_notify BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
480                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_user_data` ADD bonus_ral_di_notify BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
481
482                                 // Update notes (these will be set as task text!)
483                                 EXT_SET_UPDATE_NOTES("Optionale automatische Benachrichtigung &uuml;ber aktivierte und/oder deaktivierte Aktiv-Rallye einstellbar.");
484                                 break;
485
486                         case '0.7.8': // SQL queries for v0.7.8
487                                 // Update notes (these will be set as task text!)
488                                 EXT_SET_UPDATE_NOTES("Fehler im t&auml;glichen Reset beseitigt.");
489                                 break;
490
491                         case '0.7.9': // SQL queries for v0.7.9
492                                 EXT_SET_UPDATE_NOTES("Dollarzeichen fehlte in <strong>inc/reset/reset_bonus.php</strong>, Zeile 39");
493                                 break;
494
495                         case '0.8.0': // SQL queries for v0.8.0
496                                 EXT_SET_UPDATE_NOTES("De-/Aktivieren des mit dieser Erweiterung verkn&uuml;pften Modules eingebunden.");
497                                 break;
498
499                         case '0.8.1': // SQL queries for v0.8.1
500                                 EXT_SET_UPDATE_NOTES("Bei {!POINTS!}-Gleichstand wird als n&auml;chstes nach wer als letztes Online war umsortiert.");
501                                 break;
502
503                         case '0.8.2': // SQL queries for v0.8.2
504                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD bonus_include_own ENUM('Y','N') NOT NULL DEFAULT 'N'");
505                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_bonus` ADD is_notify ENUM('Y','N') NOT NULL DEFAULT 'N'");
506
507                                 // Update notes (these will be set as task text!)
508                                 EXT_SET_UPDATE_NOTES("Eigene User-ID von Aktiv-Rallye ausschliessbar. Benachrichtigungsmails sind von Aktiv-Rallye ausgeschlossen.");
509                                 break;
510
511                         case '0.8.3': // SQL queries for v0.8.3
512                                 ADD_EXT_SQL("UPDATE `{!_MYSQL_PREFIX!}_member_menu` SET `action`='rals', `sort`='2', `title`='Aktiv-Rallye' WHERE `what`='bonus' LIMIT 1");
513
514                                 // Update notes (these will be set as task text!)
515                                 EXT_SET_UPDATE_NOTES("Mitgliedsmen&uuml; komplett umgebaut.");
516                                 break;
517
518                         case '0.8.4': // SQL queries for v0.8.4
519                                 EXT_SET_UPDATE_NOTES("Ladeproblem bei nicht installierter Erweiterung <strong>cache</strong> gefixt.");
520                                 break;
521
522                         case '0.8.5': // SQL queries for v0.8.5
523                                 EXT_SET_UPDATE_NOTES("CSS-Klassenname gefixt in Templates.");
524                                 break;
525
526                         case '0.8.6': // SQL queries for v0.8.6
527                                 EXT_SET_UPDATE_NOTES("Fehlerhinweis bei deaktivierter Erweiterung verbessert.");
528                                 break;
529
530                         case '0.8.7': // SQL queries for v0.8.7
531                                 ADD_EXT_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)");
532
533                                 // Update notes
534                                 EXT_SET_UPDATE_NOTES("Benachrichtigungsmails f&uuml;r z.B. Bettel- oder Aktiv-Rallye werden nun angezeigt.");
535                                 break;
536
537                         case '0.8.8': // SQL queries for v0.8.8
538                                 ADD_EXT_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_user_stats` ADD bonus_stats_active ENUM('Y','N') NOT NULL DEFAULT 'N'");
539
540                                 // Update notes
541                                 EXT_SET_UPDATE_NOTES("Benachrichtigungsmails f&uuml;r z.B. Bettel- oder Aktiv-Rallye werden nun angezeigt.");
542                                 break;
543                 }
544                 break;
545
546                         case 'modify': // When the extension got modified
547                                 break;
548
549                         case 'test': // For testing purposes. For details see file inc/modules/admin/what-extensions.php, arround line 305.
550                                 break;
551
552                         default: // Do stuff when extension is loaded
553                                 if (isResetModeEnabled() && (!isDebugModeEnabled()) && ($GLOBALS['output_mode'] != 1)) {
554                                         // Daily reset was run so let's check if active rallye is activated
555                                         if (getConfig('bonus_active') == 'Y') {
556                                                 // Run active rallye
557                                                 if (getConfig('bonus_stats') > 0) ADD_INC_TO_POOL(sprintf("%sinc/stats_bonus.php", constant('PATH')));
558                                                 ADD_INC_TO_POOL(sprintf("%sinc/monthly/monthly_bonus.php", constant('PATH')));
559                                         } else {
560                                                 // Reset points
561                                                 ADD_INC_TO_POOL(sprintf("%sinc/reset/reset_bonus.php", constant('PATH')));
562                                         }
563                                 }
564
565                                 // Check for bonus rallye is active and send mails out
566                                 if ((getConfig('bonus_active') == 'Y') && (getConfig('bonus_new_mem_notify') == 'Y')) {
567                                         // Include file for sending out mails
568                                         ADD_INC_TO_POOL(sprintf("%sinc/mails/bonus_mails.php", constant('PATH')));
569                                 }
570                                 break;
571 }
572
573 //
574 ?>