2 /************************************************************************
3 * Mailer v0.2.1-FINAL 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 * Copyright (c) 2009, 2010 by Mailer Developer Team *
22 * For more information visit: http://www.mxchange.org *
24 * This program is free software; you can redistribute it and/or modify *
25 * it under the terms of the GNU General Public License as published by *
26 * the Free Software Foundation; either version 2 of the License, or *
27 * (at your option) any later version. *
29 * This program is distributed in the hope that it will be useful, *
30 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
31 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
32 * GNU General Public License for more details. *
34 * You should have received a copy of the GNU General Public License *
35 * along with this program; if not, write to the Free Software *
36 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, *
38 ************************************************************************/
40 // Some security stuff...
41 if (!defined('__SECURITY')) {
45 // Version of this extension
46 setThisExtensionVersion('0.9.0');
48 // Version history array (add more with , '0.1.0' and so on)
49 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', '0.9.0'));
51 switch (getExtensionMode()) {
52 case 'register': // Do stuff when installation is running (modules.php?module=admin is called)
53 // SQL commands to run
54 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);
55 addMemberMenuSql('main','bonus','Bonuspunkte','N','Y',7);
56 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_bonus`');
57 addExtensionSql("CREATE TABLE `{?_MYSQL_PREFIX?}_bonus` (
58 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
59 `cat_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
60 `subject` VARCHAR(255) NOT NULL DEFAULT '',
61 `text` LONGTEXT NOT NULL,
62 `receivers` LONGTEXT NOT NULL,
63 `points` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
64 `time` TINYINT(3) UNSIGNED NOT NULL DEFAULT 0,
65 `data_type` ENUM('NEW','QUEUE','SEND') NOT NULL DEFAULT 'NEW',
66 `timestamp` VARCHAR(10) NOT NULL DEFAULT 0,
67 `url` VARCHAR(255) NOT NULL DEFAULT '',
68 `target_send` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
69 `clicks` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
70 `mails_sent` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
73 )TYPE={?_TABLE_TYPE?} COMMENT='Bonus mails'");
74 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_links` MODIFY `link_type` ENUM('NORMAL','BONUS') NOT NULL DEFAULT 'NORMAL'");
75 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_links` ADD `bonus_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
76 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_links` ADD INDEX (`bonus_id`)");
78 // Run this SQL when html or html_mail extension is installed
79 if (isExtensionActive('html_mail')) addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_bonus` ADD `html_msg` ENUM('Y','N') NOT NULL DEFAULT 'N'");
82 case 'remove': // Do stuff when removing extension
83 // SQL commands to run
84 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `what` IN ('bonus','config_bonus','send_bonus','list_bonus','list_notifications')");
85 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_member_menu` WHERE `what`='bonus' LIMIT 1");
86 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_guest_menu` WHERE `action`='bonus'");
87 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_bonus`');
88 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_bonus_urls`');
89 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_bonus_customer`');
90 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_bonus_turbo`');
93 unregisterFilter('member_login_check', 'ADD_LOGIN_BONUS', true, getExtensionDryRun());
96 case 'activate': // Do stuff when admin activates this extension
97 // SQL commands to run
98 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `visible`='Y', `locked`='N' WHERE `what`='bonus' LIMIT 1");
99 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_guest_menu` SET `visible`='Y', `locked`='N' WHERE `action`='bonus' LIMIT 1");
100 addExtensionSql("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 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `visible`='N', `locked`='Y' WHERE `what`='bonus' LIMIT 1");
106 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_guest_menu` SET `visible`='N', `locked`='Y' WHERE `action`='bonus' LIMIT 1");
107 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_mod_reg` SET `locked`='Y' WHERE `module`='show_bonus' LIMIT 1");
110 case 'update': // Update an extension
111 switch (getCurrentExtensionVersion()) {
112 case '0.1.6': // SQL queries for v0.1.6
113 // Update notes (these will be set as task text!)
114 setExtensionUpdateNotes("Paid-Links wurden verschoben in die Erweiterung <strong>sponsor</strong>.");
117 case '0.2.0': // SQL queries for v0.2.0
118 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_bonus` SET `target_send`=`mails_sent` WHERE `target_send`=0 AND `mails_sent`>0 AND `receivers` != ''");
120 // Update notes (these will be set as task text!)
121 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 <strike>Updates prüfen</strike> herunter.");
124 case '0.2.1': // SQL queries for v0.2.1
125 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `login_bonus` FLOAT(20,3) NOT NULL DEFAULT 10.000");
126 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `turbo_bonus` FLOAT(20,3) NOT NULL DEFAULT 100.000");
127 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `login_timeout` BIGINT(20) UNSIGNED NOT NULL DEFAULT {?ONE_DAY?}");
128 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `turbo_rates` VARCHAR(255) NOT NULL DEFAULT '50;20;10'");
129 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_ranks` TINYINT(3) UNSIGNED NOT NULL DEFAULT 10");
130 // Use actual month for this update
131 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD `login_bonus` FLOAT(20,3) NOT NULL DEFAULT 0.000");
132 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD `turbo_bonus` FLOAT(20,3) NOT NULL DEFAULT 0.000");
133 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_extensions` SET `ext_has_css`='Y' WHERE `ext_name`='bonus' AND `ext_has_css`='N' LIMIT 1");
135 // Update notes (these will be set as task text!)
136 setExtensionUpdateNotes("Login-Bonus und Turbo-Klick-Bonus intergriert.");
139 case '0.2.2': // SQL queries for v0.2.2
140 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_bonus_turbo`');
141 addExtensionSql("CREATE TABLE `{?_MYSQL_PREFIX?}_bonus_turbo` (
142 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
143 `userid` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
144 `mail_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
145 `bonus_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
146 `level` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
147 `points` FLOAT(20,3) NOT NULL DEFAULT '0.000',
148 `timemark` VARCHAR(32) NOT NULL DEFAULT 0,
150 INDEX `mail_id` (`mail_id`),
151 INDEX `bonus_id` (`bonus_id`),
152 INDEX `userid` (`userid`)
153 ) TYPE={?_TABLE_TYPE?}");
155 // Update notes (these will be set as task text!)
156 setExtensionUpdateNotes("Turbo-Bonus wird in Tabelle gezählt für Anzeige, wer alles bereits geklickt hat und welchen Platz er gemacht hat.");
159 case '0.2.3': // SQL queries for v0.2.3
160 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_member_menu` WHERE `what`='bonus' LIMIT 1");
161 addMemberMenuSql('main','bonus','Aktiv-Rallye','N','Y',7);
163 // Update notes (these will be set as task text!)
164 setExtensionUpdateNotes("Aktiv-Rallye mit Klick-Vergütung hinzugefügt.");
167 case '0.2.4': // SQL queries for v0.2.4
168 // Update notes (these will be set as task text!)
169 setExtensionUpdateNotes("Wegen des Theme-Supportes hat sich die URL zur CSS-Datei geändert.");
172 case '0.2.5': // SQL queries for v0.2.5
173 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_bonus_urls`');
174 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_bonus_customer`');
176 // Update notes (these will be set as task text!)
177 setExtensionUpdateNotes("Tabellen <u>{?_MYSQL_PREFIX?}_bonus_urls</u> und <u>{?_MYSQL_PREFIX?}_bonus_customer</u> entfernt, da dies bald von der Erweiterung <u>sponsor</u> erledigt wird.");
180 case '0.2.6': // SQL queries for v0.2.6
181 // Update notes (these will be set as task text!)
182 setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.");
185 case '0.2.7': // SQL queries for v0.2.7
186 // Update notes (these will be set as task text!)
187 setExtensionUpdateNotes("Turbo-Bonus klappt wieder (dies sind {?POINTS?} die an die schnellsten Klicker vergütet werden!)");
190 case '0.2.8': // SQL queries for v0.2.8
191 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_bonus` SET `timestamp`=0 WHERE `timestamp`='0000000000'");
192 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_bonus_turbo` CHANGE `points` `points` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
193 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` CHANGE `turbo_bonus` `turbo_bonus` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
194 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` CHANGE `login_bonus` `login_bonus` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
195 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` CHANGE `turbo_bonus` `turbo_bonus` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
196 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` CHANGE `login_bonus` `login_bonus` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
198 // Update notes (these will be set as task text!)
199 setExtensionUpdateNotes("5 Nachkommastellen implementiert");
202 case '0.2.9': // SQL queries for v0.2.9
203 // Update notes (these will be set as task text!)
204 setExtensionUpdateNotes("Problem mit Speicherung der Einstellungen beseitigt.");
207 case '0.3.0': // SQL queries for v0.3.0
208 // Update notes (these will be set as task text!)
209 setExtensionUpdateNotes("Menüpunkte im Gast-/Mitgliedsbereich können nicht mehr aufgerufen werden, wenn die Erweiterung deaktiviert ist.");
212 case '0.3.1': // SQL queries for v0.3.1
213 // Update notes (these will be set as task text!)
214 setExtensionUpdateNotes("Sicherheitsupdate am Script <u>show_bonus.php</u> durchgeführt.");
217 case '0.3.2': // SQL queries for v0.3.2
218 // Update notes (these will be set as task text!)
219 setExtensionUpdateNotes("Design "Solid-Business" eingebaut.");
222 case '0.3.3': // SQL queries for v0.3.3
223 // Update notes (these will be set as task text!)
224 setExtensionUpdateNotes("Seit <strong>Patch 340</strong> überflüssige HTML-Tags entfernt.");
227 case '0.3.4': // SQL queries for v0.3.4
228 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);
230 // Update notes (these will be set as task text!)
231 setExtensionUpdateNotes("Link <u>Aktiv-Rallye-Teilnehmer</u> hinzugefügt, inklusive manuelle Vorbereitung der Vergütung.");
234 case '0.3.5': // SQL queries for v0.3.5
235 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_mode` ENUM('UID','JACKPOT','ADD') NOT NULL DEFAULT 'ADD'");
236 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_userid` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
238 // Update notes (these will be set as task text!)
239 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.");
242 case '0.3.6': // SQL queries for v0.3.6
243 // Update notes (these will be set as task text!)
244 setExtensionUpdateNotes("In der Admin-Liste werden nur aktive Mitglieder gelistet und zudem die späteste Zeitmarke für die Auswertung angezeigt.");
247 case '0.3.7': // SQL queries for v0.3.7
248 // Update notes (these will be set as task text!)
249 setExtensionUpdateNotes("Mitglieder-Account auwählbar, von dem die {?POINTS?} für den Aktiv- und Login-Bonus abgebucht werden.");
252 case '0.3.8': // SQL queries for v0.3.8
253 // Update notes (these will be set as task text!)
254 setExtensionUpdateNotes("Ausgabe des generierten HTML-Codes nach <u>inc/footer.php</u> verlagert.");
257 case '0.3.9': // SQL queries for v0.3.9
258 // Update notes (these will be set as task text!)
259 setExtensionUpdateNotes("Fehlende Variablen gefixt.");
262 case '0.4.0': // SQL queries for v0.4.0
263 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_timeout` BIGINT(20) UNSIGNED NOT NULL DEFAULT ".(getConfig('ONE_DAY')*7)."");
264 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_lines` BIGINT(20) UNSIGNED NOT NULL DEFAULT 10");
266 // Update notes (these will be set as task text!)
267 setExtensionUpdateNotes("Automatisches Löschen von Turbo-Bonus-Zeilen ({?_MYSQL_PREFIX?}_bonus_turbo) und begrenzte Anzahl von Einträgen hinzugefügt.");
270 case '0.4.1': // SQL queries for v0.4.1
271 // Update notes (these will be set as task text!)
272 setExtensionUpdateNotes("Vergütung des Aktiv-Bonus repariert.");
275 case '0.4.2': // SQL queries for v0.4.2
276 // Update notes (these will be set as task text!)
277 setExtensionUpdateNotes("Admin-Bereich / Aktiv-Teilnehmer auflisten: Problem mit Konstante __AUTOPURGE_TIMEOUT und das Template <u>admin_list_bonus.tpl</u> korregiert.");
280 case '0.4.3': // SQL queries for v0.4.3
281 // Update notes (these will be set as task text!)
282 setExtensionUpdateNotes("Verbesserung des Versandes von HTML-Bonus-Mails.");
285 case '0.4.4': // SQL queries for v0.4.4
286 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_order` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 15.00000");
287 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_ref` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 100.00000");
288 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_stats` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT '5.00000'");
289 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_active` ENUM('Y','N') NOT NULL DEFAULT 'Y'");
290 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD `bonus_order` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
291 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD `bonus_ref` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
292 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD `bonus_stats` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
294 // Update notes (these will be set as task text!)
295 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.");
298 case '0.4.5': // SQL queries for v0.4.5
299 // Update notes (these will be set as task text!)
300 setExtensionUpdateNotes("Abzug vom Bonus-Account integriert.");
303 case '0.4.6': // SQL queries for v0.4.6
304 // Update notes (these will be set as task text!)
305 setExtensionUpdateNotes("Rank 2 bekommt nun auch seine {?POINTS?} gutgeschrieben.");
308 case '0.4.7': // SQL queries for v0.4.7
309 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_user_data` SET `login_bonus`=0, `turbo_bonus`=0, `bonus_ref`=0, `bonus_order`=0, `bonus_stats`=0");
311 // Update notes (these will be set as task text!)
312 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.");
315 case '0.4.8': // SQL queries for v0.4.8
316 // Update notes (these will be set as task text!)
317 setExtensionUpdateNotes("In <u>inc/monthly_bonus.php</u> fehlte ein Punkt; Fehler besseitigt.");
320 case '0.4.9': // SQL queries for v0.4.9
321 // Update notes (these will be set as task text!)
322 setExtensionUpdateNotes("Login-Bonus wird mit angezeigt.");
325 case '0.5.0': // SQL queries for v0.5.0
326 // Update notes (these will be set as task text!)
327 setExtensionUpdateNotes("Problem mit <strong>is_hundred</strong> beim täglichen Reset beseitigt.");
330 case '0.5.1': // SQL queries for v0.5.1
331 // Update notes (these will be set as task text!)
332 setExtensionUpdateNotes("Problem mit <strong>bonus_stats / Zeile 31</strong> beim täglichen Reset beseitigt.");
335 case '0.5.2': // SQL queries for v0.5.2
336 // Update notes (these will be set as task text!)
337 setExtensionUpdateNotes("Wörter <strong>{?mt_word?}</strong>, <strong>{?mt_word2?}</strong> und <strong>{?mt_word3?}</strong> sind austauschbar.");
340 case '0.5.3': // SQL queries for v0.5.3
341 // Update notes (these will be set as task text!)
342 setExtensionUpdateNotes("Speichern der Aktiv-{?POINTS?} für Platz 2 bis <strong>x</strong> korregiert.");
345 case '0.5.4': // SQL queries for v0.5.4
346 // Update notes (these will be set as task text!)
347 setExtensionUpdateNotes("Variablenfehler in <strong>inc/monthly_bonus.php</strong> behoben.");
350 case '0.5.5': // SQL queries for v0.5.5
351 // Update notes (these will be set as task text!)
352 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.");
355 case '0.5.6': // SQL queries for v0.5.6
357 $curr = date('m', time());
358 if (strlen($curr) == 1) $curr = '0' . $curr;
359 if ($curr == "00") $curr = "12";
361 // Generate timemark...
362 $mark = mktime(0, 0, 0, $curr, 1, date('Y', time()));
364 // Update accounts which are not active last months
365 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_user_data`
366 SET `turbo_bonus`=0, `login_bonus`=0, `bonus_order`=0, `bonus_stats`=0, `bonus_ref`=0
367 WHERE `last_online` < ".$mark." ORDER BY `userid` ASC");
369 // Update notes (these will be set as task text!)
370 setExtensionUpdateNotes("Ein weiterer Scriptfehler hat nur die Gewinner aus der Aktiv-Rallye genommen. Die anderen Mitglieder sind somit "nach oben gerutsch".");
373 case '0.5.7': // SQL queries for v0.5.7
376 case '0.5.8': // SQL queries for v0.5.8
377 // Update notes (these will be set as task text!)
378 setExtensionUpdateNotes("Problem mit <strong>is_hundred</strong> beim täglichen Reset endlich beseitigt.");
381 case '0.5.9': // SQL queries for v0.5.9
382 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.");
385 case '0.6.0': // SQL queries for v0.6.0
386 setExtensionUpdateNotes("SQL-Fehlermeldung in <strong>inc/monthly_bonus.php</strong> beseitigt.");
389 case '0.6.1': // SQL queries for v0.6.1
390 setExtensionUpdateNotes("Versand von Bonus-Mails repariert.");
393 case '0.6.2': // SQL queries for v0.6.2
394 setExtensionUpdateNotes("Löschen von bereits gelöschten Mails wird nun abgelehnt.");
397 case '0.6.3': // SQL queries for v0.6.3
398 setExtensionUpdateNotes("Abspeichern von Einstellungen repariert.");
401 case '0.6.4': // SQL queries for v0.6.4
402 // Update notes (these will be set as task text!)
403 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.");
406 case '0.6.5': // SQL queries for v0.6.5
407 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_stats` ADD `bonus_stats` ENUM('Y','N') NOT NULL DEFAULT 'N'");
409 // Update notes (these will be set as task text!)
410 setExtensionUpdateNotes("Fehler mit bonus_stats beseitigt.");
413 case '0.6.6': // SQL queries for v0.6.6
414 setExtensionUpdateNotes("Template-Fehler beseitigt im Admin-Bereich.");
417 case '0.6.7': // SQL queries for v0.6.7
418 setExtensionUpdateNotes("Vorbereitung auf die neue Mediendaten v0.0.4.");
421 case '0.6.8': // SQL queries for v0.6.8
422 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_bonus` SET `data_type`='SEND' WHERE `data_type` != 'SEND' AND `data_type` != 'DELETED' AND `receivers`='' AND `target_send`=0");
424 // Update notes (these will be set as task text!)
425 setExtensionUpdateNotes("Eingegebene Anzahl auszusendener Bonus-Mails wurde bei der Empfänderauswahl nicht berücksichtigt. Zudem wird jetzt das eingestellte Auswahlverfahren mitberücksichtigt.");
428 case '0.6.9': // SQL queries for v0.6.9
429 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_order_yn` ENUM('Y','N') NOT NULL DEFAULT 'N'");
430 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_ref_yn` ENUM('Y','N') NOT NULL DEFAULT 'N'");
431 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_stats_yn` ENUM('Y','N') NOT NULL DEFAULT 'N'");
432 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_login_yn` ENUM('Y','N') NOT NULL DEFAULT 'N'");
433 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_click_yn` ENUM('Y','N') NOT NULL DEFAULT 'Y'");
435 // Update notes (these will be set as task text!)
436 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).");
439 case '0.7.0': // SQL queries for v0.7.0
440 setExtensionUpdateNotes("Zuschaltung von weiteren Bonis wird jetzt auch bei der Auflistung der mitmachenden Mitglieder im Mitgliedsbereich beachtet.");
443 case '0.7.1': // SQL queries for v0.7.1
444 setExtensionUpdateNotes("Im Adminbereich wird nun ebenfalls die Zuschaltung von weiteren Bonis berücksichtigt. Zudem wird der Gesamtbonus an alle Mitglieder errechnet und auch angezeigt.");
447 case '0.7.2': // SQL queries for v0.7.2
448 setExtensionUpdateNotes("Die Vergütung der erreichten 100%-Klickrate war noch wegen Programmierungen am Script auskommentiert. Sorry!");
451 case '0.7.3': // SQL queries for v0.7.3
452 setExtensionUpdateNotes("Gutgeschriebene Bonus-{?POINTS?} werden nach Deaktivierung der Aktiv-Rallye gelöscht.");
455 case '0.7.4': // SQL queries for v0.7.4
456 setExtensionUpdateNotes("Rechtlichen Hinweis im Mitgliedsbereich vergessen. (<strong>member_bonus.tpl</strong>)");
459 case '0.7.5': // SQL queries for v0.7.5
460 setExtensionUpdateNotes("Im Admin-Bereich Hinweis hinzugefügt, wenn Aktiv-Rallye inaktiv ist. Bitte Script inc/monthly_bonus.php löschen!");
463 case '0.7.6': // SQL queries for v0.7.6
464 setExtensionUpdateNotes("Auswahlmechanismus der Gewinner repariert. Trotz Hinzuschalten von weiteren zu berücksichtigen Boni wurden diese bei der Sortierung der Mitglieder-Ids nicht berücksichtig.");
467 case '0.7.7': // SQL queries for v0.7.7
468 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD bonus_en_notify ENUM('Y','N') NOT NULL DEFAULT 'N'");
469 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD bonus_di_notify ENUM('Y','N') NOT NULL DEFAULT 'N'");
470 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD bonus_new_mem_notify ENUM('Y','N') NOT NULL DEFAULT 'N'");
471 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD bonus_notify_points FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
472 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD bonus_notify_wait BIGINT(20) UNSIGNED NOT NULL DEFAULT '30'");
473 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD bonus_ral_notify BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
474 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD bonus_ral_en_notify BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
475 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD bonus_ral_di_notify BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
477 // Update notes (these will be set as task text!)
478 setExtensionUpdateNotes("Optionale automatische Benachrichtigung über aktivierte und/oder deaktivierte Aktiv-Rallye einstellbar.");
481 case '0.7.8': // SQL queries for v0.7.8
482 // Update notes (these will be set as task text!)
483 setExtensionUpdateNotes("Fehler im täglichen Reset beseitigt.");
486 case '0.7.9': // SQL queries for v0.7.9
487 setExtensionUpdateNotes("Dollarzeichen fehlte in <strong>inc/reset/reset_bonus.php</strong>, Zeile 39");
490 case '0.8.0': // SQL queries for v0.8.0
491 setExtensionUpdateNotes("De-/Aktivieren des mit dieser Erweiterung verknüpften Modules eingebunden.");
494 case '0.8.1': // SQL queries for v0.8.1
495 setExtensionUpdateNotes("Bei {?POINTS?}-Gleichstand wird als nächstes nach wer als letztes Online war umsortiert.");
498 case '0.8.2': // SQL queries for v0.8.2
499 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD bonus_include_own ENUM('Y','N') NOT NULL DEFAULT 'N'");
500 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_bonus` ADD is_notify ENUM('Y','N') NOT NULL DEFAULT 'N'");
502 // Update notes (these will be set as task text!)
503 setExtensionUpdateNotes("Eigene Mitglieder-Ids sind von der Aktiv-Rallye nun ausschliessbar. Benachrichtigungsmails sind von Aktiv-Rallye ausgeschlossen.");
506 case '0.8.3': // SQL queries for v0.8.3
507 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `action`='rals', `sort`=2, `title`='Aktiv-Rallye' WHERE `what`='bonus' LIMIT 1");
509 // Update notes (these will be set as task text!)
510 setExtensionUpdateNotes("Mitgliedsmenü komplett umgebaut.");
513 case '0.8.4': // SQL queries for v0.8.4
514 setExtensionUpdateNotes("Ladeproblem bei nicht installierter Erweiterung <strong>cache</strong> gefixt.");
517 case '0.8.5': // SQL queries for v0.8.5
518 setExtensionUpdateNotes("CSS-Klassenname gefixt in Templates.");
521 case '0.8.6': // SQL queries for v0.8.6
522 setExtensionUpdateNotes("Fehlerhinweis bei deaktivierter Erweiterung verbessert.");
525 case '0.8.7': // SQL queries for v0.8.7
526 addAdminMenuSql('email','list_notifications','Benachrichtigungen','Listet alle an die Mitglieder ausgesandten Benachrichtigungen auf.', 10);
529 setExtensionUpdateNotes("Benachrichtigungsmails für z.B. Bettel- oder Aktiv-Rallye werden nun angezeigt.");
532 case '0.8.8': // SQL queries for v0.8.8
533 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_stats` ADD `bonus_stats_active` ENUM('Y','N') NOT NULL DEFAULT 'N'");
536 setExtensionUpdateNotes("Benachrichtigungsmails für z.B. Bettel- oder Aktiv-Rallye werden nun angezeigt.");
539 case '0.8.9': // SQL queries for v0.8.9
540 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);
543 setExtensionUpdateNotes("Benachrichtigungsmails für z.B. Bettel- oder Aktiv-Rallye werden nun angezeigt.");
546 case '0.9.0': // SQL queries for v0.9.0
548 registerFilter('member_login_check', 'ADD_LOGIN_BONUS', false, true, getExtensionDryRun());
551 setExtensionUpdateNotes("Filter hinzugefügt der den Login-Bonus aktualisiert (bzw. soll) (internes TODO).");
556 case 'modify': // When the extension got modified
559 case 'test': // For testing purposes. For details see file inc/modules/admin/what-extensions.php, arround line 305.
562 case 'init': // Do stuff when extension is initialized
563 // Check for bonus rallye is active and send mails out
564 if ((getConfig('bonus_active') == 'Y') && (getConfig('bonus_new_mem_notify') == 'Y')) {
565 // Include file for sending out mails
566 addIncludeToPool('notify', 'inc/mails/bonus_mails.php');
570 default: // Unknown extension mode
571 logDebugMessage(__FILE__, __LINE__, sprintf("Unknown extension mode %s in extension %s detected.", getExtensionMode(), getCurrentExtensionName()));