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 * -------------------------------------------------------------------- *
18 * Copyright (c) 2003 - 2009 by Roland Haeder *
19 * Copyright (c) 2009, 2010 by Mailer Developer Team *
20 * For more information visit: http://www.mxchange.org *
22 * This program is free software; you can redistribute it and/or modify *
23 * it under the terms of the GNU General Public License as published by *
24 * the Free Software Foundation; either version 2 of the License, or *
25 * (at your option) any later version. *
27 * This program is distributed in the hope that it will be useful, *
28 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
29 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
30 * GNU General Public License for more details. *
32 * You should have received a copy of the GNU General Public License *
33 * along with this program; if not, write to the Free Software *
34 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, *
36 ************************************************************************/
38 // Some security stuff...
39 if (!defined('__SECURITY')) {
43 // Version of this extension
44 setThisExtensionVersion('0.9.3');
46 // Version history array (add more with , '0.1.0' and so on)
47 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', '0.9.1', '0.9.2', '0.9.3'));
49 switch (getExtensionMode()) {
50 case 'register': // Do stuff when installation is running (modules.php?module=admin is called)
51 // SQL commands to run
52 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);
53 addMemberMenuSql('main','bonus','Bonuspunkte','N','Y',7);
54 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_bonus`');
55 addExtensionSql("CREATE TABLE `{?_MYSQL_PREFIX?}_bonus` (
56 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
57 `cat_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
58 `subject` VARCHAR(255) NOT NULL DEFAULT '',
59 `text` LONGTEXT NOT NULL,
60 `receivers` LONGTEXT NOT NULL,
61 `points` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
62 `time` TINYINT(3) UNSIGNED NOT NULL DEFAULT 0,
63 `data_type` ENUM('NEW','QUEUE','SEND') NOT NULL DEFAULT 'NEW',
64 `timestamp` VARCHAR(10) NOT NULL DEFAULT 0,
65 `url` VARCHAR(255) NOT NULL DEFAULT '',
66 `target_send` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
67 `clicks` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
68 `mails_sent` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
71 ) TYPE={?_TABLE_TYPE?} COMMENT='Bonus mails'");
72 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_links` MODIFY `link_type` ENUM('NORMAL','BONUS') NOT NULL DEFAULT 'NORMAL'");
73 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_links` ADD `bonus_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
74 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_links` ADD INDEX (`bonus_id`)");
76 // Run this SQL when html_mail extension is installed
77 if (isExtensionActive('html_mail')) addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_bonus` ADD `html_msg` ENUM('Y','N') NOT NULL DEFAULT 'N'");
80 case 'remove': // Do stuff when removing extension
81 // SQL commands to run
82 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `what` IN ('bonus','config_bonus','send_bonus','list_bonus','list_notifications')");
83 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_member_menu` WHERE `what`='bonus' LIMIT 1");
84 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_guest_menu` WHERE `action`='bonus'");
85 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_bonus`');
86 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_bonus_urls`');
87 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_bonus_customer`');
88 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_bonus_turbo`');
91 unregisterFilter(__FUNCTION__, __LINE__, 'member_login_check', 'ADD_LOGIN_BONUS', true, isExtensionDryRun());
94 case 'activate': // Do stuff when admin activates this extension
95 // SQL commands to run
96 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `visible`='Y', `locked`='N' WHERE `what`='bonus' LIMIT 1");
97 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_guest_menu` SET `visible`='Y', `locked`='N' WHERE `action`='bonus' LIMIT 1");
98 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_mod_reg` SET `locked`='N', `hidden`='N', `admin_only`='N', `mem_only`='N' WHERE `module`='show_bonus' LIMIT 1");
101 case 'deactivate': // Do stuff when admin deactivates this extension
102 // SQL commands to run
103 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `visible`='N', `locked`='Y' WHERE `what`='bonus' LIMIT 1");
104 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_guest_menu` SET `visible`='N', `locked`='Y' WHERE `action`='bonus' LIMIT 1");
105 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_mod_reg` SET `locked`='Y' WHERE `module`='show_bonus' LIMIT 1");
108 case 'update': // Update an extension
109 switch (getCurrentExtensionVersion()) {
110 case '0.1.6': // SQL queries for v0.1.6
111 // Update notes (these will be set as task text!)
112 setExtensionUpdateNotes("Paid-Links wurden verschoben in die Erweiterung <strong>sponsor</strong>.");
115 case '0.2.0': // SQL queries for v0.2.0
116 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_bonus` SET `target_send`=`mails_sent` WHERE `target_send`=0 AND `mails_sent`>0 AND `receivers` != ''");
118 // Update notes (these will be set as task text!)
119 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.");
122 case '0.2.1': // SQL queries for v0.2.1
123 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `login_bonus` FLOAT(20,3) NOT NULL DEFAULT 10.000");
124 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `turbo_bonus` FLOAT(20,3) NOT NULL DEFAULT 100.000");
125 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `login_timeout` BIGINT(20) UNSIGNED NOT NULL DEFAULT {?ONE_DAY?}");
126 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `turbo_rates` VARCHAR(255) NOT NULL DEFAULT '50;20;10'");
127 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_ranks` TINYINT(3) UNSIGNED NOT NULL DEFAULT 10");
128 // Use actual month for this update
129 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD `login_bonus` FLOAT(20,3) NOT NULL DEFAULT 0.000");
130 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD `turbo_bonus` FLOAT(20,3) NOT NULL DEFAULT 0.000");
131 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_extensions` SET `ext_has_css`='Y' WHERE `ext_name`='bonus' AND `ext_has_css`='N' LIMIT 1");
133 // Update notes (these will be set as task text!)
134 setExtensionUpdateNotes("Login-Bonus und Turbo-Klick-Bonus intergriert.");
137 case '0.2.2': // SQL queries for v0.2.2
138 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_bonus_turbo`');
139 addExtensionSql("CREATE TABLE `{?_MYSQL_PREFIX?}_bonus_turbo` (
140 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
141 `userid` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
142 `mail_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
143 `bonus_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
144 `level` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
145 `points` FLOAT(20,3) NOT NULL DEFAULT '0.000',
146 `timemark` VARCHAR(32) NOT NULL DEFAULT 0,
148 INDEX `mail_id` (`mail_id`),
149 INDEX `bonus_id` (`bonus_id`),
150 INDEX `userid` (`userid`)
151 ) TYPE={?_TABLE_TYPE?}");
153 // Update notes (these will be set as task text!)
154 setExtensionUpdateNotes("Turbo-Bonus wird in Tabelle gezählt für Anzeige, wer alles bereits geklickt hat und welchen Platz er gemacht hat.");
157 case '0.2.3': // SQL queries for v0.2.3
158 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_member_menu` WHERE `what`='bonus' LIMIT 1");
159 addMemberMenuSql('main','bonus','Aktiv-Rallye','N','Y',7);
161 // Update notes (these will be set as task text!)
162 setExtensionUpdateNotes("Aktiv-Rallye mit Klick-Vergütung hinzugefügt.");
165 case '0.2.4': // SQL queries for v0.2.4
166 // Update notes (these will be set as task text!)
167 setExtensionUpdateNotes("Wegen des Theme-Supportes hat sich die URL zur CSS-Datei geändert.");
170 case '0.2.5': // SQL queries for v0.2.5
171 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_bonus_urls`');
172 addExtensionSql('DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_bonus_customer`');
174 // Update notes (these will be set as task text!)
175 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.");
178 case '0.2.6': // SQL queries for v0.2.6
179 // Update notes (these will be set as task text!)
180 setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.");
183 case '0.2.7': // SQL queries for v0.2.7
184 // Update notes (these will be set as task text!)
185 setExtensionUpdateNotes("Turbo-Bonus klappt wieder (dies sind {?POINTS?} die an die schnellsten Klicker vergütet werden!)");
188 case '0.2.8': // SQL queries for v0.2.8
189 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_bonus` SET `timestamp`=0 WHERE `timestamp`='0000000000'");
190 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_bonus_turbo` CHANGE `points` `points` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
191 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` CHANGE `turbo_bonus` `turbo_bonus` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
192 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` CHANGE `login_bonus` `login_bonus` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
193 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` CHANGE `turbo_bonus` `turbo_bonus` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
194 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` CHANGE `login_bonus` `login_bonus` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
196 // Update notes (these will be set as task text!)
197 setExtensionUpdateNotes("5 Nachkommastellen implementiert");
200 case '0.2.9': // SQL queries for v0.2.9
201 // Update notes (these will be set as task text!)
202 setExtensionUpdateNotes("Problem mit Speicherung der Einstellungen beseitigt.");
205 case '0.3.0': // SQL queries for v0.3.0
206 // Update notes (these will be set as task text!)
207 setExtensionUpdateNotes("Menüpunkte im Gast-/Mitgliedsbereich können nicht mehr aufgerufen werden, wenn die Erweiterung deaktiviert ist.");
210 case '0.3.1': // SQL queries for v0.3.1
211 // Update notes (these will be set as task text!)
212 setExtensionUpdateNotes("Sicherheitsupdate am Script <u>show_bonus.php</u> durchgeführt.");
215 case '0.3.2': // SQL queries for v0.3.2
216 // Update notes (these will be set as task text!)
217 setExtensionUpdateNotes("Design "Solid-Business" eingebaut.");
220 case '0.3.3': // SQL queries for v0.3.3
221 // Update notes (these will be set as task text!)
222 setExtensionUpdateNotes("Seit <strong>Patch 340</strong> überflüssige HTML-Tags entfernt.");
225 case '0.3.4': // SQL queries for v0.3.4
226 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);
228 // Update notes (these will be set as task text!)
229 setExtensionUpdateNotes("Link <u>Aktiv-Rallye-Teilnehmer</u> hinzugefügt, inklusive manuelle Vorbereitung der Vergütung.");
232 case '0.3.5': // SQL queries for v0.3.5
233 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_mode` ENUM('UID','JACKPOT','ADD') NOT NULL DEFAULT 'ADD'");
234 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_userid` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
236 // Update notes (these will be set as task text!)
237 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.");
240 case '0.3.6': // SQL queries for v0.3.6
241 // Update notes (these will be set as task text!)
242 setExtensionUpdateNotes("In der Admin-Liste werden nur aktive Mitglieder gelistet und zudem die späteste Zeitmarke für die Auswertung angezeigt.");
245 case '0.3.7': // SQL queries for v0.3.7
246 // Update notes (these will be set as task text!)
247 setExtensionUpdateNotes("Mitglieder-Account auwählbar, von dem die {?POINTS?} für den Aktiv- und Login-Bonus abgebucht werden.");
250 case '0.3.8': // SQL queries for v0.3.8
251 // Update notes (these will be set as task text!)
252 setExtensionUpdateNotes("Ausgabe des generierten HTML-Codes nach <u>inc/footer.php</u> verlagert.");
255 case '0.3.9': // SQL queries for v0.3.9
256 // Update notes (these will be set as task text!)
257 setExtensionUpdateNotes("Fehlende Variablen gefixt.");
260 case '0.4.0': // SQL queries for v0.4.0
261 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_timeout` BIGINT(20) UNSIGNED NOT NULL DEFAULT ".(getConfig('ONE_DAY')*7)."");
262 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_lines` BIGINT(20) UNSIGNED NOT NULL DEFAULT 10");
264 // Update notes (these will be set as task text!)
265 setExtensionUpdateNotes("Automatisches Löschen von Turbo-Bonus-Zeilen ({?_MYSQL_PREFIX?}_bonus_turbo) und begrenzte Anzahl von Einträgen hinzugefügt.");
268 case '0.4.1': // SQL queries for v0.4.1
269 // Update notes (these will be set as task text!)
270 setExtensionUpdateNotes("Vergütung des Aktiv-Bonus repariert.");
273 case '0.4.2': // SQL queries for v0.4.2
274 // Update notes (these will be set as task text!)
275 setExtensionUpdateNotes("Admin-Bereich / Aktiv-Teilnehmer auflisten: Problem mit Konstante __AUTOPURGE_TIMEOUT und das Template <u>admin_list_bonus.tpl</u> korregiert.");
278 case '0.4.3': // SQL queries for v0.4.3
279 // Update notes (these will be set as task text!)
280 setExtensionUpdateNotes("Verbesserung des Versandes von HTML-Bonus-Mails.");
283 case '0.4.4': // SQL queries for v0.4.4
284 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_order` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 15.00000");
285 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_ref` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 100.00000");
286 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_stats` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT '5.00000'");
287 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_active` ENUM('Y','N') NOT NULL DEFAULT 'Y'");
288 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD `bonus_order` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
289 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD `bonus_ref` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
290 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD `bonus_stats` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
292 // Update notes (these will be set as task text!)
293 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.");
296 case '0.4.5': // SQL queries for v0.4.5
297 // Update notes (these will be set as task text!)
298 setExtensionUpdateNotes("Abzug vom Bonus-Account integriert.");
301 case '0.4.6': // SQL queries for v0.4.6
302 // Update notes (these will be set as task text!)
303 setExtensionUpdateNotes("Rank 2 bekommt nun auch seine {?POINTS?} gutgeschrieben.");
306 case '0.4.7': // SQL queries for v0.4.7
307 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_user_data` SET `login_bonus`=0, `turbo_bonus`=0, `bonus_ref`=0, `bonus_order`=0, `bonus_stats`=0");
309 // Update notes (these will be set as task text!)
310 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.");
313 case '0.4.8': // SQL queries for v0.4.8
314 // Update notes (these will be set as task text!)
315 setExtensionUpdateNotes("In <u>inc/monthly_bonus.php</u> fehlte ein Punkt; Fehler besseitigt.");
318 case '0.4.9': // SQL queries for v0.4.9
319 // Update notes (these will be set as task text!)
320 setExtensionUpdateNotes("Login-Bonus wird mit angezeigt.");
323 case '0.5.0': // SQL queries for v0.5.0
324 // Update notes (these will be set as task text!)
325 setExtensionUpdateNotes("Problem mit <strong>is_hundred</strong> beim täglichen Reset beseitigt.");
328 case '0.5.1': // SQL queries for v0.5.1
329 // Update notes (these will be set as task text!)
330 setExtensionUpdateNotes("Problem mit <strong>bonus_stats / Zeile 31</strong> beim täglichen Reset beseitigt.");
333 case '0.5.2': // SQL queries for v0.5.2
334 // Update notes (these will be set as task text!)
335 setExtensionUpdateNotes("Wörter <strong>{?mt_word?}</strong>, <strong>{?mt_word2?}</strong> und <strong>{?mt_word3?}</strong> sind austauschbar.");
338 case '0.5.3': // SQL queries for v0.5.3
339 // Update notes (these will be set as task text!)
340 setExtensionUpdateNotes("Speichern der Aktiv-{?POINTS?} für Platz 2 bis <strong>x</strong> korregiert.");
343 case '0.5.4': // SQL queries for v0.5.4
344 // Update notes (these will be set as task text!)
345 setExtensionUpdateNotes("Variablenfehler in <strong>inc/monthly_bonus.php</strong> behoben.");
348 case '0.5.5': // SQL queries for v0.5.5
349 // Update notes (these will be set as task text!)
350 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.");
353 case '0.5.6': // SQL queries for v0.5.6
356 if (strlen($curr) == 1) $curr = '0' . $curr;
357 if ($curr == '00') $curr = '12';
359 // Generate timemark...
360 $mark = mktime(0, 0, 0, $curr, 1, getYear());
362 // Update accounts which are not active last months
363 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_user_data`
364 SET `turbo_bonus`=0, `login_bonus`=0, `bonus_order`=0, `bonus_stats`=0, `bonus_ref`=0
365 WHERE `last_online` < ".$mark." ORDER BY `userid` ASC");
367 // Update notes (these will be set as task text!)
368 setExtensionUpdateNotes("Ein weiterer Scriptfehler hat nur die Gewinner aus der Aktiv-Rallye genommen. Die anderen Mitglieder sind somit "nach oben gerutsch".");
371 case '0.5.7': // SQL queries for v0.5.7
374 case '0.5.8': // SQL queries for v0.5.8
375 // Update notes (these will be set as task text!)
376 setExtensionUpdateNotes("Problem mit <strong>is_hundred</strong> beim täglichen Reset endlich beseitigt.");
379 case '0.5.9': // SQL queries for v0.5.9
380 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.");
383 case '0.6.0': // SQL queries for v0.6.0
384 setExtensionUpdateNotes("SQL-Fehlermeldung in <strong>inc/monthly_bonus.php</strong> beseitigt.");
387 case '0.6.1': // SQL queries for v0.6.1
388 setExtensionUpdateNotes("Versand von Bonus-Mails repariert.");
391 case '0.6.2': // SQL queries for v0.6.2
392 setExtensionUpdateNotes("Löschen von bereits gelöschten Mails wird nun abgelehnt.");
395 case '0.6.3': // SQL queries for v0.6.3
396 setExtensionUpdateNotes("Abspeichern von Einstellungen repariert.");
399 case '0.6.4': // SQL queries for v0.6.4
400 // Update notes (these will be set as task text!)
401 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.");
404 case '0.6.5': // SQL queries for v0.6.5
405 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_stats` ADD `bonus_stats` ENUM('Y','N') NOT NULL DEFAULT 'N'");
407 // Update notes (these will be set as task text!)
408 setExtensionUpdateNotes("Fehler mit bonus_stats beseitigt.");
411 case '0.6.6': // SQL queries for v0.6.6
412 setExtensionUpdateNotes("Template-Fehler beseitigt im Admin-Bereich.");
415 case '0.6.7': // SQL queries for v0.6.7
416 setExtensionUpdateNotes("Vorbereitung auf die neue Mediendaten v0.0.4.");
419 case '0.6.8': // SQL queries for v0.6.8
420 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_bonus` SET `data_type`='SEND' WHERE `data_type` != 'SEND' AND `data_type` != 'DELETED' AND `receivers`='' AND `target_send`=0");
422 // Update notes (these will be set as task text!)
423 setExtensionUpdateNotes("Eingegebene Anzahl auszusendener Bonus-Mails wurde bei der Empfänderauswahl nicht berücksichtigt. Zudem wird jetzt das eingestellte Auswahlverfahren mitberücksichtigt.");
426 case '0.6.9': // SQL queries for v0.6.9
427 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_order_yn` ENUM('Y','N') NOT NULL DEFAULT 'N'");
428 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_ref_yn` ENUM('Y','N') NOT NULL DEFAULT 'N'");
429 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_stats_yn` ENUM('Y','N') NOT NULL DEFAULT 'N'");
430 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_login_yn` ENUM('Y','N') NOT NULL DEFAULT 'N'");
431 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_click_yn` ENUM('Y','N') NOT NULL DEFAULT 'Y'");
433 // Update notes (these will be set as task text!)
434 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).");
437 case '0.7.0': // SQL queries for v0.7.0
438 setExtensionUpdateNotes("Zuschaltung von weiteren Bonis wird jetzt auch bei der Auflistung der mitmachenden Mitglieder im Mitgliedsbereich beachtet.");
441 case '0.7.1': // SQL queries for v0.7.1
442 setExtensionUpdateNotes("Im Adminbereich wird nun ebenfalls die Zuschaltung von weiteren Bonis berücksichtigt. Zudem wird der Gesamtbonus an alle Mitglieder errechnet und auch angezeigt.");
445 case '0.7.2': // SQL queries for v0.7.2
446 setExtensionUpdateNotes("Die Vergütung der erreichten 100%-Klickrate war noch wegen Programmierungen am Script auskommentiert. Sorry!");
449 case '0.7.3': // SQL queries for v0.7.3
450 setExtensionUpdateNotes("Gutgeschriebene Bonus-{?POINTS?} werden nach Deaktivierung der Aktiv-Rallye gelöscht.");
453 case '0.7.4': // SQL queries for v0.7.4
454 setExtensionUpdateNotes("Rechtlichen Hinweis im Mitgliedsbereich vergessen. (<strong>member_bonus.tpl</strong>)");
457 case '0.7.5': // SQL queries for v0.7.5
458 setExtensionUpdateNotes("Im Admin-Bereich Hinweis hinzugefügt, wenn Aktiv-Rallye inaktiv ist. Bitte Script inc/monthly_bonus.php löschen!");
461 case '0.7.6': // SQL queries for v0.7.6
462 setExtensionUpdateNotes("Auswahlmechanismus der Gewinner repariert. Trotz Hinzuschalten von weiteren zu berücksichtigen Boni wurden diese bei der Sortierung der Mitglieder-Ids nicht berücksichtig.");
465 case '0.7.7': // SQL queries for v0.7.7
466 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_en_notify` ENUM('Y','N') NOT NULL DEFAULT 'N'");
467 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_di_notify` ENUM('Y','N') NOT NULL DEFAULT 'N'");
468 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_new_mem_notify` ENUM('Y','N') NOT NULL DEFAULT 'N'");
469 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_notify_points` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
470 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_notify_wait` BIGINT(20) UNSIGNED NOT NULL DEFAULT '30'");
471 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD `bonus_ral_en_notify` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
472 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD `bonus_ral_di_notify` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
473 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD `bonus_ral_notify` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
475 // Update notes (these will be set as task text!)
476 setExtensionUpdateNotes("Optionale automatische Benachrichtigung über aktivierte und/oder deaktivierte Aktiv-Rallye einstellbar.");
479 case '0.7.8': // SQL queries for v0.7.8
480 // Update notes (these will be set as task text!)
481 setExtensionUpdateNotes("Fehler im täglichen Reset beseitigt.");
484 case '0.7.9': // SQL queries for v0.7.9
485 setExtensionUpdateNotes("Dollarzeichen fehlte in <strong>inc/reset/reset_bonus.php</strong>, Zeile 39");
488 case '0.8.0': // SQL queries for v0.8.0
489 setExtensionUpdateNotes("De-/Aktivieren des mit dieser Erweiterung verknüpften Modules eingebunden.");
492 case '0.8.1': // SQL queries for v0.8.1
493 setExtensionUpdateNotes("Bei {?POINTS?}-Gleichstand wird als nächstes nach wer als letztes Online war umsortiert.");
496 case '0.8.2': // SQL queries for v0.8.2
497 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD bonus_include_own ENUM('Y','N') NOT NULL DEFAULT 'N'");
498 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_bonus` ADD is_notify ENUM('Y','N') NOT NULL DEFAULT 'N'");
500 // Update notes (these will be set as task text!)
501 setExtensionUpdateNotes("Eigene Mitglieder-Ids sind von der Aktiv-Rallye nun ausschliessbar. Benachrichtigungsmails sind von Aktiv-Rallye ausgeschlossen.");
504 case '0.8.3': // SQL queries for v0.8.3
505 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `action`='rals', `sort`=2, `title`='Aktiv-Rallye' WHERE `what`='bonus' LIMIT 1");
507 // Update notes (these will be set as task text!)
508 setExtensionUpdateNotes("Mitgliedsmenü komplett umgebaut.");
511 case '0.8.4': // SQL queries for v0.8.4
512 setExtensionUpdateNotes("Ladeproblem bei nicht installierter Erweiterung <strong>cache</strong> gefixt.");
515 case '0.8.5': // SQL queries for v0.8.5
516 setExtensionUpdateNotes("CSS-Klassenname gefixt in Templates.");
519 case '0.8.6': // SQL queries for v0.8.6
520 setExtensionUpdateNotes("Fehlerhinweis bei deaktivierter Erweiterung verbessert.");
523 case '0.8.7': // SQL queries for v0.8.7
524 addAdminMenuSql('email','list_notifications','Benachrichtigungen','Listet alle an die Mitglieder ausgesandten Benachrichtigungen auf.', 10);
527 setExtensionUpdateNotes("Benachrichtigungsmails für z.B. Bettel- oder Aktiv-Rallye werden nun angezeigt.");
530 case '0.8.8': // SQL queries for v0.8.8
531 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_stats` ADD `bonus_stats_active` ENUM('Y','N') NOT NULL DEFAULT 'N'");
534 setExtensionUpdateNotes("Benachrichtigungsmails für z.B. Bettel- oder Aktiv-Rallye werden nun angezeigt.");
537 case '0.8.9': // SQL queries for v0.8.9
538 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);
541 setExtensionUpdateNotes("Benachrichtigungsmails für z.B. Bettel- oder Aktiv-Rallye werden nun angezeigt.");
544 case '0.9.0': // SQL queries for v0.9.0
546 registerFilter('member_login_check', 'ADD_LOGIN_BONUS', false, true, isExtensionDryRun());
549 setExtensionUpdateNotes("Filter hinzugefügt der den Login-Bonus aktualisiert (bzw. soll) (internes TODO).");
552 case '0.9.1': // SQL queries for v0.9.1
553 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` CHANGE `bonus_en_notify` `bonus_enable_notify` ENUM('Y','N') NOT NULL DEFAULT 'N'");
554 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` CHANGE `bonus_di_notify` `bonus_disable_notify` ENUM('Y','N') NOT NULL DEFAULT 'N'");
555 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` CHANGE `bonus_new_mem_notify` `bonus_new_member_notify` ENUM('Y','N') NOT NULL DEFAULT 'N'");
558 setExtensionUpdateNotes("Umbenannt nach neuer Konvention (bitte Einstellungen kontrollieren).");
561 case '0.9.2': // SQL queries for v0.9.2
562 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` CHANGE `bonus_ral_en_notify` `bonus_ralley_enable_notify` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
563 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` CHANGE `bonus_ral_di_notify` `bonus_ralley_disable_notify` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
564 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` CHANGE `bonus_ral_notify` `bonus_rallley_notify` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
567 setExtensionUpdateNotes("Umbenannt nach neuer Konvention (bitte Einstellungen kontrollieren).");
570 case '0.9.3': // SQL queries for v0.9.3
571 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` CHANGE `bonus_ralley_enable_notify` `bonus_rallye_enable_notify` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
572 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` CHANGE `bonus_ralley_disable_notify` `bonus_rallye_disable_notify` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
573 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` DROP `bonus_ralley_notify` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
576 setExtensionUpdateNotes("Typos gefixt.");
581 case 'modify': // When the extension got modified
584 case 'test': // For testing purposes. For details see file inc/modules/admin/what-extensions.php, arround line 305.
587 case 'init': // Do stuff when extension is initialized
588 // Check for bonus rallye is active and send mails out
589 if ((isBonusRallyeActive()) && (isBonusNewMemberNotifyEnabled())) {
590 // Include file for sending out mails
591 addIncludeToPool('notify', 'inc/mails/bonus_mails.php');
595 default: // Unknown extension mode
596 logDebugMessage(__FILE__, __LINE__, sprintf("Unknown extension mode %s in extension %s detected.", getExtensionMode(), getCurrentExtensionName()));