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 - 2011 by Mailer Developer Team *
20 * For more information visit: http://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.7');
46 // Version history array (add more with , '0.0.1' and so on)
47 setExtensionVersionHistory(array('0.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', '0.9.4', '0.9.5', '0.9.6', '0.9.7'));
49 switch (getExtensionMode()) {
50 case 'register': // Do stuff when installation is running
51 // Add dependency to 'user'
52 addExtensionDependency('user');
54 // SQL commands to run
55 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);
56 addMemberMenuSql('main', 'bonus', 'Bonuspunkte', 7);
57 addDropTableSql('bonus');
58 addCreateTableSql('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,
76 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_links` ADD `bonus_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
77 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_links` ADD INDEX (`bonus_id`)");
78 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 addDropTableSql('bonus');
87 addDropTableSql('bonus_urls');
88 addDropTableSql('bonus_customer');
89 addDropTableSql('bonus_turbo');
92 unregisterFilter(__FUNCTION__, __LINE__, 'member_login_check', 'ADD_LOGIN_BONUS', true, isExtensionDryRun());
93 unregisterFilter(__FUNCTION__, __LINE__, 'generate_admin_mail_links', 'GENERATE_BONUS_MAIL_LINKS', true, isExtensionDryRun());
94 unregisterFilter(__FUNCTION__, __LINE__, 'add_bonus_points_user_columns', 'ADD_BONUS_POINTS_USER_COLUMNS', true, isExtensionDryRun());
97 case 'activate': // Do stuff when admin activates this extension
98 // SQL commands to run
99 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `visible`='Y', `locked`='N' WHERE `what`='bonus' LIMIT 1");
100 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_guest_menu` SET `visible`='Y', `locked`='N' WHERE `action`='bonus' LIMIT 1");
101 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_mod_reg` SET `locked`='N', `hidden`='N', `admin_only`='N', `mem_only`='N' WHERE `module`='show_bonus' LIMIT 1");
104 case 'deactivate': // Do stuff when admin deactivates this extension
105 // SQL commands to run
106 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `visible`='N', `locked`='Y' WHERE `what`='bonus' LIMIT 1");
107 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_guest_menu` SET `visible`='N', `locked`='Y' WHERE `action`='bonus' LIMIT 1");
108 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_mod_reg` SET `locked`='Y' WHERE `module`='show_bonus' LIMIT 1");
111 case 'update': // Update an extension
112 switch (getCurrentExtensionVersion()) {
113 case '0.1.6': // SQL queries for v0.1.6
114 // Update notes (these will be set as task text!)
115 setExtensionUpdateNotes("Paid-Links wurden verschoben in die Erweiterung <strong>sponsor</strong>.");
118 case '0.2.0': // SQL queries for v0.2.0
119 addExtensionSql("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 setExtensionUpdateNotes("Behebt ein Versand-Problem mit den Bonus-Mails. Es wurde die Spalte target_send nicht beim Einfügen der Buchung gessetzt.");
125 case '0.2.1': // SQL queries for v0.2.1
126 // Add extension dependency to ex-tuser because of the ALTER command
127 addExtensionDependency('user');
129 addConfigAddSql('login_bonus', 'FLOAT(20,3) NOT NULL DEFAULT 10.000');
130 addConfigAddSql('turbo_bonus', 'FLOAT(20,3) NOT NULL DEFAULT 100.000');
131 addConfigAddSql('login_timeout', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT {?ONE_DAY?}');
132 addConfigAddSql('turbo_rates', "VARCHAR(255) NOT NULL DEFAULT '50;20;10'");
133 addConfigAddSql('bonus_ranks', 'TINYINT(3) UNSIGNED NOT NULL DEFAULT 10');
135 // Use actual month for this update
136 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD `login_bonus` FLOAT(20,3) NOT NULL DEFAULT 0.000");
137 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD `turbo_bonus` FLOAT(20,3) NOT NULL DEFAULT 0.000");
139 // Update notes (these will be set as task text!)
140 setExtensionUpdateNotes("Login-Bonus und Turbo-Klick-Bonus intergriert.");
143 case '0.2.2': // SQL queries for v0.2.2
144 addDropTableSql('bonus_turbo');
145 addCreateTableSql('bonus_turbo', "
146 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
147 `userid` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
148 `mail_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
149 `bonus_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
150 `level` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
151 `points` FLOAT(20,3) NOT NULL DEFAULT 0.000,
152 `timemark` VARCHAR(32) NOT NULL DEFAULT 0,
154 INDEX `mail_id` (`mail_id`),
155 INDEX `bonus_id` (`bonus_id`),
156 INDEX `userid` (`userid`)",
157 'Fastest click rallye table');
159 // Update notes (these will be set as task text!)
160 setExtensionUpdateNotes("Turbo-Bonus wird in Tabelle gezählt für Anzeige, wer alles bereits geklickt hat und welchen Platz er gemacht hat.");
163 case '0.2.3': // SQL queries for v0.2.3
164 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_member_menu` WHERE `what`='bonus' LIMIT 1");
165 addMemberMenuSql('main', 'bonus', 'Aktiv-Rallye', 7);
167 // Update notes (these will be set as task text!)
168 setExtensionUpdateNotes("Aktiv-Rallye mit Klick-Vergütung hinzugefügt.");
171 case '0.2.4': // SQL queries for v0.2.4
172 // Update notes (these will be set as task text!)
173 setExtensionUpdateNotes("Wegen des Theme-Supportes hat sich die URL zur CSS-Datei geändert.");
176 case '0.2.5': // SQL queries for v0.2.5
177 addDropTableSql('bonus_urls');
178 addDropTableSql('bonus_customer');
180 // Update notes (these will be set as task text!)
181 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.");
184 case '0.2.6': // SQL queries for v0.2.6
185 // Update notes (these will be set as task text!)
186 setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.");
189 case '0.2.7': // SQL queries for v0.2.7
190 // Update notes (these will be set as task text!)
191 setExtensionUpdateNotes("Turbo-Bonus klappt wieder (dies sind {?POINTS?} die an die schnellsten Klicker vergütet werden!)");
194 case '0.2.8': // SQL queries for v0.2.8
195 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_bonus` SET `timestamp`=0 WHERE `timestamp`='0000000000'");
196 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_bonus_turbo` CHANGE `points` `points` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
197 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` CHANGE `turbo_bonus` `turbo_bonus` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
198 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` CHANGE `login_bonus` `login_bonus` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
200 // For configuration, we need different entries
201 addConfigChangeSql('turbo_bonus', 'turbo_bonus', 'FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000');
202 addConfigChangeSql('login_bonus', 'login_bonus', 'FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000');
204 // Update notes (these will be set as task text!)
205 setExtensionUpdateNotes("5 Nachkommastellen implementiert");
208 case '0.2.9': // SQL queries for v0.2.9
209 // Update notes (these will be set as task text!)
210 setExtensionUpdateNotes("Problem mit Speicherung der Einstellungen beseitigt.");
213 case '0.3.0': // SQL queries for v0.3.0
214 // Update notes (these will be set as task text!)
215 setExtensionUpdateNotes("Menüpunkte im Gast-/Mitgliedsbereich können nicht mehr aufgerufen werden, wenn die Erweiterung deaktiviert ist.");
218 case '0.3.1': // SQL queries for v0.3.1
219 // Update notes (these will be set as task text!)
220 setExtensionUpdateNotes("Sicherheitsupdate am Script <u>show_bonus.php</u> durchgeführt.");
223 case '0.3.2': // SQL queries for v0.3.2
224 // Update notes (these will be set as task text!)
225 setExtensionUpdateNotes("Design "Solid-Business" eingebaut.");
228 case '0.3.3': // SQL queries for v0.3.3
229 // Update notes (these will be set as task text!)
230 setExtensionUpdateNotes("Seit <strong>Patch 340</strong> überflüssige HTML-Tags entfernt.");
233 case '0.3.4': // SQL queries for v0.3.4
234 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);
236 // Update notes (these will be set as task text!)
237 setExtensionUpdateNotes("Link <u>Aktiv-Rallye-Teilnehmer</u> hinzugefügt, inklusive manuelle Vorbereitung der Vergütung.");
240 case '0.3.5': // SQL queries for v0.3.5
241 addConfigAddSql('bonus_mode', "ENUM('UID','JACKPOT','ADD') NOT NULL DEFAULT 'ADD'");
242 addConfigAddSql('bonus_userid', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0');
244 // Update notes (these will be set as task text!)
245 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.");
248 case '0.3.6': // SQL queries for v0.3.6
249 // Update notes (these will be set as task text!)
250 setExtensionUpdateNotes("In der Admin-Liste werden nur aktive Mitglieder gelistet und zudem die späteste Zeitmarke für die Auswertung angezeigt.");
253 case '0.3.7': // SQL queries for v0.3.7
254 // Update notes (these will be set as task text!)
255 setExtensionUpdateNotes("Mitglieder-Account auwählbar, von dem die {?POINTS?} für den Aktiv- und Login-Bonus abgebucht werden.");
258 case '0.3.8': // SQL queries for v0.3.8
259 // Update notes (these will be set as task text!)
260 setExtensionUpdateNotes("Ausgabe des generierten HTML-Codes nach <u>inc/footer.php</u> verlagert.");
263 case '0.3.9': // SQL queries for v0.3.9
264 // Update notes (these will be set as task text!)
265 setExtensionUpdateNotes("Fehlende Variablen gefixt.");
268 case '0.4.0': // SQL queries for v0.4.0
269 addConfigAddSql('bonus_timeout', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT ' . (getOneDay() * 7));
270 addConfigAddSql('bonus_lines', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 10');
272 // Update notes (these will be set as task text!)
273 setExtensionUpdateNotes("Automatisches Löschen von Turbo-Bonus-Zeilen ({?_MYSQL_PREFIX?}_bonus_turbo) und begrenzte Anzahl von Einträgen hinzugefügt.");
276 case '0.4.1': // SQL queries for v0.4.1
277 // Update notes (these will be set as task text!)
278 setExtensionUpdateNotes("Vergütung des Aktiv-Bonus repariert.");
281 case '0.4.2': // SQL queries for v0.4.2
282 // Update notes (these will be set as task text!)
283 setExtensionUpdateNotes("Admin-Bereich / Aktiv-Teilnehmer auflisten: Problem mit Konstante __AUTOPURGE_TIMEOUT und das Template <u>admin_list_bonus.tpl</u> korregiert.");
286 case '0.4.3': // SQL queries for v0.4.3
287 // Update notes (these will be set as task text!)
288 setExtensionUpdateNotes("Verbesserung des Versandes von HTML-Bonus-Mails.");
291 case '0.4.4': // SQL queries for v0.4.4
292 addConfigAddSql('bonus_order', 'FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 15.00000');
293 addConfigAddSql('bonus_ref', 'FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 100.00000');
294 addConfigAddSql('bonus_stats', 'FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 5.00000');
295 addConfigAddSql('bonus_active', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
296 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD `bonus_order` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
297 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD `bonus_ref` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
298 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD `bonus_stats` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
300 // Update notes (these will be set as task text!)
301 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.");
304 case '0.4.5': // SQL queries for v0.4.5
305 // Update notes (these will be set as task text!)
306 setExtensionUpdateNotes("Abzug vom Bonus-Account integriert.");
309 case '0.4.6': // SQL queries for v0.4.6
310 // Update notes (these will be set as task text!)
311 setExtensionUpdateNotes("Rank 2 bekommt nun auch seine {?POINTS?} gutgeschrieben.");
314 case '0.4.7': // SQL queries for v0.4.7
315 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_user_data` SET `login_bonus`=0, `turbo_bonus`=0, `bonus_ref`=0, `bonus_order`=0, `bonus_stats`=0");
317 // Update notes (these will be set as task text!)
318 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.");
321 case '0.4.8': // SQL queries for v0.4.8
322 // Update notes (these will be set as task text!)
323 setExtensionUpdateNotes("In <u>inc/monthly_bonus.php</u> fehlte ein Punkt; Fehler besseitigt.");
326 case '0.4.9': // SQL queries for v0.4.9
327 // Update notes (these will be set as task text!)
328 setExtensionUpdateNotes("Login-Bonus wird mit angezeigt.");
331 case '0.5.0': // SQL queries for v0.5.0
332 // Update notes (these will be set as task text!)
333 setExtensionUpdateNotes("Problem mit <strong>is_hundred</strong> beim täglichen Reset beseitigt.");
336 case '0.5.1': // SQL queries for v0.5.1
337 // Update notes (these will be set as task text!)
338 setExtensionUpdateNotes("Problem mit <strong>bonus_stats / Zeile 31</strong> beim täglichen Reset beseitigt.");
341 case '0.5.2': // SQL queries for v0.5.2
342 // Update notes (these will be set as task text!)
343 setExtensionUpdateNotes("Wörter <strong>{?mt_word?}</strong>, <strong>{?mt_word2?}</strong> und <strong>{?mt_word3?}</strong> sind austauschbar.");
346 case '0.5.3': // SQL queries for v0.5.3
347 // Update notes (these will be set as task text!)
348 setExtensionUpdateNotes("Speichern der Aktiv-{?POINTS?} für Platz 2 bis <strong>x</strong> korregiert.");
351 case '0.5.4': // SQL queries for v0.5.4
352 // Update notes (these will be set as task text!)
353 setExtensionUpdateNotes("Variablenfehler in <strong>inc/monthly_bonus.php</strong> behoben.");
356 case '0.5.5': // SQL queries for v0.5.5
357 // Update notes (these will be set as task text!)
358 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.");
361 case '0.5.6': // SQL queries for v0.5.6
364 if (strlen($curr) == 1) $curr = '0' . $curr;
365 if ($curr == '00') $curr = '12';
367 // Generate timemark...
368 $mark = mktime(0, 0, 0, $curr, 1, getYear());
370 // Update accounts which are not active last months
371 addExtensionSql("UPDATE
372 `{?_MYSQL_PREFIX?}_user_data`
380 `last_online` < ".$mark."
384 // Update notes (these will be set as task text!)
385 setExtensionUpdateNotes("Ein weiterer Scriptfehler hat nur die Gewinner aus der Aktiv-Rallye genommen. Die anderen Mitglieder sind somit "nach oben gerutsch".");
388 case '0.5.7': // SQL queries for v0.5.7
391 case '0.5.8': // SQL queries for v0.5.8
392 // Update notes (these will be set as task text!)
393 setExtensionUpdateNotes("Problem mit <strong>is_hundred</strong> beim täglichen Reset endlich beseitigt.");
396 case '0.5.9': // SQL queries for v0.5.9
397 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.");
400 case '0.6.0': // SQL queries for v0.6.0
401 setExtensionUpdateNotes("SQL-Fehlermeldung in <strong>inc/monthly_bonus.php</strong> beseitigt.");
404 case '0.6.1': // SQL queries for v0.6.1
405 setExtensionUpdateNotes("Versand von Bonus-Mails repariert.");
408 case '0.6.2': // SQL queries for v0.6.2
409 setExtensionUpdateNotes("Löschen von bereits gelöschten Mails wird nun abgelehnt.");
412 case '0.6.3': // SQL queries for v0.6.3
413 setExtensionUpdateNotes("Abspeichern von Einstellungen repariert.");
416 case '0.6.4': // SQL queries for v0.6.4
417 // Update notes (these will be set as task text!)
418 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.");
421 case '0.6.5': // SQL queries for v0.6.5
422 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_stats` ADD `bonus_stats` ENUM('Y','N') NOT NULL DEFAULT 'N'");
424 // Update notes (these will be set as task text!)
425 setExtensionUpdateNotes("Fehler mit bonus_stats beseitigt.");
428 case '0.6.6': // SQL queries for v0.6.6
429 setExtensionUpdateNotes("Template-Fehler beseitigt im Admin-Bereich.");
432 case '0.6.7': // SQL queries for v0.6.7
433 setExtensionUpdateNotes("Vorbereitung auf die neue Mediendaten v0.0.4.");
436 case '0.6.8': // SQL queries for v0.6.8
437 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_bonus` SET `data_type`='SEND' WHERE `data_type` != 'SEND' AND `data_type` != 'DELETED' AND `receivers`='' AND `target_send`=0");
439 // Update notes (these will be set as task text!)
440 setExtensionUpdateNotes("Eingegebene Anzahl auszusendener Bonus-Mails wurde bei der Empfänderauswahl nicht berücksichtigt. Zudem wird jetzt das eingestellte Auswahlverfahren mitberücksichtigt.");
443 case '0.6.9': // SQL queries for v0.6.9
444 addConfigAddSql('bonus_order_yn', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
445 addConfigAddSql('bonus_ref_yn', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
446 addConfigAddSql('bonus_stats_yn', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
447 addConfigAddSql('bonus_login_yn', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
448 addConfigAddSql('bonus_click_yn', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
450 // Update notes (these will be set as task text!)
451 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).");
454 case '0.7.0': // SQL queries for v0.7.0
455 setExtensionUpdateNotes("Zuschaltung von weiteren Bonis wird jetzt auch bei der Auflistung der mitmachenden Mitglieder im Mitgliedsbereich beachtet.");
458 case '0.7.1': // SQL queries for v0.7.1
459 setExtensionUpdateNotes("Im Adminbereich wird nun ebenfalls die Zuschaltung von weiteren Bonis berücksichtigt. Zudem wird der Gesamtbonus an alle Mitglieder errechnet und auch angezeigt.");
462 case '0.7.2': // SQL queries for v0.7.2
463 setExtensionUpdateNotes("Die Vergütung der erreichten 100%-Klickrate war noch wegen Programmierungen am Script auskommentiert. Sorry!");
466 case '0.7.3': // SQL queries for v0.7.3
467 setExtensionUpdateNotes("Gutgeschriebene Bonus-{?POINTS?} werden nach Deaktivierung der Aktiv-Rallye gelöscht.");
470 case '0.7.4': // SQL queries for v0.7.4
471 setExtensionUpdateNotes("Rechtlichen Hinweis im Mitgliedsbereich vergessen. (<strong>member_bonus.tpl</strong>)");
474 case '0.7.5': // SQL queries for v0.7.5
475 setExtensionUpdateNotes("Im Admin-Bereich Hinweis hinzugefügt, wenn Aktiv-Rallye inaktiv ist. Bitte Script inc/monthly_bonus.php löschen!");
478 case '0.7.6': // SQL queries for v0.7.6
479 setExtensionUpdateNotes("Auswahlmechanismus der Gewinner repariert. Trotz Hinzuschalten von weiteren zu berücksichtigen Boni wurden diese bei der Sortierung der Mitglied-Ids nicht berücksichtig.");
482 case '0.7.7': // SQL queries for v0.7.7
483 addConfigAddSql('bonus_en_notify', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
484 addConfigAddSql('bonus_di_notify', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
485 addConfigAddSql('bonus_new_mem_notify', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
486 addConfigAddSql('bonus_notify_points', 'FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000');
487 addConfigAddSql('bonus_notify_wait', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 30');
488 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD `bonus_ral_en_notify` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0');
489 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD `bonus_ral_di_notify` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0');
490 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD `bonus_ral_notify` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0');
492 // Update notes (these will be set as task text!)
493 setExtensionUpdateNotes("Optionale automatische Benachrichtigung über aktivierte und/oder deaktivierte Aktiv-Rallye einstellbar.");
496 case '0.7.8': // SQL queries for v0.7.8
497 // Update notes (these will be set as task text!)
498 setExtensionUpdateNotes("Fehler im täglichen Reset beseitigt.");
501 case '0.7.9': // SQL queries for v0.7.9
502 setExtensionUpdateNotes("Dollarzeichen fehlte in <strong>inc/daily/daily_bonus.php</strong>, Zeile 39");
505 case '0.8.0': // SQL queries for v0.8.0
506 setExtensionUpdateNotes("De-/Aktivieren des mit dieser Erweiterung verknüpften Modules eingebunden.");
509 case '0.8.1': // SQL queries for v0.8.1
510 setExtensionUpdateNotes("Bei {?POINTS?}-Gleichstand wird als nächstes nach wer als letztes Online war umsortiert.");
513 case '0.8.2': // SQL queries for v0.8.2
514 addConfigAddSql('bonus_include_own', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
515 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_bonus` ADD `is_notify` ENUM('Y','N') NOT NULL DEFAULT 'N'");
517 // Update notes (these will be set as task text!)
518 setExtensionUpdateNotes("Eigene Mitglied-Ids sind von der Aktiv-Rallye nun ausschliessbar. Benachrichtigungsmails sind von Aktiv-Rallye ausgeschlossen.");
521 case '0.8.3': // SQL queries for v0.8.3
522 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `action`='rals', `sort`=2, `title`='Aktiv-Rallye' WHERE `what`='bonus' LIMIT 1");
524 // Update notes (these will be set as task text!)
525 setExtensionUpdateNotes("Mitgliedsmenü komplett umgebaut.");
528 case '0.8.4': // SQL queries for v0.8.4
529 setExtensionUpdateNotes("Ladeproblem bei nicht installierter Erweiterung <strong>cache</strong> gefixt.");
532 case '0.8.5': // SQL queries for v0.8.5
533 setExtensionUpdateNotes("CSS-Klassenname gefixt in Templates.");
536 case '0.8.6': // SQL queries for v0.8.6
537 setExtensionUpdateNotes("Fehlerhinweis bei deaktivierter Erweiterung verbessert.");
540 case '0.8.7': // SQL queries for v0.8.7
541 addAdminMenuSql('email','list_notifications','Benachrichtigungen','Listet alle an die Mitglieder ausgesandten Benachrichtigungen auf.', 10);
544 setExtensionUpdateNotes("Benachrichtigungsmails für z.B. Bettel- oder Aktiv-Rallye werden nun angezeigt.");
547 case '0.8.8': // SQL queries for v0.8.8
548 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_stats` ADD `bonus_stats_active` ENUM('Y','N') NOT NULL DEFAULT 'N'");
551 setExtensionUpdateNotes("Benachrichtigungsmails für z.B. Bettel- oder Aktiv-Rallye werden nun angezeigt.");
554 case '0.8.9': // SQL queries for v0.8.9
555 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);
558 setExtensionUpdateNotes("Benachrichtigungsmails für z.B. Bettel- oder Aktiv-Rallye werden nun angezeigt.");
561 case '0.9.0': // SQL queries for v0.9.0
563 registerFilter('member_login_check', 'ADD_LOGIN_BONUS', false, true, isExtensionDryRun());
566 setExtensionUpdateNotes("Filter hinzugefügt der den Login-Bonus aktualisiert (bzw. soll) (internes TODO).");
569 case '0.9.1': // SQL queries for v0.9.1
570 addConfigChangeSql('bonus_en_notify', 'bonus_enable_notify', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
571 addConfigChangeSql('bonus_di_notify', 'bonus_disable_notify', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
572 addConfigChangeSql('bonus_new_mem_notify', 'bonus_new_member_notify', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
575 setExtensionUpdateNotes("Umbenannt nach neuer Konvention (bitte Einstellungen kontrollieren).");
578 case '0.9.2': // SQL queries for v0.9.2
579 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` CHANGE `bonus_ral_en_notify` `bonus_ralley_enable_notify` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0');
580 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` CHANGE `bonus_ral_di_notify` `bonus_ralley_disable_notify` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0');
581 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` CHANGE `bonus_ral_notify` `bonus_rallley_notify` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0');
584 setExtensionUpdateNotes("Umbenannt nach neuer Konvention (bitte Einstellungen kontrollieren).");
587 case '0.9.3': // SQL queries for v0.9.3
588 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` CHANGE `bonus_ralley_enable_notify` `bonus_rallye_enable_notify` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0');
589 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` CHANGE `bonus_ralley_disable_notify` `bonus_rallye_disable_notify` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0');
590 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` DROP `bonus_ralley_notify` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0');
593 setExtensionUpdateNotes("Typos gefixt.");
596 case '0.9.4': // SQL queries for v0.9.4
597 addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_user_links` CHANGE `bonus_id` `bonus_id` BIGINT(20) UNSIGNED NULL DEFAULT NULL');
598 addExtensionSql('UPDATE `{?_MYSQL_PREFIX?}_user_links` SET `bonus_id`=NULL WHERE `bonus_id`=0');
601 setExtensionUpdateNotes("Konfliktierende SQL-Befehle aus ext-user verschoben.");
604 case '0.9.5': // SQL queries for v0.9.5
606 registerFilter('generate_admin_mail_links', 'GENERATE_BONUS_MAIL_LINKS', false, true, isExtensionDryRun());
609 setExtensionUpdateNotes("Filter zum Generieren von Admin-Links für Bonus-Mails hinzugefügt.");
612 case '0.9.6': // SQL queries for v0.9.6
613 addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_points_data` (`subject`,`column_name`,`locked_mode`,`payment_method`) VALUES ('monthly_bonus','points','LOCKED','DIRECT')");
615 // This depends on ext-sql_patches
616 addExtensionDependency('sql_patches');
619 setExtensionUpdateNotes("Monatlicher Bonus wird nun über die Tabelle <strong>{OPEN_CONFIG}_MYSQL_PREFIX{CLOSE_CONFIG}_points_data</strong> verwaltet.");
622 case '0.9.7': // SQL queries for v0.9.7
623 addConfigChangeSql('bonus_order_yn', 'include_bonus_order', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
624 addConfigChangeSql('bonus_ref_yn' , 'include_bonus_ref' , "ENUM('Y','N') NOT NULL DEFAULT 'N'");
625 addConfigChangeSql('bonus_stats_yn', 'include_bonus_stats', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
626 addConfigChangeSql('bonus_login_yn', 'include_bonus_login', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
627 addConfigChangeSql('bonus_click_yn', 'include_bonus_click', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
630 registerFilter('add_bonus_points_user_columns', 'ADD_BONUS_POINTS_USER_COLUMNS', false, true, isExtensionDryRun());
632 // Update notes (these will be set as task text!)
633 setExtensionUpdateNotes("Konfigurationseinträge umbenannt.");
638 case 'modify': // When the extension got modified
641 case 'test': // For testing purposes
644 case 'init': // Do stuff when extension is initialized
645 // Check for bonus rallye is active and send mails out
646 if ((isBonusRallyeActive()) && (isBonusNewMemberNotifyEnabled())) {
647 // Include file for sending out mails
648 addIncludeToPool('notify', 'inc/mails/bonus_mails.php');
652 default: // Unknown extension mode
653 logDebugMessage(__FILE__, __LINE__, sprintf("Unknown extension mode %s in extension %s detected.", getExtensionMode(), getCurrentExtensionName()));