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 - 2012 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('1.0.0');
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', '0.9.8', '0.9.9', '1.0.0'));
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 addExtensionAddTableColumnSql('user_links', 'bonus_id', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0');
77 addExtensionAddTableIndexSql('user_links', 'bonus_id', '(`bonus_id`)');
78 addExtensionAddTableColumnSql('bonus', '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');
91 // Unregister points data
92 unregisterExtensionPointsData('monthly_bonus');
95 unregisterFilter(__FILE__, __LINE__, 'member_login_check', 'ADD_LOGIN_BONUS', TRUE, isExtensionDryRun());
96 unregisterFilter(__FILE__, __LINE__, 'generate_admin_mail_links', 'GENERATE_BONUS_MAIL_LINKS', TRUE, isExtensionDryRun());
97 unregisterFilter(__FILE__, __LINE__, 'add_bonus_points_user_columns', 'ADD_BONUS_POINTS_USER_COLUMNS', TRUE, isExtensionDryRun());
98 unregisterFilter(__FILE__, __LINE__, 'pre_user_registration', 'BONUS_USER_REGISTRATION_ADD_SQL_COLUMNS', TRUE, isExtensionDryRun());
99 unregisterFilter(__FILE__, __LINE__, 'init', 'SEND_BONUS_NOTIFICATIONS', TRUE, isExtensionDryRun());
100 unregisterFilter(__FILE__, __LINE__, 'config_userid_exclusion_sql', 'EXLCUDE_BONUS_USERID', TRUE, isExtensionDryRun());
103 case 'activate': // Do stuff when admin activates this extension
104 // SQL commands to run
105 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `visible`='Y',`locked`='N' WHERE `what`='bonus' LIMIT 1");
106 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_guest_menu` SET `visible`='Y',`locked`='N' WHERE `action`='bonus' LIMIT 1");
107 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_mod_reg` SET `locked`='N',`hidden`='N',`admin_only`='N',`mem_only`='N' WHERE `module`='show_bonus' LIMIT 1");
110 case 'deactivate': // Do stuff when admin deactivates this extension
111 // SQL commands to run
112 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `visible`='N',`locked`='Y' WHERE `what`='bonus' LIMIT 1");
113 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_guest_menu` SET `visible`='N',`locked`='Y' WHERE `action`='bonus' LIMIT 1");
114 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_mod_reg` SET `locked`='Y' WHERE `module`='show_bonus' LIMIT 1");
117 case 'update': // Update an extension
118 switch (getCurrentExtensionVersion()) {
119 case '0.1.6': // SQL queries for v0.1.6
120 // Update notes (these will be set as task text!)
121 setExtensionUpdateNotes("Paid-Links wurden verschoben in die Erweiterung <strong>sponsor</strong>.");
124 case '0.2.0': // SQL queries for v0.2.0
125 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_bonus` SET `target_send`=`mails_sent` WHERE `target_send`=0 AND `mails_sent`>0 AND `receivers` != ''");
127 // Update notes (these will be set as task text!)
128 setExtensionUpdateNotes("Behebt ein Versand-Problem mit den Bonus-Mails. Es wurde die Spalte target_send nicht beim Einfügen der Buchung gessetzt.");
131 case '0.2.1': // SQL queries for v0.2.1
132 // Add extension dependency to ex-tuser because of the ALTER command
133 addExtensionDependency('user');
135 addConfigAddSql('login_bonus', 'FLOAT(20,3) NOT NULL DEFAULT 10.000');
136 addConfigAddSql('turbo_bonus', 'FLOAT(20,3) NOT NULL DEFAULT 100.000');
137 addConfigAddSql('login_timeout', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT {?ONE_DAY?}');
138 addConfigAddSql('turbo_rates', "VARCHAR(255) NOT NULL DEFAULT '50;20;10'");
139 addConfigAddSql('bonus_ranks', 'TINYINT(3) UNSIGNED NOT NULL DEFAULT 10');
141 // Use actual month for this update
142 addExtensionAddTableColumnSql('user_data', 'login_bonus', 'FLOAT(20,3) NOT NULL DEFAULT 0.000');
143 addExtensionAddTableColumnSql('user_data', 'turbo_bonus', 'FLOAT(20,3) NOT NULL DEFAULT 0.000');
145 // Update notes (these will be set as task text!)
146 setExtensionUpdateNotes("Login-Bonus und Turbo-Klick-Bonus intergriert.");
149 case '0.2.2': // SQL queries for v0.2.2
150 addDropTableSql('bonus_turbo');
151 addCreateTableSql('bonus_turbo', "
152 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
153 `userid` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
154 `mail_id` BIGINT(20) UNSIGNED NULL DEFAULT NULL,
155 `bonus_id` BIGINT(20) UNSIGNED NULL DEFAULT NULL,
156 `level` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
157 `points` FLOAT(20,3) NOT NULL DEFAULT 0.000,
158 `timemark` VARCHAR(32) NOT NULL DEFAULT 0,
160 INDEX `mail_id` (`mail_id`),
161 INDEX `bonus_id` (`bonus_id`),
162 INDEX `userid` (`userid`)",
163 'Fastest click rallye table');
165 // Update notes (these will be set as task text!)
166 setExtensionUpdateNotes("Turbo-Bonus wird in Tabelle gezählt für Anzeige, wer alles bereits geklickt hat und welchen Platz er gemacht hat.");
169 case '0.2.3': // SQL queries for v0.2.3
170 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_member_menu` WHERE `what`='bonus' LIMIT 1");
171 addMemberMenuSql('main', 'bonus', 'Aktiv-Rallye', 7);
173 // Update notes (these will be set as task text!)
174 setExtensionUpdateNotes("Aktiv-Rallye mit Klick-Vergütung hinzugefügt.");
177 case '0.2.4': // SQL queries for v0.2.4
178 // Update notes (these will be set as task text!)
179 setExtensionUpdateNotes("Wegen des Theme-Supportes hat sich die URL zur CSS-Datei geändert.");
182 case '0.2.5': // SQL queries for v0.2.5
183 addDropTableSql('bonus_urls');
184 addDropTableSql('bonus_customer');
186 // Update notes (these will be set as task text!)
187 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.");
190 case '0.2.6': // SQL queries for v0.2.6
191 // Update notes (these will be set as task text!)
192 setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.");
195 case '0.2.7': // SQL queries for v0.2.7
196 // Update notes (these will be set as task text!)
197 setExtensionUpdateNotes("Turbo-Bonus klappt wieder (dies sind {?POINTS?} die an die schnellsten Klicker vergütet werden!)");
200 case '0.2.8': // SQL queries for v0.2.8
201 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_bonus` SET `timestamp`=0 WHERE `timestamp`='0000000000'");
202 addExtensionChangeTableColumnSql('bonus_turbo', 'points', 'points', 'FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000');
203 addExtensionChangeTableColumnSql('user_data', 'turbo_bonus', 'turbo_bonus', 'FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000');
204 addExtensionChangeTableColumnSql('user_data', 'login_bonus', 'login_bonus', 'FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000');
206 // For configuration, we need different entries
207 addExtensionAddTableColumnSql('user_data', 'turbo_bonus', 'turbo_bonus', 'FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000');
208 addExtensionAddTableColumnSql('user_data', 'login_bonus', 'login_bonus', 'FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000');
210 // Update notes (these will be set as task text!)
211 setExtensionUpdateNotes("5 Nachkommastellen implementiert");
214 case '0.2.9': // SQL queries for v0.2.9
215 // Update notes (these will be set as task text!)
216 setExtensionUpdateNotes("Problem mit Speicherung der Einstellungen beseitigt.");
219 case '0.3.0': // SQL queries for v0.3.0
220 // Update notes (these will be set as task text!)
221 setExtensionUpdateNotes("Menüpunkte im Gast-/Mitgliedsbereich können nicht mehr aufgerufen werden, wenn die Erweiterung deaktiviert ist.");
224 case '0.3.1': // SQL queries for v0.3.1
225 // Update notes (these will be set as task text!)
226 setExtensionUpdateNotes("Sicherheitsupdate am Script <u>show_bonus.php</u> durchgeführt.");
229 case '0.3.2': // SQL queries for v0.3.2
230 // Update notes (these will be set as task text!)
231 setExtensionUpdateNotes("Design "Solid-Business" eingebaut.");
234 case '0.3.3': // SQL queries for v0.3.3
235 // Update notes (these will be set as task text!)
236 setExtensionUpdateNotes("Seit <strong>Patch 340</strong> überflüssige HTML-Tags entfernt.");
239 case '0.3.4': // SQL queries for v0.3.4
240 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);
242 // Update notes (these will be set as task text!)
243 setExtensionUpdateNotes("Link <u>Aktiv-Rallye-Teilnehmer</u> hinzugefügt, inklusive manuelle Vorbereitung der Vergütung.");
246 case '0.3.5': // SQL queries for v0.3.5
247 addConfigAddSql('bonus_mode', "ENUM('UID','JACKPOT','ADD') NOT NULL DEFAULT 'ADD'");
248 addConfigAddSql('bonus_userid', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0');
250 // Update notes (these will be set as task text!)
251 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.");
254 case '0.3.6': // SQL queries for v0.3.6
255 // Update notes (these will be set as task text!)
256 setExtensionUpdateNotes("In der Admin-Liste werden nur aktive Mitglieder gelistet und zudem die späteste Zeitmarke für die Auswertung angezeigt.");
259 case '0.3.7': // SQL queries for v0.3.7
260 // Update notes (these will be set as task text!)
261 setExtensionUpdateNotes("Mitglieder-Account auwählbar, von dem die {?POINTS?} für den Aktiv- und Login-Bonus abgebucht werden.");
264 case '0.3.8': // SQL queries for v0.3.8
265 // Update notes (these will be set as task text!)
266 setExtensionUpdateNotes("Ausgabe des generierten HTML-Codes nach <u>inc/footer.php</u> verlagert.");
269 case '0.3.9': // SQL queries for v0.3.9
270 // Update notes (these will be set as task text!)
271 setExtensionUpdateNotes("Fehlende Variablen gefixt.");
274 case '0.4.0': // SQL queries for v0.4.0
275 addConfigAddSql('bonus_timeout', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT ' . (getOneDay() * 7));
276 addConfigAddSql('bonus_lines', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 10');
278 // Update notes (these will be set as task text!)
279 setExtensionUpdateNotes("Automatisches Löschen von Turbo-Bonus-Zeilen ({?_MYSQL_PREFIX?}_bonus_turbo) und begrenzte Anzahl von Einträgen hinzugefügt.");
282 case '0.4.1': // SQL queries for v0.4.1
283 // Update notes (these will be set as task text!)
284 setExtensionUpdateNotes("Vergütung des Aktiv-Bonus repariert.");
287 case '0.4.2': // SQL queries for v0.4.2
288 // Update notes (these will be set as task text!)
289 setExtensionUpdateNotes("Admin-Bereich / Aktiv-Teilnehmer auflisten: Problem mit Konstante __AUTOPURGE_TIMEOUT und das Template <u>admin_list_bonus.tpl</u> korregiert.");
292 case '0.4.3': // SQL queries for v0.4.3
293 // Update notes (these will be set as task text!)
294 setExtensionUpdateNotes("Verbesserung des Versandes von HTML-Bonus-Mails.");
297 case '0.4.4': // SQL queries for v0.4.4
298 addConfigAddSql('bonus_order', 'FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 15.00000');
299 addConfigAddSql('bonus_ref', 'FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 100.00000');
300 addConfigAddSql('bonus_stats', 'FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 5.00000');
301 addConfigAddSql('bonus_active', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
302 addExtensionAddTableColumnSql('user_data', 'bonus_order', 'FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000');
303 addExtensionAddTableColumnSql('user_data', 'bonus_ref', 'FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000');
304 addExtensionAddTableColumnSql('user_data', 'bonus_stats', 'FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000');
306 // Update notes (these will be set as task text!)
307 setExtensionUpdateNotes("Bonus-{?POINTS?} für: Mailbestellung, Referral-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.");
310 case '0.4.5': // SQL queries for v0.4.5
311 // Update notes (these will be set as task text!)
312 setExtensionUpdateNotes("Abzug vom Bonus-Account integriert.");
315 case '0.4.6': // SQL queries for v0.4.6
316 // Update notes (these will be set as task text!)
317 setExtensionUpdateNotes("Rank 2 bekommt nun auch seine {?POINTS?} gutgeschrieben.");
320 case '0.4.7': // SQL queries for v0.4.7
321 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_user_data` SET `login_bonus`=0,`turbo_bonus`=0,`bonus_ref`=0,`bonus_order`=0,`bonus_stats`=0");
323 // Update notes (these will be set as task text!)
324 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.");
327 case '0.4.8': // SQL queries for v0.4.8
328 // Update notes (these will be set as task text!)
329 setExtensionUpdateNotes("In <u>inc/monthly_bonus.php</u> fehlte ein Punkt; Fehler besseitigt.");
332 case '0.4.9': // SQL queries for v0.4.9
333 // Update notes (these will be set as task text!)
334 setExtensionUpdateNotes("Login-Bonus wird mit angezeigt.");
337 case '0.5.0': // SQL queries for v0.5.0
338 // Update notes (these will be set as task text!)
339 setExtensionUpdateNotes("Problem mit <strong>is_hundred</strong> beim täglichen Reset beseitigt.");
342 case '0.5.1': // SQL queries for v0.5.1
343 // Update notes (these will be set as task text!)
344 setExtensionUpdateNotes("Problem mit <strong>bonus_stats / Zeile 31</strong> beim täglichen Reset beseitigt.");
347 case '0.5.2': // SQL queries for v0.5.2
348 // Update notes (these will be set as task text!)
349 setExtensionUpdateNotes("Wörter <strong>{?mt_word?}</strong>, <strong>{?mt_word2?}</strong> und <strong>{?mt_word3?}</strong> sind austauschbar.");
352 case '0.5.3': // SQL queries for v0.5.3
353 // Update notes (these will be set as task text!)
354 setExtensionUpdateNotes("Speichern der Aktiv-{?POINTS?} für Platz 2 bis <strong>x</strong> korregiert.");
357 case '0.5.4': // SQL queries for v0.5.4
358 // Update notes (these will be set as task text!)
359 setExtensionUpdateNotes("Variablenfehler in <strong>inc/monthly_bonus.php</strong> behoben.");
362 case '0.5.5': // SQL queries for v0.5.5
363 // Update notes (these will be set as task text!)
364 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.");
367 case '0.5.6': // SQL queries for v0.5.6
369 $curr = padLeftZero(getMonth());
370 if ($curr == '00') $curr = '12';
372 // Generate timemark...
373 $mark = mktime(0, 0, 0, $curr, 1, getYear());
375 // Update accounts which are not active last months
376 addExtensionSql('UPDATE
377 `{?_MYSQL_PREFIX?}_user_data`
385 `last_online` < ' . $mark . '
389 // Update notes (these will be set as task text!)
390 setExtensionUpdateNotes("Ein weiterer Scriptfehler hat nur die Gewinner aus der Aktiv-Rallye genommen. Die anderen Mitglieder sind somit "nach oben gerutsch".");
393 case '0.5.7': // SQL queries for v0.5.7
396 case '0.5.8': // SQL queries for v0.5.8
397 // Update notes (these will be set as task text!)
398 setExtensionUpdateNotes("Problem mit <strong>is_hundred</strong> beim täglichen Reset endlich beseitigt.");
401 case '0.5.9': // SQL queries for v0.5.9
402 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.");
405 case '0.6.0': // SQL queries for v0.6.0
406 setExtensionUpdateNotes("SQL-Fehlermeldung in <strong>inc/monthly_bonus.php</strong> beseitigt.");
409 case '0.6.1': // SQL queries for v0.6.1
410 setExtensionUpdateNotes("Versand von Bonus-Mails repariert.");
413 case '0.6.2': // SQL queries for v0.6.2
414 setExtensionUpdateNotes("Löschen von bereits gelöschten Mails wird nun abgelehnt.");
417 case '0.6.3': // SQL queries for v0.6.3
418 setExtensionUpdateNotes("Abspeichern von Einstellungen repariert.");
421 case '0.6.4': // SQL queries for v0.6.4
422 // Update notes (these will be set as task text!)
423 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.");
426 case '0.6.5': // SQL queries for v0.6.5
427 addExtensionAddTableColumnSql('user_stats', 'bonus_stats', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
429 // Update notes (these will be set as task text!)
430 setExtensionUpdateNotes("Fehler mit bonus_stats beseitigt.");
433 case '0.6.6': // SQL queries for v0.6.6
434 setExtensionUpdateNotes("Template-Fehler beseitigt im Admin-Bereich.");
437 case '0.6.7': // SQL queries for v0.6.7
438 setExtensionUpdateNotes("Vorbereitung auf die neue Mediendaten v0.0.4.");
441 case '0.6.8': // SQL queries for v0.6.8
442 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_bonus` SET `data_type`='SEND' WHERE `data_type` != 'SEND' AND `data_type` != 'DELETED' AND `receivers`='' AND `target_send`=0");
444 // Update notes (these will be set as task text!)
445 setExtensionUpdateNotes("Eingegebene Anzahl auszusendener Bonus-Mails wurde bei der Empfänderauswahl nicht berücksichtigt. Zudem wird jetzt das eingestellte Auswahlverfahren mitberücksichtigt.");
448 case '0.6.9': // SQL queries for v0.6.9
449 addConfigAddSql('bonus_order_yn', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
450 addConfigAddSql('bonus_ref_yn', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
451 addConfigAddSql('bonus_stats_yn', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
452 addConfigAddSql('bonus_login_yn', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
453 addConfigAddSql('bonus_click_yn', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
455 // Update notes (these will be set as task text!)
456 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, Referral und Statistik-Bonus (100% Klickrate erreicht).");
459 case '0.7.0': // SQL queries for v0.7.0
460 setExtensionUpdateNotes("Zuschaltung von weiteren Bonis wird jetzt auch bei der Auflistung der mitmachenden Mitglieder im Mitgliedsbereich beachtet.");
463 case '0.7.1': // SQL queries for v0.7.1
464 setExtensionUpdateNotes("Im Adminbereich wird nun ebenfalls die Zuschaltung von weiteren Bonis berücksichtigt. Zudem wird der Gesamtbonus an alle Mitglieder errechnet und auch angezeigt.");
467 case '0.7.2': // SQL queries for v0.7.2
468 setExtensionUpdateNotes("Die Vergütung der erreichten 100%-Klickrate war noch wegen Programmierungen am Script auskommentiert. Sorry!");
471 case '0.7.3': // SQL queries for v0.7.3
472 setExtensionUpdateNotes("Gutgeschriebene Bonus-{?POINTS?} werden nach Deaktivierung der Aktiv-Rallye gelöscht.");
475 case '0.7.4': // SQL queries for v0.7.4
476 setExtensionUpdateNotes("Rechtlichen Hinweis im Mitgliedsbereich vergessen. (<strong>member_bonus.tpl</strong>)");
479 case '0.7.5': // SQL queries for v0.7.5
480 setExtensionUpdateNotes("Im Admin-Bereich Hinweis hinzugefügt, wenn Aktiv-Rallye inaktiv ist. Bitte Script inc/monthly_bonus.php löschen!");
483 case '0.7.6': // SQL queries for v0.7.6
484 setExtensionUpdateNotes("Auswahlmechanismus der Gewinner repariert. Trotz Hinzuschalten von weiteren zu berücksichtigen Boni wurden diese bei der Sortierung der Mitglieds-Ids nicht berücksichtig.");
487 case '0.7.7': // SQL queries for v0.7.7
488 addConfigAddSql('bonus_en_notify', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
489 addConfigAddSql('bonus_di_notify', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
490 addConfigAddSql('bonus_new_mem_notify', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
491 addConfigAddSql('bonus_notify_points', 'FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000');
492 addConfigAddSql('bonus_notify_wait', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 30');
493 addExtensionAddTableColumnSql('user_data', 'bonus_ral_en_notify', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0');
494 addExtensionAddTableColumnSql('user_data', 'bonus_ral_di_notify', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0');
495 addExtensionAddTableColumnSql('user_data', 'bonus_ral_notify', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0');
497 // Update notes (these will be set as task text!)
498 setExtensionUpdateNotes("Optionale automatische Benachrichtigung über aktivierte und/oder deaktivierte Aktiv-Rallye einstellbar.");
501 case '0.7.8': // SQL queries for v0.7.8
502 // Update notes (these will be set as task text!)
503 setExtensionUpdateNotes("Fehler im täglichen Reset beseitigt.");
506 case '0.7.9': // SQL queries for v0.7.9
507 setExtensionUpdateNotes("Dollarzeichen fehlte in <strong>inc/daily/daily_bonus.php</strong>, Zeile 39");
510 case '0.8.0': // SQL queries for v0.8.0
511 setExtensionUpdateNotes("De-/Aktivieren des mit dieser Erweiterung verknüpften Modules eingebunden.");
514 case '0.8.1': // SQL queries for v0.8.1
515 setExtensionUpdateNotes("Bei {?POINTS?}-Gleichstand wird als nächstes nach wer als letztes Online war umsortiert.");
518 case '0.8.2': // SQL queries for v0.8.2
519 addConfigAddSql('bonus_include_own', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
520 addExtensionAddTableColumnSql('bonus', 'is_notify', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
522 // Update notes (these will be set as task text!)
523 setExtensionUpdateNotes("Eigene Mitglieds-Ids sind von der Aktiv-Rallye nun ausschliessbar. Benachrichtigungsmails sind von Aktiv-Rallye ausgeschlossen.");
526 case '0.8.3': // SQL queries for v0.8.3
527 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `action`='rals',`sort`=2,`title`='Aktiv-Rallye' WHERE `what`='bonus' LIMIT 1");
529 // Update notes (these will be set as task text!)
530 setExtensionUpdateNotes("Mitgliedsmenü komplett umgebaut.");
533 case '0.8.4': // SQL queries for v0.8.4
534 setExtensionUpdateNotes("Ladeproblem bei nicht installierter Erweiterung <strong>cache</strong> gefixt.");
537 case '0.8.5': // SQL queries for v0.8.5
538 setExtensionUpdateNotes("CSS-Klassenname gefixt in Templates.");
541 case '0.8.6': // SQL queries for v0.8.6
542 setExtensionUpdateNotes("Fehlerhinweis bei deaktivierter Erweiterung verbessert.");
545 case '0.8.7': // SQL queries for v0.8.7
546 addAdminMenuSql('email','list_notifications','Benachrichtigungen','Listet alle an die Mitglieder ausgesandten Benachrichtigungen auf.', 10);
549 setExtensionUpdateNotes("Benachrichtigungsmails für z.B. Bettel- oder Aktiv-Rallye werden nun angezeigt.");
552 case '0.8.8': // SQL queries for v0.8.8
553 addExtensionAddTableColumnSql('user_stats', 'bonus_stats_active', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
556 setExtensionUpdateNotes("Benachrichtigungsmails für z.B. Bettel- oder Aktiv-Rallye werden nun angezeigt.");
559 case '0.8.9': // SQL queries for v0.8.9
560 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);
563 setExtensionUpdateNotes("Benachrichtigungsmails für z.B. Bettel- oder Aktiv-Rallye werden nun angezeigt.");
566 case '0.9.0': // SQL queries for v0.9.0
568 registerFilter(__FILE__, __LINE__, 'member_login_check', 'ADD_LOGIN_BONUS', FALSE, TRUE, isExtensionDryRun());
571 setExtensionUpdateNotes("Filter hinzugefügt der den Login-Bonus aktualisiert (bzw. soll) (internes TODO).");
574 case '0.9.1': // SQL queries for v0.9.1
575 addConfigChangeSql('bonus_en_notify', 'bonus_enable_notify', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
576 addConfigChangeSql('bonus_di_notify', 'bonus_disable_notify', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
577 addConfigChangeSql('bonus_new_mem_notify', 'bonus_new_member_notify', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
580 setExtensionUpdateNotes("Umbenannt nach neuer Konvention (bitte Einstellungen kontrollieren).");
583 case '0.9.2': // SQL queries for v0.9.2
584 addExtensionChangeTableColumnSql('user_data', 'bonus_ral_en_notify', 'bonus_ralley_enable_notify', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0');
585 addExtensionChangeTableColumnSql('user_data', 'bonus_ral_di_notify', 'bonus_ralley_disable_notify', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0');
586 addExtensionChangeTableColumnSql('user_data', 'bonus_ral_notify', 'bonus_rallley_notify', 'INT(20)', 'UNSIGNED NOT NULL DEFAULT 0');
589 setExtensionUpdateNotes("Umbenannt nach neuer Konvention (bitte Einstellungen kontrollieren).");
592 case '0.9.3': // SQL queries for v0.9.3
593 addExtensionChangeTableColumnSql('user_data', 'bonus_ralley_enable_notify', 'bonus_rallye_enable_notify', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0');
594 addExtensionChangeTableColumnSql('user_data', 'bonus_ralley_disable_notify', 'bonus_rallye_disable_notify', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0');
595 addExtensionDropTableColumnSql('user_data', 'bonus_ralley_notify');
598 setExtensionUpdateNotes("Typos gefixt.");
601 case '0.9.4': // SQL queries for v0.9.4
602 addExtensionChangeTableColumnSql('user_links', 'bonus_id', 'bonus_id', 'BIGINT(20) UNSIGNED NULL DEFAULT NULL');
603 addExtensionSql('UPDATE `{?_MYSQL_PREFIX?}_user_links` SET `bonus_id`=NULL WHERE `bonus_id`=0');
606 setExtensionUpdateNotes("Konfliktierende SQL-Befehle aus ext-user verschoben.");
609 case '0.9.5': // SQL queries for v0.9.5
611 registerFilter(__FILE__, __LINE__, 'generate_admin_mail_links', 'GENERATE_BONUS_MAIL_LINKS', FALSE, TRUE, isExtensionDryRun());
614 setExtensionUpdateNotes("Filter zum Generieren von Admin-Links für Bonus-Mails hinzugefügt.");
617 case '0.9.6': // SQL queries for v0.9.6
618 // Register points data
619 registerExtensionPointsData('monthly_bonus', 'points', 'LOCKED', 'DIRECT');
622 setExtensionUpdateNotes("Monatlicher Bonus wird nun über die Tabelle <strong>{OPEN_CONFIG}_MYSQL_PREFIX{CLOSE_CONFIG}_points_data</strong> verwaltet.");
625 case '0.9.7': // SQL queries for v0.9.7
626 addConfigChangeSql('bonus_order_yn', 'include_bonus_order', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
627 addConfigChangeSql('bonus_ref_yn' , 'include_bonus_ref' , "ENUM('Y','N') NOT NULL DEFAULT 'N'");
628 addConfigChangeSql('bonus_stats_yn', 'include_bonus_stats', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
629 addConfigChangeSql('bonus_login_yn', 'include_bonus_login', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
630 addConfigChangeSql('bonus_click_yn', 'include_bonus_click', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
633 registerFilter(__FILE__, __LINE__, 'add_bonus_points_user_columns', 'ADD_BONUS_POINTS_USER_COLUMNS', FALSE, TRUE, isExtensionDryRun());
635 // Update notes (these will be set as task text!)
636 setExtensionUpdateNotes("Konfigurationseinträge umbenannt.");
639 case '0.9.8': // SQL queries for v0.9.8
641 registerFilter(__FILE__, __LINE__, 'pre_user_registration', 'BONUS_USER_REGISTRATION_ADD_SQL_COLUMNS', FALSE, TRUE, isExtensionDryRun());
643 // Add dependency to ext-register
644 addExtensionDependency('register');
646 // Update notes (these will be set as task text!)
647 setExtensionUpdateNotes("Filter zum Hinzufügen von SQL-Spalten bei der Mitgliederanmeldung.");
650 case '0.9.9': // SQL queries for v0.9.9
652 registerFilter(__FILE__, __LINE__, 'init', 'SEND_BONUS_NOTIFICATIONS', FALSE, TRUE, isExtensionDryRun());
654 // Update notes (these will be set as task text!)
655 setExtensionUpdateNotes("Filter zum Hinzufügen von SQL-Spalten bei der Mitgliederanmeldung.");
658 case '1.0.0': // SQL queries for v1.0.0
659 addExtensionChangeTableColumnSql('bonus_turbo', 'mail_id' , 'mail_id', 'UNSIGNED NULL DEFAULT NULL');
660 addExtensionChangeTableColumnSql('bonus_turbo', 'bonus_id', 'mail_id', 'UNSIGNED NULL DEFAULT NULL');
663 registerFilter(__FILE__, __LINE__, 'config_userid_exclusion_sql', 'EXLCUDE_BONUS_USERID', FALSE, TRUE, isExtensionDryRun());
665 // Update notes (these will be set as task text!)
666 setExtensionUpdateNotes("Filter zum Ausschließen des konfigurierten Mitgliedaccounts.");
671 case 'modify': // When the extension got modified
674 case 'test': // For testing purposes
677 case 'init': // Do stuff when extension is initialized
680 default: // Unknown extension mode
681 reportBug(__FILE__, __LINE__, sprintf("Unknown extension mode %s in extension %s detected.", getExtensionMode(), getCurrentExtensionName()));