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 - 2009 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')) {
44 // Version of this extension
45 setThisExtensionVersion('0.8.9');
47 // Version history array (add more with , '0.1.0' and so on)
48 setExtensionVersionHistory(array('0.0', '0.1.6', '0.2.0', '0.2.1', '0.2.2', '0.2.3', '0.2.4', '0.2.5', '0.2.6', '0.2.7', '0.2.8', '0.2.9', '0.3.0', '0.3.1', '0.3.2', '0.3.3', '0.3.4', '0.3.5', '0.3.6', '0.3.7', '0.3.8', '0.3.9', '0.4.0', '0.4.1', '0.4.2', '0.4.3', '0.4.4', '0.4.5', '0.4.6', '0.4.7', '0.4.8', '0.4.9', '0.5.0', '0.5.1', '0.5.2', '0.5.3', '0.5.4', '0.5.5', '0.5.6', '0.5.7', '0.5.8', '0.5.9', '0.6.0', '0.6.1', '0.6.2', '0.6.3', '0.6.4', '0.6.5', '0.6.6', '0.6.7', '0.6.8', '0.6.9', '0.7.0', '0.7.1', '0.7.2', '0.7.3', '0.7.4', '0.7.5', '0.7.6', '0.7.7', '0.7.8', '0.7.9', '0.8.0', '0.8.1', '0.8.2', '0.8.3', '0.8.4', '0.8.5', '0.8.6', '0.8.7', '0.8.8', '0.8.9'));
50 switch (getExtensionMode()) {
51 case 'register': // Do stuff when installation is running (modules.php?module=admin is called)
52 // SQL commands to run
53 addAdminMenuSql('email','send_bonus','Bonusmail senden','Versenden Sie hier Bonus-Mails an alle Mitglieder oder nur an alle aus einer Kategorie. Es spielt keine Rolle, wie viele Mails bereits versendet worden, Sie können hier immer senden.', 5);
54 addMemberMenuSql('main','bonus','Bonuspunkte','N','Y',7);
55 addExtensionSql("DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_bonus`");
56 addExtensionSql("CREATE TABLE `{?_MYSQL_PREFIX?}_bonus` (
57 id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
58 cat_id BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
59 subject VARCHAR(255) NOT NULL DEFAULT '',
60 text LONGTEXT NOT NULL,
61 receivers LONGTEXT NOT NULL,
62 points BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
63 time TINYINT(3) UNSIGNED NOT NULL DEFAULT 0,
64 data_type ENUM('NEW','QUEUE','SEND') NOT NULL DEFAULT 'NEW',
65 timestamp VARCHAR(10) NOT NULL DEFAULT 0,
66 url VARCHAR(255) NOT NULL DEFAULT '',
67 target_send BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
68 clicks BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
69 mails_sent BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
72 )TYPE={?_TABLE_TYPE?}");
73 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_links` MODIFY `link_type` ENUM('NORMAL','BONUS') NOT NULL DEFAULT 'NORMAL'");
74 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_links` ADD `bonus_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
75 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_links` ADD INDEX (`bonus_id`)");
77 // Run this SQL when html or html_mail extension is installed
78 if (isExtensionActive('html_mail')) addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_bonus` ADD `html_msg` ENUM('Y','N') NOT NULL DEFAULT 'N'");
81 case 'remove': // Do stuff when removing extension
82 // SQL commands to run
83 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `what` IN ('bonus','config_bonus','send_bonus','list_bonus','list_notifications')");
84 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_member_menu` WHERE `what`='bonus' LIMIT 1");
85 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_guest_menu` WHERE `action`='bonus'");
86 addExtensionSql("DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_bonus`");
87 addExtensionSql("DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_bonus_urls`");
88 addExtensionSql("DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_bonus_customer`");
89 addExtensionSql("DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_bonus_turbo`");
92 case 'activate': // Do stuff when admin activates this extension
93 // SQL commands to run
94 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `visible`='Y', `locked`='N' WHERE `what`='bonus' LIMIT 1");
95 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_guest_menu` SET `visible`='Y', `locked`='N' WHERE `action`='bonus' LIMIT 1");
96 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_mod_reg` SET `locked`='N', `hidden`='N', `admin_only`='N', `mem_only`='N' WHERE `module`='show_bonus' LIMIT 1");
99 case 'deactivate': // Do stuff when admin deactivates this extension
100 // SQL commands to run
101 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `visible`='N', `locked`='Y' WHERE `what`='bonus' LIMIT 1");
102 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_guest_menu` SET `visible`='N', `locked`='Y' WHERE `action`='bonus' LIMIT 1");
103 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_mod_reg` SET `locked`='Y' WHERE `module`='show_bonus' LIMIT 1");
106 case 'update': // Update an extension
107 switch (getCurrentExtensionVersion()) {
108 case '0.1.6': // SQL queries for v0.1.6
109 // Update notes (these will be set as task text!)
110 setExtensionUpdateNotes("Paid-Links wurden verschoben in die Erweiterung <strong>paidlinks</strong>.");
113 case '0.2.0': // SQL queries for v0.2.0
114 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_bonus` SET `target_send`=`mails_sent` WHERE `target_send`=0 AND `mails_sent`>0 AND `receivers` != ''");
116 // Update notes (these will be set as task text!)
117 setExtensionUpdateNotes("Behebt ein Versand-Problem mit den Bonus-Mails. Es wurde die Spalte target_send nicht beim Einfü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.");
120 case '0.2.1': // SQL queries for v0.2.1
121 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `login_bonus` FLOAT(20,3) NOT NULL DEFAULT 10.000");
122 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `turbo_bonus` FLOAT(20,3) NOT NULL DEFAULT 100.000");
123 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `login_timeout` BIGINT(20) UNSIGNED NOT NULL DEFAULT ".getConfig('ONE_DAY')."");
124 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `turbo_rates` VARCHAR(255) NOT NULL DEFAULT '50;20;10'");
125 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_ranks` TINYINT(3) UNSIGNED NOT NULL DEFAULT 10");
126 // Use actual month for this update
127 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD `login_bonus` FLOAT(20,3) NOT NULL DEFAULT 0.000");
128 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD `turbo_bonus` FLOAT(20,3) NOT NULL DEFAULT 0.000");
129 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_extensions` SET `ext_has_css`='Y' WHERE `ext_name`='bonus' AND `ext_has_css`='N' LIMIT 1");
131 // Update notes (these will be set as task text!)
132 setExtensionUpdateNotes("Login-Bonus und Turbo-Klick-Bonus intergriert.");
135 case '0.2.2': // SQL queries for v0.2.2
136 addExtensionSql("DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_bonus_turbo`");
137 addExtensionSql("CREATE TABLE `{?_MYSQL_PREFIX?}_bonus_turbo` (
138 id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
139 userid BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
140 mail_id BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
141 bonus_id BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
142 level BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
143 points FLOAT(20,3) NOT NULL DEFAULT '0.000',
144 timemark VARCHAR(32) NOT NULL DEFAULT 0,
146 KEY mail_id (mail_id),
147 KEY bonus_id (bonus_id),
149 ) TYPE={?_TABLE_TYPE?}");
151 // Update notes (these will be set as task text!)
152 setExtensionUpdateNotes("Turbo-Bonus wird in Tabelle gezählt für Anzeige, wer alles bereits geklickt hat und welchen Platz er gemacht hat.");
155 case '0.2.3': // SQL queries for v0.2.3
156 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_member_menu` WHERE `what`='bonus' LIMIT 1");
157 addMemberMenuSql('main','bonus','Aktiv-Rallye','N','Y',7);
159 // Update notes (these will be set as task text!)
160 setExtensionUpdateNotes("Aktiv-Rallye mit Klick-Vergütung hinzugefügt.");
163 case '0.2.4': // SQL queries for v0.2.4
164 // Update notes (these will be set as task text!)
165 setExtensionUpdateNotes("Wegen des Theme-Supportes hat sich die URL zur CSS-Datei geändert.");
168 case '0.2.5': // SQL queries for v0.2.5
169 addExtensionSql("DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_bonus_urls`");
170 addExtensionSql("DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_bonus_customer`");
172 // Update notes (these will be set as task text!)
173 setExtensionUpdateNotes("Tabellen <u>{?_MYSQL_PREFIX?}_bonus_urls</u> und <u>{?_MYSQL_PREFIX?}_bonus_customer</u> entfernt, da dies bald von der Erweiterung <u>paidlinks</u> erledigt wird.");
176 case '0.2.6': // SQL queries for v0.2.6
177 // Update notes (these will be set as task text!)
178 setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.");
181 case '0.2.7': // SQL queries for v0.2.7
182 // Update notes (these will be set as task text!)
183 setExtensionUpdateNotes("Turbo-Bonus klappt wieder (dies sind {?POINTS?} die an die schnellsten Klicker vergütet werden!)");
186 case '0.2.8': // SQL queries for v0.2.8
187 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_bonus` SET timestamp=0 WHERE timestamp='0000000000'");
188 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_bonus_turbo` CHANGE points points FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
189 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` CHANGE turbo_bonus turbo_bonus FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
190 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` CHANGE login_bonus login_bonus FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
191 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` CHANGE turbo_bonus turbo_bonus FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
192 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` CHANGE login_bonus login_bonus FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
194 // Update notes (these will be set as task text!)
195 setExtensionUpdateNotes("5 Nachkommastellen implementiert");
198 case '0.2.9': // SQL queries for v0.2.9
199 // Update notes (these will be set as task text!)
200 setExtensionUpdateNotes("Problem mit Speicherung der Einstellungen beseitigt.");
203 case '0.3.0': // SQL queries for v0.3.0
204 // Update notes (these will be set as task text!)
205 setExtensionUpdateNotes("Menüpunkte im Gast-/Mitgliedsbereich können nicht mehr aufgerufen werden, wenn die Erweiterung deaktiviert ist.");
208 case '0.3.1': // SQL queries for v0.3.1
209 // Update notes (these will be set as task text!)
210 setExtensionUpdateNotes("Sicherheitsupdate am Script <u>show_bonus.php</u> durchgeführt.");
213 case '0.3.2': // SQL queries for v0.3.2
214 // Update notes (these will be set as task text!)
215 setExtensionUpdateNotes("Design "Solid-Business" eingebaut.");
218 case '0.3.3': // SQL queries for v0.3.3
219 // Update notes (these will be set as task text!)
220 setExtensionUpdateNotes("Seit <strong>Patch 340</strong> überflüssige HTML-Tags entfernt.");
223 case '0.3.4': // SQL queries for v0.3.4
224 addAdminMenuSql('user','list_bonus','Aktiv-Rallye-Teilnehmer','Listet alle Mitglieder auf, die einen Aktiv-Bonus haben und zeigt die derzeit möglichen Gewinner an.', 10);
226 // Update notes (these will be set as task text!)
227 setExtensionUpdateNotes("Link <u>Aktiv-Rallye-Teilnehmer</u> hinzugefügt, inklusive manuelle Vorbereitung der Vergütung.");
230 case '0.3.5': // SQL queries for v0.3.5
231 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_mode` ENUM('UID','JACKPOT','ADD') NOT NULL DEFAULT 'ADD'");
232 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_userid` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
234 // Update notes (these will be set as task text!)
235 setExtensionUpdateNotes("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.");
238 case '0.3.6': // SQL queries for v0.3.6
239 // Update notes (these will be set as task text!)
240 setExtensionUpdateNotes("In der Admin-Liste werden nur aktive Mitglieder gelistet und zudem die späteste Zeitmarke für die Auswertung angezeigt.");
243 case '0.3.7': // SQL queries for v0.3.7
244 // Update notes (these will be set as task text!)
245 setExtensionUpdateNotes("Mitglieder-Account auwählbar, von dem die {?POINTS?} für den Aktiv- und Login-Bonus abgebucht werden.");
248 case '0.3.8': // SQL queries for v0.3.8
249 // Update notes (these will be set as task text!)
250 setExtensionUpdateNotes("Ausgabe des generierten HTML-Codes nach <u>inc/footer.php</u> verlagert.");
253 case '0.3.9': // SQL queries for v0.3.9
254 // Update notes (these will be set as task text!)
255 setExtensionUpdateNotes("Fehlende Variablen gefixt.");
258 case '0.4.0': // SQL queries for v0.4.0
259 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_timeout` BIGINT(20) UNSIGNED NOT NULL DEFAULT ".(getConfig('ONE_DAY')*7)."");
260 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_lines` BIGINT(20) UNSIGNED NOT NULL DEFAULT 10");
262 // Update notes (these will be set as task text!)
263 setExtensionUpdateNotes("Automatisches Löschen von Turbo-Bonus-Zeilen ({?_MYSQL_PREFIX?}_bonus_turbo) und begrenzte Anzahl von Einträgen hinzugefügt.");
266 case '0.4.1': // SQL queries for v0.4.1
267 // Update notes (these will be set as task text!)
268 setExtensionUpdateNotes("Vergütung des Aktiv-Bonus repariert.");
271 case '0.4.2': // SQL queries for v0.4.2
272 // Update notes (these will be set as task text!)
273 setExtensionUpdateNotes("Admin-Bereich / Aktiv-Teilnehmer auflisten: Problem mit Konstante __AUTOPURGE_TIMEOUT und das Template <u>admin_list_bonus.tpl</u> korregiert.");
276 case '0.4.3': // SQL queries for v0.4.3
277 // Update notes (these will be set as task text!)
278 setExtensionUpdateNotes("Verbesserung des Versandes von HTML-Bonus-Mails.");
281 case '0.4.4': // SQL queries for v0.4.4
282 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_order` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 15.00000");
283 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_ref` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 100.00000");
284 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_stats` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT '5.00000'");
285 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_active` ENUM('Y','N') NOT NULL DEFAULT 'Y'");
286 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD `bonus_order` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
287 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD `bonus_ref` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
288 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD `bonus_stats` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
290 // Update notes (these will be set as task text!)
291 setExtensionUpdateNotes("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.");
294 case '0.4.5': // SQL queries for v0.4.5
295 // Update notes (these will be set as task text!)
296 setExtensionUpdateNotes("Abzug vom Bonus-Account integriert.");
299 case '0.4.6': // SQL queries for v0.4.6
300 // Update notes (these will be set as task text!)
301 setExtensionUpdateNotes("Rank 2 bekommt nun auch seine {?POINTS?} gutgeschrieben.");
304 case '0.4.7': // SQL queries for v0.4.7
305 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_user_data` SET login_bonus=0, turbo_bonus=0,bonus_ref=0,bonus_order=0,bonus_stats=0");
307 // Update notes (these will be set as task text!)
308 setExtensionUpdateNotes("Die Aktiv-Rallye wurde nicht auf 0 {?POINTS?} gesetzt. Dieser Fehler ist nun behoben. Allerdings ist mit diesem Update auch die Aktiv-Rallye zurückgesetzt worden.");
311 case '0.4.8': // SQL queries for v0.4.8
312 // Update notes (these will be set as task text!)
313 setExtensionUpdateNotes("In <u>inc/monthly_bonus.php</u> fehlte ein Punkt; Fehler besseitigt.");
316 case '0.4.9': // SQL queries for v0.4.9
317 // Update notes (these will be set as task text!)
318 setExtensionUpdateNotes("Login-Bonus wird mit angezeigt.");
321 case '0.5.0': // SQL queries for v0.5.0
322 // Update notes (these will be set as task text!)
323 setExtensionUpdateNotes("Problem mit <strong>is_hundred</strong> beim täglichen Reset beseitigt.");
326 case '0.5.1': // SQL queries for v0.5.1
327 // Update notes (these will be set as task text!)
328 setExtensionUpdateNotes("Problem mit <strong>bonus_stats / Zeile 31</strong> beim täglichen Reset beseitigt.");
331 case '0.5.2': // SQL queries for v0.5.2
332 // Update notes (these will be set as task text!)
333 setExtensionUpdateNotes("Wörter <strong>{?mt_word?}</strong>, <strong>{?mt_word2?}</strong> und <strong>{?mt_word3?}</strong> sind austauschbar.");
336 case '0.5.3': // SQL queries for v0.5.3
337 // Update notes (these will be set as task text!)
338 setExtensionUpdateNotes("Speichern der Aktiv-{?POINTS?} für Platz 2 bis <strong>x</strong> korregiert.");
341 case '0.5.4': // SQL queries for v0.5.4
342 // Update notes (these will be set as task text!)
343 setExtensionUpdateNotes("Variablenfehler in <strong>inc/monthly_bonus.php</strong> behoben.");
346 case '0.5.5': // SQL queries for v0.5.5
347 // Update notes (these will be set as task text!)
348 setExtensionUpdateNotes("Weitere Variablenfehler in <strong>inc/monthly_bonus.php</strong> haben dafü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.");
351 case '0.5.6': // SQL queries for v0.5.6
353 $curr = date('m', time());
354 if (strlen($curr) == 1) $curr = '0' . $curr;
355 if ($curr == "00") $curr = "12";
357 // Generate timemark...
358 $mark = mktime(0, 0, 0, $curr, 1, date('Y', time()));
360 // Update accounts which are not active last months
361 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_user_data`
362 SET `turbo_bonus`=0, `login_bonus`=0, `bonus_order`=0, `bonus_stats`=0, `bonus_ref`=0
363 WHERE `last_online` < ".$mark." ORDER BY `userid` ASC");
365 // Update notes (these will be set as task text!)
366 setExtensionUpdateNotes("Ein weiterer Scriptfehler hat nur die Gewinner aus der Aktiv-Rallye genommen. Die anderen Mitglieder sind somit "nach oben gerutsch".");
369 case '0.5.7': // SQL queries for v0.5.7
372 case '0.5.8': // SQL queries for v0.5.8
373 // Update notes (these will be set as task text!)
374 setExtensionUpdateNotes("Problem mit <strong>is_hundred</strong> beim täglichen Reset endlich beseitigt.");
377 case '0.5.9': // SQL queries for v0.5.9
378 setExtensionUpdateNotes("Fehlermeldung <strong>/home/verzeichnis/html/inc/stats_bonus.php (42):You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '' WHERE userid='59' LIMIT 1' at line 1</strong> beseitigt.");
381 case '0.6.0': // SQL queries for v0.6.0
382 setExtensionUpdateNotes("SQL-Fehlermeldung in <strong>inc/monthly_bonus.php</strong> beseitigt.");
385 case '0.6.1': // SQL queries for v0.6.1
386 setExtensionUpdateNotes("Versand von Bonus-Mails repariert.");
389 case '0.6.2': // SQL queries for v0.6.2
390 setExtensionUpdateNotes("Löschen von bereits gelöschten Mails wird nun abgelehnt.");
393 case '0.6.3': // SQL queries for v0.6.3
394 setExtensionUpdateNotes("Abspeichern von Einstellungen repariert.");
397 case '0.6.4': // SQL queries for v0.6.4
398 // Update notes (these will be set as task text!)
399 setExtensionUpdateNotes("Der Menüpunkt "Bonus-{?POINTS?}" unter Einstellungen wird nach "Aktiv-Rallye umbenannt. Und die Aktiv-Rallye konnte aufgrund eines Template-Fehlers nicht gespeichert werden.");
402 case '0.6.5': // SQL queries for v0.6.5
403 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_stats` ADD `bonus_stats` ENUM('Y','N') NOT NULL DEFAULT 'N'");
405 // Update notes (these will be set as task text!)
406 setExtensionUpdateNotes("Fehler mit bonus_stats beseitigt.");
409 case '0.6.6': // SQL queries for v0.6.6
410 setExtensionUpdateNotes("Template-Fehler beseitigt im Admin-Bereich.");
413 case '0.6.7': // SQL queries for v0.6.7
414 setExtensionUpdateNotes("Vorbereitung auf die neue Mediendaten v0.0.4.");
417 case '0.6.8': // SQL queries for v0.6.8
418 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_bonus` SET `data_type`='SEND' WHERE `data_type` != 'SEND' AND `data_type` != 'DELETED' AND `receivers`='' AND `target_send`=0");
420 // Update notes (these will be set as task text!)
421 setExtensionUpdateNotes("Eingegebene Anzahl auszusendener Bonus-Mails wurde bei der Empfänderauswahl nicht berücksichtigt. Zudem wird jetzt das eingestellte Auswahlverfahren mitberücksichtigt.");
424 case '0.6.9': // SQL queries for v0.6.9
425 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_order_yn` ENUM('Y','N') NOT NULL DEFAULT 'N'");
426 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_ref_yn` ENUM('Y','N') NOT NULL DEFAULT 'N'");
427 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_stats_yn` ENUM('Y','N') NOT NULL DEFAULT 'N'");
428 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_login_yn` ENUM('Y','N') NOT NULL DEFAULT 'N'");
429 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_click_yn` ENUM('Y','N') NOT NULL DEFAULT 'Y'");
431 // Update notes (these will be set as task text!)
432 setExtensionUpdateNotes("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).");
435 case '0.7.0': // SQL queries for v0.7.0
436 setExtensionUpdateNotes("Zuschaltung von weiteren Bonis wird jetzt auch bei der Auflistung der mitmachenden Mitglieder im Mitgliedsbereich beachtet.");
439 case '0.7.1': // SQL queries for v0.7.1
440 setExtensionUpdateNotes("Im Adminbereich wird nun ebenfalls die Zuschaltung von weiteren Bonis berücksichtigt. Zudem wird der Gesamtbonus an alle Mitglieder errechnet und auch angezeigt.");
443 case '0.7.2': // SQL queries for v0.7.2
444 setExtensionUpdateNotes("Die Vergütung der erreichten 100%-Klickrate war noch wegen Programmierungen am Script auskommentiert. Sorry!");
447 case '0.7.3': // SQL queries for v0.7.3
448 setExtensionUpdateNotes("Gutgeschriebene Bonus-{?POINTS?} werden nach Deaktivierung der Aktiv-Rallye gelöscht.");
451 case '0.7.4': // SQL queries for v0.7.4
452 setExtensionUpdateNotes("Rechtlichen Hinweis im Mitgliedsbereich vergessen. (<strong>member_bonus.tpl</strong>)");
455 case '0.7.5': // SQL queries for v0.7.5
456 setExtensionUpdateNotes("Im Admin-Bereich Hinweis hinzugefügt, wenn Aktiv-Rallye inaktiv ist. Bitte Script inc/monthly_bonus.php löschen!");
459 case '0.7.6': // SQL queries for v0.7.6
460 setExtensionUpdateNotes("Auswahlmechanismus der Gewinner repariert. Trotz Hinzuschalten von weiteren zu berücksichtigen Boni wurden diese bei der Sortierung der Mitglieder-Ids nicht berücksichtig.");
463 case '0.7.7': // SQL queries for v0.7.7
464 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD bonus_en_notify ENUM('Y','N') NOT NULL DEFAULT 'N'");
465 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD bonus_di_notify ENUM('Y','N') NOT NULL DEFAULT 'N'");
466 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD bonus_new_mem_notify ENUM('Y','N') NOT NULL DEFAULT 'N'");
467 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD bonus_notify_points FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
468 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD bonus_notify_wait BIGINT(20) UNSIGNED NOT NULL DEFAULT '30'");
469 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD bonus_ral_notify BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
470 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD bonus_ral_en_notify BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
471 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD bonus_ral_di_notify BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
473 // Update notes (these will be set as task text!)
474 setExtensionUpdateNotes("Optionale automatische Benachrichtigung über aktivierte und/oder deaktivierte Aktiv-Rallye einstellbar.");
477 case '0.7.8': // SQL queries for v0.7.8
478 // Update notes (these will be set as task text!)
479 setExtensionUpdateNotes("Fehler im täglichen Reset beseitigt.");
482 case '0.7.9': // SQL queries for v0.7.9
483 setExtensionUpdateNotes("Dollarzeichen fehlte in <strong>inc/reset/reset_bonus.php</strong>, Zeile 39");
486 case '0.8.0': // SQL queries for v0.8.0
487 setExtensionUpdateNotes("De-/Aktivieren des mit dieser Erweiterung verknüpften Modules eingebunden.");
490 case '0.8.1': // SQL queries for v0.8.1
491 setExtensionUpdateNotes("Bei {?POINTS?}-Gleichstand wird als nächstes nach wer als letztes Online war umsortiert.");
494 case '0.8.2': // SQL queries for v0.8.2
495 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD bonus_include_own ENUM('Y','N') NOT NULL DEFAULT 'N'");
496 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_bonus` ADD is_notify ENUM('Y','N') NOT NULL DEFAULT 'N'");
498 // Update notes (these will be set as task text!)
499 setExtensionUpdateNotes("Eigene Mitglieder-Ids sind von der Aktiv-Rallye nun ausschliessbar. Benachrichtigungsmails sind von Aktiv-Rallye ausgeschlossen.");
502 case '0.8.3': // SQL queries for v0.8.3
503 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `action`='rals', `sort`=2, `title`='Aktiv-Rallye' WHERE `what`='bonus' LIMIT 1");
505 // Update notes (these will be set as task text!)
506 setExtensionUpdateNotes("Mitgliedsmenü komplett umgebaut.");
509 case '0.8.4': // SQL queries for v0.8.4
510 setExtensionUpdateNotes("Ladeproblem bei nicht installierter Erweiterung <strong>cache</strong> gefixt.");
513 case '0.8.5': // SQL queries for v0.8.5
514 setExtensionUpdateNotes("CSS-Klassenname gefixt in Templates.");
517 case '0.8.6': // SQL queries for v0.8.6
518 setExtensionUpdateNotes("Fehlerhinweis bei deaktivierter Erweiterung verbessert.");
521 case '0.8.7': // SQL queries for v0.8.7
522 addAdminMenuSql('email','list_notifications','Benachrichtigungen','Listet alle an die Mitglieder ausgesandten Benachrichtigungen auf.', 10);
525 setExtensionUpdateNotes("Benachrichtigungsmails für z.B. Bettel- oder Aktiv-Rallye werden nun angezeigt.");
528 case '0.8.8': // SQL queries for v0.8.8
529 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_stats` ADD `bonus_stats_active` ENUM('Y','N') NOT NULL DEFAULT 'N'");
532 setExtensionUpdateNotes("Benachrichtigungsmails für z.B. Bettel- oder Aktiv-Rallye werden nun angezeigt.");
535 case '0.8.9': // SQL queries for v0.8.9
536 addAdminMenuSql('setup','config_bonus','Aktiv-Rallye','Richten Sie eine komplette Aktiv-Rallye hier ein. Legen Sie Vergütungen fest, die die Mitglieder für bestimmte Aktionen auf ihr Aktiv-Konto gutgeschrieben bekommen sollen.',8);
539 setExtensionUpdateNotes("Benachrichtigungsmails für z.B. Bettel- oder Aktiv-Rallye werden nun angezeigt.");
544 case 'modify': // When the extension got modified
547 case 'test': // For testing purposes. For details see file inc/modules/admin/what-extensions.php, arround line 305.
550 case 'init': // Do stuff when extension is initialized
551 if (isResetModeEnabled() && (!isDebugModeEnabled()) && (getOutputMode() != 1)) {
552 // Daily reset was run so let's check if active rallye is activated
553 if (getConfig('bonus_active') == 'Y') {
555 addIncludeToPool('reset', 'inc/monthly/monthly_bonus.php');
558 addIncludeToPool('reset', 'inc/reset/reset_bonus.php');
562 // Check for bonus rallye is active and send mails out
563 if ((getConfig('bonus_active') == 'Y') && (getConfig('bonus_new_mem_notify') == 'Y')) {
564 // Include file for sending out mails
565 addIncludeToPool('notify', 'inc/mails/bonus_mails.php');
569 case 'init': // Do stuff when extension is initialized
572 default: // Unknown extension mode
573 DEBUG_LOG(__FILE__, __LINE__, sprintf("Unknown extension mode %s detected.", getExtensionMode()));