2 /************************************************************************
3 * MXChange v0.2.1 Start: 04/04/2004 *
4 * ================ Last change: 06/13/2005 *
6 * -------------------------------------------------------------------- *
7 * File : ext-bonus.php *
8 * -------------------------------------------------------------------- *
9 * Short description : Bonus pages *
10 * -------------------------------------------------------------------- *
11 * Kurzbeschreibung : Bonus-Seiten *
12 * -------------------------------------------------------------------- *
15 * $Tag:: 0.2.1-FINAL $ *
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 *
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. *
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. *
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, *
37 ************************************************************************/
39 // Some security stuff...
40 if (!defined('__SECURITY')) {
41 $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), '/inc') + 4) . '/security.php';
45 // Version of this extension
46 EXT_SET_VERSION('0.8.8');
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'));
51 switch ($EXT_LOAD_MODE)
53 case 'register': // Do stuff when installation is running (modules.php?module=admin&action=login 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ö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,
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)");
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'");
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`");
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");
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");
110 case 'update': // Update an extension
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>.");
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 != ''");
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ü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&what=updates\">Updates prüfen</a> herunter.");
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'ten Klick auf die Mail verbucht werden sollen. Beispiele: Der 1. Klick sollte mehr {!POINTS!} zusä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");
138 // Update notes (these will be set as task text!)
139 EXT_SET_UPDATE_NOTES("Login-Bonus und Turbo-Klick-Bonus intergriert.");
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,
153 KEY mail_id (mail_id),
154 KEY bonus_id (bonus_id),
156 ) TYPE={!_TABLE_TYPE!}");
158 // Update notes (these will be set as task text!)
159 EXT_SET_UPDATE_NOTES("Turbo-Bonus wird in Tabelle gezählt für Anzeige, wer alles bereits geklickt hat und welchen Platz er gemacht hat.");
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)");
166 // Update notes (these will be set as task text!)
167 EXT_SET_UPDATE_NOTES("Aktiv-Rallye mit Klick-Vergütung hinzugefügt.");
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ändert.");
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`");
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.");
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.");
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ütet werden!)");
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");
201 // Update notes (these will be set as task text!)
202 EXT_SET_UPDATE_NOTES("5 Nachkommastellen implementiert");
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.");
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üpunkte im Gast-/Mitgliedsbereich können nicht mehr aufgerufen werden, wenn die Erweiterung deaktiviert ist.");
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ührt.");
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 "Solid-Business" eingebaut.");
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> überflüssige HTML-Tags entfernt.");
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öglichen Gewinner an.', 10)");
233 // Update notes (these will be set as task text!)
234 EXT_SET_UPDATE_NOTES("Link <u>Aktiv-Rallye-Teilnehmer</u> hinzugefügt, inklusive manuelle Vorbereitung der Vergütung.");
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");
241 // Update notes (these will be set as task text!)
242 EXT_SET_UPDATE_NOTES("Der Login-Bonus Aktiv-Bonus (= Klick-Bonus) können nun zuerst von einem Mitgliederaccount (das sollte Ihres sein!), vom Jackpot abgezogen oder einfach dazuadiert werden.");
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äteste Zeitmarke für die Auswertung angezeigt.");
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ählbar, von dem die {!POINTS!} für den Aktiv- und Login-Bonus abgebucht werden.");
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.");
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.");
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");
269 // Update notes (these will be set as task text!)
270 EXT_SET_UPDATE_NOTES("Automatisches Löschen von Turbo-Bonus-Zeilen ({!MYSQL_PREFIX!}_bonus_turbo) und begrenzte Anzahl von Einträgen hinzugefügt.");
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ütung des Aktiv-Bonus repariert.");
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.");
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.");
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");
297 // Update notes (these will be set as task text!)
298 EXT_SET_UPDATE_NOTES("Bonus-{!POINTS!} fü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 überflüssig geworden. Bitte löschen Sie dies!<br />Eingestellte Bonus-{!POINTS!} für Rank 2 war um eins verschoben.");
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.");
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.");
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");
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ückgesetzt worden.");
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.");
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.");
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äglichen Reset beseitigt.");
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äglichen Reset beseitigt.");
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örter <strong>Mailtausch</strong>, <strong>Mailtausches</strong> und <strong>Mailtauscher</strong> sind austauschbar.");
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ür Platz 2 bis <strong>x</strong> korregiert.");
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.");
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ür gesorgt, dass die monatliche Aktiv-Rallye nicht ausgeschüttet wurde. Mit diesem Update wurde die Ausschüttung initialisiert. Ihre Mitglieder bekommen voraussichtlicht nichts doppelt vergütet.");
358 case '0.5.6': // SQL queries for v0.5.6
360 $curr = date('m', time());
361 if (strlen($curr) == 1) $curr = '0'.$curr;
362 if ($curr == "00") $curr = "12";
364 // Generate timemark...
365 $mark = mktime(0, 0, 0, $curr, 1, date('Y', time()));
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");
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 "nach oben gerutsch".");
376 case '0.5.7': // SQL queries for v0.5.7
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äglichen Reset endlich beseitigt.");
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.");
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.");
392 case '0.6.1': // SQL queries for v0.6.1
393 EXT_SET_UPDATE_NOTES("Versand von Bonus-Mails repariert.");
396 case '0.6.2': // SQL queries for v0.6.2
397 EXT_SET_UPDATE_NOTES("Löschen von bereits gelöschten Mails wird nun abgelehnt.");
400 case '0.6.3': // SQL queries for v0.6.3
401 EXT_SET_UPDATE_NOTES("Abspeichern von Einstellungen repariert.");
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");
407 // Update notes (these will be set as task text!)
408 EXT_SET_UPDATE_NOTES("Der Menüpunkt "Bonus-{!POINTS!}" unter Einstellungen wird nach "Aktiv-Rallye umbenannt. Und die Aktiv-Rallye konnte aufgrund eines Template-Fehlers nicht gespeichert werden.");
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'");
414 // Update notes (these will be set as task text!)
415 EXT_SET_UPDATE_NOTES("Fehler mit bonus_stats beseitigt.");
418 case '0.6.6': // SQL queries for v0.6.6
419 EXT_SET_UPDATE_NOTES("Template-Fehler beseitigt im Admin-Bereich.");
422 case '0.6.7': // SQL queries for v0.6.7
423 EXT_SET_UPDATE_NOTES("Vorbereitung auf die neue Mediendaten v0.0.4.");
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'");
429 // Update notes (these will be set as task text!)
430 EXT_SET_UPDATE_NOTES("Eingegebene Anzahl auszusendener Bonus-Mails wurde bei der Empfänderauswahl nicht berücksichtigt. Zudem wird jetzt das eingestellte Auswahlverfahren mitberücksichtigt.");
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'");
440 // Update notes (these will be set as task text!)
441 EXT_SET_UPDATE_NOTES("Es können nun auch die folgenden Vergütungen bei der Auswertung der monatlichen Aktiv-Rallye mit berücksichtigt werden: Mailbestätigung (war vorher schon), Login-, Mailbuchung, Referal und Statistik-Bonus (100% Klickrate erreicht).");
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.");
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ücksichtigt. Zudem wird der Gesamtbonus an alle Mitglieder errechnet und auch angezeigt.");
452 case '0.7.2': // SQL queries for v0.7.2
453 EXT_SET_UPDATE_NOTES("Die Vergütung der erreichten 100%-Klickrate war noch wegen Programmierungen am Script auskommentiert. Sorry!");
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öscht.");
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>)");
464 case '0.7.5': // SQL queries for v0.7.5
465 EXT_SET_UPDATE_NOTES("Im Admin-Bereich Hinweis hinzugefügt, wenn Aktiv-Rallye inaktiv ist. Bitte Script inc/monthly_bonus.php löschen!");
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ücksichtigen Boni wurden diese bei der Sortierung der User-IDs nicht berücksichtig.");
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");
482 // Update notes (these will be set as task text!)
483 EXT_SET_UPDATE_NOTES("Optionale automatische Benachrichtigung über aktivierte und/oder deaktivierte Aktiv-Rallye einstellbar.");
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äglichen Reset beseitigt.");
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");
495 case '0.8.0': // SQL queries for v0.8.0
496 EXT_SET_UPDATE_NOTES("De-/Aktivieren des mit dieser Erweiterung verknüpften Modules eingebunden.");
499 case '0.8.1': // SQL queries for v0.8.1
500 EXT_SET_UPDATE_NOTES("Bei {!POINTS!}-Gleichstand wird als nächstes nach wer als letztes Online war umsortiert.");
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'");
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.");
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");
514 // Update notes (these will be set as task text!)
515 EXT_SET_UPDATE_NOTES("Mitgliedsmenü komplett umgebaut.");
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.");
522 case '0.8.5': // SQL queries for v0.8.5
523 EXT_SET_UPDATE_NOTES("CSS-Klassenname gefixt in Templates.");
526 case '0.8.6': // SQL queries for v0.8.6
527 EXT_SET_UPDATE_NOTES("Fehlerhinweis bei deaktivierter Erweiterung verbessert.");
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)");
534 EXT_SET_UPDATE_NOTES("Benachrichtigungsmails für z.B. Bettel- oder Aktiv-Rallye werden nun angezeigt.");
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'");
541 EXT_SET_UPDATE_NOTES("Benachrichtigungsmails für z.B. Bettel- oder Aktiv-Rallye werden nun angezeigt.");
546 case 'modify': // When the extension got modified
549 case 'test': // For testing purposes. For details see file inc/modules/admin/what-extensions.php, arround line 305.
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') {
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')));
561 ADD_INC_TO_POOL(sprintf("%sinc/reset/reset_bonus.php", constant('PATH')));
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')));