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://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.4');
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', '0.9.4'));
49 switch (getExtensionMode()) {
50 case 'register': // Do stuff when installation is running (modules.php?module=admin is called)
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','N','Y',7);
57 addDropTableSql('bonus');
58 addExtensionSql("CREATE TABLE `{?_MYSQL_PREFIX?}_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,
74 ) ENGINE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT = 'Bonus mails'");
75 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_links` MODIFY `link_type` ENUM('NORMAL','BONUS') NOT NULL DEFAULT 'NORMAL'");
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`)");
79 // Run this SQL when html_mail extension is installed
80 if (isExtensionActive('html_mail')) {
81 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_bonus` ADD `html_msg` ENUM('Y','N') NOT NULL DEFAULT 'N'");
85 case 'remove': // Do stuff when removing extension
86 // SQL commands to run
87 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `what` IN ('bonus','config_bonus','send_bonus','list_bonus','list_notifications')");
88 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_member_menu` WHERE `what`='bonus' LIMIT 1");
89 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_guest_menu` WHERE `action`='bonus'");
90 addDropTableSql('bonus');
91 addDropTableSql('bonus_urls');
92 addDropTableSql('bonus_customer');
93 addDropTableSql('bonus_turbo');
96 unregisterFilter(__FUNCTION__, __LINE__, 'member_login_check', 'ADD_LOGIN_BONUS', true, isExtensionDryRun());
99 case 'activate': // Do stuff when admin activates this extension
100 // SQL commands to run
101 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `visible`='Y', `locked`='N' WHERE `what`='bonus' LIMIT 1");
102 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_guest_menu` SET `visible`='Y', `locked`='N' WHERE `action`='bonus' LIMIT 1");
103 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_mod_reg` SET `locked`='N', `hidden`='N', `admin_only`='N', `mem_only`='N' WHERE `module`='show_bonus' LIMIT 1");
106 case 'deactivate': // Do stuff when admin deactivates this extension
107 // SQL commands to run
108 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `visible`='N', `locked`='Y' WHERE `what`='bonus' LIMIT 1");
109 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_guest_menu` SET `visible`='N', `locked`='Y' WHERE `action`='bonus' LIMIT 1");
110 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_mod_reg` SET `locked`='Y' WHERE `module`='show_bonus' LIMIT 1");
113 case 'update': // Update an extension
114 switch (getCurrentExtensionVersion()) {
115 case '0.1.6': // SQL queries for v0.1.6
116 // Update notes (these will be set as task text!)
117 setExtensionUpdateNotes("Paid-Links wurden verschoben in die Erweiterung <strong>sponsor</strong>.");
120 case '0.2.0': // SQL queries for v0.2.0
121 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_bonus` SET `target_send`=`mails_sent` WHERE `target_send`=0 AND `mails_sent`>0 AND `receivers` != ''");
123 // Update notes (these will be set as task text!)
124 setExtensionUpdateNotes("Behebt ein Versand-Problem mit den Bonus-Mails. Es wurde die Spalte target_send nicht beim Einfügen der Buchung gessetzt.");
127 case '0.2.1': // SQL queries for v0.2.1
128 // Add extension dependency because of the update command
129 addExtensionDependency('sql_patches');
131 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `login_bonus` FLOAT(20,3) NOT NULL DEFAULT 10.000");
132 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `turbo_bonus` FLOAT(20,3) NOT NULL DEFAULT 100.000");
133 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `login_timeout` BIGINT(20) UNSIGNED NOT NULL DEFAULT {?ONE_DAY?}");
134 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `turbo_rates` VARCHAR(255) NOT NULL DEFAULT '50;20;10'");
135 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_ranks` TINYINT(3) UNSIGNED NOT NULL DEFAULT 10");
136 // Use actual month for this update
137 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD `login_bonus` FLOAT(20,3) NOT NULL DEFAULT 0.000");
138 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD `turbo_bonus` FLOAT(20,3) NOT NULL DEFAULT 0.000");
140 // Update notes (these will be set as task text!)
141 setExtensionUpdateNotes("Login-Bonus und Turbo-Klick-Bonus intergriert.");
144 case '0.2.2': // SQL queries for v0.2.2
145 addDropTableSql('bonus_turbo');
146 addExtensionSql("CREATE TABLE `{?_MYSQL_PREFIX?}_bonus_turbo` (
147 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
148 `userid` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
149 `mail_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
150 `bonus_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
151 `level` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
152 `points` FLOAT(20,3) NOT NULL DEFAULT '0.000',
153 `timemark` VARCHAR(32) NOT NULL DEFAULT 0,
155 INDEX `mail_id` (`mail_id`),
156 INDEX `bonus_id` (`bonus_id`),
157 INDEX `userid` (`userid`)
158 ) ENGINE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci");
160 // Update notes (these will be set as task text!)
161 setExtensionUpdateNotes("Turbo-Bonus wird in Tabelle gezählt für Anzeige, wer alles bereits geklickt hat und welchen Platz er gemacht hat.");
164 case '0.2.3': // SQL queries for v0.2.3
165 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_member_menu` WHERE `what`='bonus' LIMIT 1");
166 addMemberMenuSql('main','bonus','Aktiv-Rallye','N','Y',7);
168 // Update notes (these will be set as task text!)
169 setExtensionUpdateNotes("Aktiv-Rallye mit Klick-Vergütung hinzugefügt.");
172 case '0.2.4': // SQL queries for v0.2.4
173 // Update notes (these will be set as task text!)
174 setExtensionUpdateNotes("Wegen des Theme-Supportes hat sich die URL zur CSS-Datei geändert.");
177 case '0.2.5': // SQL queries for v0.2.5
178 addDropTableSql('bonus_urls');
179 addDropTableSql('bonus_customer');
181 // Update notes (these will be set as task text!)
182 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.");
185 case '0.2.6': // SQL queries for v0.2.6
186 // Update notes (these will be set as task text!)
187 setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.");
190 case '0.2.7': // SQL queries for v0.2.7
191 // Update notes (these will be set as task text!)
192 setExtensionUpdateNotes("Turbo-Bonus klappt wieder (dies sind {?POINTS?} die an die schnellsten Klicker vergütet werden!)");
195 case '0.2.8': // SQL queries for v0.2.8
196 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_bonus` SET `timestamp`=0 WHERE `timestamp`='0000000000'");
197 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_bonus_turbo` CHANGE `points` `points` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
198 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` CHANGE `turbo_bonus` `turbo_bonus` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
199 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` CHANGE `login_bonus` `login_bonus` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
200 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` CHANGE `turbo_bonus` `turbo_bonus` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
201 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` CHANGE `login_bonus` `login_bonus` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
203 // Update notes (these will be set as task text!)
204 setExtensionUpdateNotes("5 Nachkommastellen implementiert");
207 case '0.2.9': // SQL queries for v0.2.9
208 // Update notes (these will be set as task text!)
209 setExtensionUpdateNotes("Problem mit Speicherung der Einstellungen beseitigt.");
212 case '0.3.0': // SQL queries for v0.3.0
213 // Update notes (these will be set as task text!)
214 setExtensionUpdateNotes("Menüpunkte im Gast-/Mitgliedsbereich können nicht mehr aufgerufen werden, wenn die Erweiterung deaktiviert ist.");
217 case '0.3.1': // SQL queries for v0.3.1
218 // Update notes (these will be set as task text!)
219 setExtensionUpdateNotes("Sicherheitsupdate am Script <u>show_bonus.php</u> durchgeführt.");
222 case '0.3.2': // SQL queries for v0.3.2
223 // Update notes (these will be set as task text!)
224 setExtensionUpdateNotes("Design "Solid-Business" eingebaut.");
227 case '0.3.3': // SQL queries for v0.3.3
228 // Update notes (these will be set as task text!)
229 setExtensionUpdateNotes("Seit <strong>Patch 340</strong> überflüssige HTML-Tags entfernt.");
232 case '0.3.4': // SQL queries for v0.3.4
233 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);
235 // Update notes (these will be set as task text!)
236 setExtensionUpdateNotes("Link <u>Aktiv-Rallye-Teilnehmer</u> hinzugefügt, inklusive manuelle Vorbereitung der Vergütung.");
239 case '0.3.5': // SQL queries for v0.3.5
240 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_mode` ENUM('UID','JACKPOT','ADD') NOT NULL DEFAULT 'ADD'");
241 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_userid` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
243 // Update notes (these will be set as task text!)
244 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.");
247 case '0.3.6': // SQL queries for v0.3.6
248 // Update notes (these will be set as task text!)
249 setExtensionUpdateNotes("In der Admin-Liste werden nur aktive Mitglieder gelistet und zudem die späteste Zeitmarke für die Auswertung angezeigt.");
252 case '0.3.7': // SQL queries for v0.3.7
253 // Update notes (these will be set as task text!)
254 setExtensionUpdateNotes("Mitglieder-Account auwählbar, von dem die {?POINTS?} für den Aktiv- und Login-Bonus abgebucht werden.");
257 case '0.3.8': // SQL queries for v0.3.8
258 // Update notes (these will be set as task text!)
259 setExtensionUpdateNotes("Ausgabe des generierten HTML-Codes nach <u>inc/footer.php</u> verlagert.");
262 case '0.3.9': // SQL queries for v0.3.9
263 // Update notes (these will be set as task text!)
264 setExtensionUpdateNotes("Fehlende Variablen gefixt.");
267 case '0.4.0': // SQL queries for v0.4.0
268 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_timeout` BIGINT(20) UNSIGNED NOT NULL DEFAULT ".(getOneDay()*7)."");
269 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_lines` BIGINT(20) UNSIGNED NOT NULL DEFAULT 10");
271 // Update notes (these will be set as task text!)
272 setExtensionUpdateNotes("Automatisches Löschen von Turbo-Bonus-Zeilen ({?_MYSQL_PREFIX?}_bonus_turbo) und begrenzte Anzahl von Einträgen hinzugefügt.");
275 case '0.4.1': // SQL queries for v0.4.1
276 // Update notes (these will be set as task text!)
277 setExtensionUpdateNotes("Vergütung des Aktiv-Bonus repariert.");
280 case '0.4.2': // SQL queries for v0.4.2
281 // Update notes (these will be set as task text!)
282 setExtensionUpdateNotes("Admin-Bereich / Aktiv-Teilnehmer auflisten: Problem mit Konstante __AUTOPURGE_TIMEOUT und das Template <u>admin_list_bonus.tpl</u> korregiert.");
285 case '0.4.3': // SQL queries for v0.4.3
286 // Update notes (these will be set as task text!)
287 setExtensionUpdateNotes("Verbesserung des Versandes von HTML-Bonus-Mails.");
290 case '0.4.4': // SQL queries for v0.4.4
291 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_order` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 15.00000");
292 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_ref` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 100.00000");
293 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_stats` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT '5.00000'");
294 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_active` ENUM('Y','N') NOT NULL DEFAULT 'Y'");
295 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD `bonus_order` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
296 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD `bonus_ref` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
297 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD `bonus_stats` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
299 // Update notes (these will be set as task text!)
300 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.");
303 case '0.4.5': // SQL queries for v0.4.5
304 // Update notes (these will be set as task text!)
305 setExtensionUpdateNotes("Abzug vom Bonus-Account integriert.");
308 case '0.4.6': // SQL queries for v0.4.6
309 // Update notes (these will be set as task text!)
310 setExtensionUpdateNotes("Rank 2 bekommt nun auch seine {?POINTS?} gutgeschrieben.");
313 case '0.4.7': // SQL queries for v0.4.7
314 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_user_data` SET `login_bonus`=0, `turbo_bonus`=0, `bonus_ref`=0, `bonus_order`=0, `bonus_stats`=0");
316 // Update notes (these will be set as task text!)
317 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.");
320 case '0.4.8': // SQL queries for v0.4.8
321 // Update notes (these will be set as task text!)
322 setExtensionUpdateNotes("In <u>inc/monthly_bonus.php</u> fehlte ein Punkt; Fehler besseitigt.");
325 case '0.4.9': // SQL queries for v0.4.9
326 // Update notes (these will be set as task text!)
327 setExtensionUpdateNotes("Login-Bonus wird mit angezeigt.");
330 case '0.5.0': // SQL queries for v0.5.0
331 // Update notes (these will be set as task text!)
332 setExtensionUpdateNotes("Problem mit <strong>is_hundred</strong> beim täglichen Reset beseitigt.");
335 case '0.5.1': // SQL queries for v0.5.1
336 // Update notes (these will be set as task text!)
337 setExtensionUpdateNotes("Problem mit <strong>bonus_stats / Zeile 31</strong> beim täglichen Reset beseitigt.");
340 case '0.5.2': // SQL queries for v0.5.2
341 // Update notes (these will be set as task text!)
342 setExtensionUpdateNotes("Wörter <strong>{?mt_word?}</strong>, <strong>{?mt_word2?}</strong> und <strong>{?mt_word3?}</strong> sind austauschbar.");
345 case '0.5.3': // SQL queries for v0.5.3
346 // Update notes (these will be set as task text!)
347 setExtensionUpdateNotes("Speichern der Aktiv-{?POINTS?} für Platz 2 bis <strong>x</strong> korregiert.");
350 case '0.5.4': // SQL queries for v0.5.4
351 // Update notes (these will be set as task text!)
352 setExtensionUpdateNotes("Variablenfehler in <strong>inc/monthly_bonus.php</strong> behoben.");
355 case '0.5.5': // SQL queries for v0.5.5
356 // Update notes (these will be set as task text!)
357 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.");
360 case '0.5.6': // SQL queries for v0.5.6
363 if (strlen($curr) == 1) $curr = '0' . $curr;
364 if ($curr == '00') $curr = '12';
366 // Generate timemark...
367 $mark = mktime(0, 0, 0, $curr, 1, getYear());
369 // Update accounts which are not active last months
370 addExtensionSql("UPDATE
371 `{?_MYSQL_PREFIX?}_user_data`
379 `last_online` < ".$mark."
383 // Update notes (these will be set as task text!)
384 setExtensionUpdateNotes("Ein weiterer Scriptfehler hat nur die Gewinner aus der Aktiv-Rallye genommen. Die anderen Mitglieder sind somit "nach oben gerutsch".");
387 case '0.5.7': // SQL queries for v0.5.7
390 case '0.5.8': // SQL queries for v0.5.8
391 // Update notes (these will be set as task text!)
392 setExtensionUpdateNotes("Problem mit <strong>is_hundred</strong> beim täglichen Reset endlich beseitigt.");
395 case '0.5.9': // SQL queries for v0.5.9
396 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.");
399 case '0.6.0': // SQL queries for v0.6.0
400 setExtensionUpdateNotes("SQL-Fehlermeldung in <strong>inc/monthly_bonus.php</strong> beseitigt.");
403 case '0.6.1': // SQL queries for v0.6.1
404 setExtensionUpdateNotes("Versand von Bonus-Mails repariert.");
407 case '0.6.2': // SQL queries for v0.6.2
408 setExtensionUpdateNotes("Löschen von bereits gelöschten Mails wird nun abgelehnt.");
411 case '0.6.3': // SQL queries for v0.6.3
412 setExtensionUpdateNotes("Abspeichern von Einstellungen repariert.");
415 case '0.6.4': // SQL queries for v0.6.4
416 // Update notes (these will be set as task text!)
417 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.");
420 case '0.6.5': // SQL queries for v0.6.5
421 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_stats` ADD `bonus_stats` ENUM('Y','N') NOT NULL DEFAULT 'N'");
423 // Update notes (these will be set as task text!)
424 setExtensionUpdateNotes("Fehler mit bonus_stats beseitigt.");
427 case '0.6.6': // SQL queries for v0.6.6
428 setExtensionUpdateNotes("Template-Fehler beseitigt im Admin-Bereich.");
431 case '0.6.7': // SQL queries for v0.6.7
432 setExtensionUpdateNotes("Vorbereitung auf die neue Mediendaten v0.0.4.");
435 case '0.6.8': // SQL queries for v0.6.8
436 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_bonus` SET `data_type`='SEND' WHERE `data_type` != 'SEND' AND `data_type` != 'DELETED' AND `receivers`='' AND `target_send`=0");
438 // Update notes (these will be set as task text!)
439 setExtensionUpdateNotes("Eingegebene Anzahl auszusendener Bonus-Mails wurde bei der Empfänderauswahl nicht berücksichtigt. Zudem wird jetzt das eingestellte Auswahlverfahren mitberücksichtigt.");
442 case '0.6.9': // SQL queries for v0.6.9
443 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_order_yn` ENUM('Y','N') NOT NULL DEFAULT 'N'");
444 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_ref_yn` ENUM('Y','N') NOT NULL DEFAULT 'N'");
445 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_stats_yn` ENUM('Y','N') NOT NULL DEFAULT 'N'");
446 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_login_yn` ENUM('Y','N') NOT NULL DEFAULT 'N'");
447 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_click_yn` ENUM('Y','N') NOT NULL DEFAULT 'Y'");
449 // Update notes (these will be set as task text!)
450 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).");
453 case '0.7.0': // SQL queries for v0.7.0
454 setExtensionUpdateNotes("Zuschaltung von weiteren Bonis wird jetzt auch bei der Auflistung der mitmachenden Mitglieder im Mitgliedsbereich beachtet.");
457 case '0.7.1': // SQL queries for v0.7.1
458 setExtensionUpdateNotes("Im Adminbereich wird nun ebenfalls die Zuschaltung von weiteren Bonis berücksichtigt. Zudem wird der Gesamtbonus an alle Mitglieder errechnet und auch angezeigt.");
461 case '0.7.2': // SQL queries for v0.7.2
462 setExtensionUpdateNotes("Die Vergütung der erreichten 100%-Klickrate war noch wegen Programmierungen am Script auskommentiert. Sorry!");
465 case '0.7.3': // SQL queries for v0.7.3
466 setExtensionUpdateNotes("Gutgeschriebene Bonus-{?POINTS?} werden nach Deaktivierung der Aktiv-Rallye gelöscht.");
469 case '0.7.4': // SQL queries for v0.7.4
470 setExtensionUpdateNotes("Rechtlichen Hinweis im Mitgliedsbereich vergessen. (<strong>member_bonus.tpl</strong>)");
473 case '0.7.5': // SQL queries for v0.7.5
474 setExtensionUpdateNotes("Im Admin-Bereich Hinweis hinzugefügt, wenn Aktiv-Rallye inaktiv ist. Bitte Script inc/monthly_bonus.php löschen!");
477 case '0.7.6': // SQL queries for v0.7.6
478 setExtensionUpdateNotes("Auswahlmechanismus der Gewinner repariert. Trotz Hinzuschalten von weiteren zu berücksichtigen Boni wurden diese bei der Sortierung der Mitglieder-Ids nicht berücksichtig.");
481 case '0.7.7': // SQL queries for v0.7.7
482 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_en_notify` ENUM('Y','N') NOT NULL DEFAULT 'N'");
483 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_di_notify` ENUM('Y','N') NOT NULL DEFAULT 'N'");
484 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_new_mem_notify` ENUM('Y','N') NOT NULL DEFAULT 'N'");
485 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_notify_points` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
486 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_notify_wait` BIGINT(20) UNSIGNED NOT NULL DEFAULT '30'");
487 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD `bonus_ral_en_notify` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
488 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD `bonus_ral_di_notify` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
489 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD `bonus_ral_notify` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
491 // Update notes (these will be set as task text!)
492 setExtensionUpdateNotes("Optionale automatische Benachrichtigung über aktivierte und/oder deaktivierte Aktiv-Rallye einstellbar.");
495 case '0.7.8': // SQL queries for v0.7.8
496 // Update notes (these will be set as task text!)
497 setExtensionUpdateNotes("Fehler im täglichen Reset beseitigt.");
500 case '0.7.9': // SQL queries for v0.7.9
501 setExtensionUpdateNotes("Dollarzeichen fehlte in <strong>inc/daily/daily_bonus.php</strong>, Zeile 39");
504 case '0.8.0': // SQL queries for v0.8.0
505 setExtensionUpdateNotes("De-/Aktivieren des mit dieser Erweiterung verknüpften Modules eingebunden.");
508 case '0.8.1': // SQL queries for v0.8.1
509 setExtensionUpdateNotes("Bei {?POINTS?}-Gleichstand wird als nächstes nach wer als letztes Online war umsortiert.");
512 case '0.8.2': // SQL queries for v0.8.2
513 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD bonus_include_own ENUM('Y','N') NOT NULL DEFAULT 'N'");
514 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_bonus` ADD `is_notify` ENUM('Y','N') NOT NULL DEFAULT 'N'");
516 // Update notes (these will be set as task text!)
517 setExtensionUpdateNotes("Eigene Mitglieder-Ids sind von der Aktiv-Rallye nun ausschliessbar. Benachrichtigungsmails sind von Aktiv-Rallye ausgeschlossen.");
520 case '0.8.3': // SQL queries for v0.8.3
521 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `action`='rals', `sort`=2, `title`='Aktiv-Rallye' WHERE `what`='bonus' LIMIT 1");
523 // Update notes (these will be set as task text!)
524 setExtensionUpdateNotes("Mitgliedsmenü komplett umgebaut.");
527 case '0.8.4': // SQL queries for v0.8.4
528 setExtensionUpdateNotes("Ladeproblem bei nicht installierter Erweiterung <strong>cache</strong> gefixt.");
531 case '0.8.5': // SQL queries for v0.8.5
532 setExtensionUpdateNotes("CSS-Klassenname gefixt in Templates.");
535 case '0.8.6': // SQL queries for v0.8.6
536 setExtensionUpdateNotes("Fehlerhinweis bei deaktivierter Erweiterung verbessert.");
539 case '0.8.7': // SQL queries for v0.8.7
540 addAdminMenuSql('email','list_notifications','Benachrichtigungen','Listet alle an die Mitglieder ausgesandten Benachrichtigungen auf.', 10);
543 setExtensionUpdateNotes("Benachrichtigungsmails für z.B. Bettel- oder Aktiv-Rallye werden nun angezeigt.");
546 case '0.8.8': // SQL queries for v0.8.8
547 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_stats` ADD `bonus_stats_active` ENUM('Y','N') NOT NULL DEFAULT 'N'");
550 setExtensionUpdateNotes("Benachrichtigungsmails für z.B. Bettel- oder Aktiv-Rallye werden nun angezeigt.");
553 case '0.8.9': // SQL queries for v0.8.9
554 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);
557 setExtensionUpdateNotes("Benachrichtigungsmails für z.B. Bettel- oder Aktiv-Rallye werden nun angezeigt.");
560 case '0.9.0': // SQL queries for v0.9.0
562 registerFilter('member_login_check', 'ADD_LOGIN_BONUS', false, true, isExtensionDryRun());
565 setExtensionUpdateNotes("Filter hinzugefügt der den Login-Bonus aktualisiert (bzw. soll) (internes TODO).");
568 case '0.9.1': // SQL queries for v0.9.1
569 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` CHANGE `bonus_en_notify` `bonus_enable_notify` ENUM('Y','N') NOT NULL DEFAULT 'N'");
570 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` CHANGE `bonus_di_notify` `bonus_disable_notify` ENUM('Y','N') NOT NULL DEFAULT 'N'");
571 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` CHANGE `bonus_new_mem_notify` `bonus_new_member_notify` ENUM('Y','N') NOT NULL DEFAULT 'N'");
574 setExtensionUpdateNotes("Umbenannt nach neuer Konvention (bitte Einstellungen kontrollieren).");
577 case '0.9.2': // SQL queries for v0.9.2
578 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` CHANGE `bonus_ral_en_notify` `bonus_ralley_enable_notify` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
579 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` CHANGE `bonus_ral_di_notify` `bonus_ralley_disable_notify` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
580 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` CHANGE `bonus_ral_notify` `bonus_rallley_notify` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
583 setExtensionUpdateNotes("Umbenannt nach neuer Konvention (bitte Einstellungen kontrollieren).");
586 case '0.9.3': // SQL queries for v0.9.3
587 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` CHANGE `bonus_ralley_enable_notify` `bonus_rallye_enable_notify` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
588 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` CHANGE `bonus_ralley_disable_notify` `bonus_rallye_disable_notify` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
589 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` DROP `bonus_ralley_notify` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
592 setExtensionUpdateNotes("Typos gefixt.");
595 case '0.9.4': // SQL queries for v0.9.4
596 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_links` CHANGE `bonus_id` `bonus_id` BIGINT( 20 ) UNSIGNED NULL DEFAULT NULL");
597 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_user_links` SET `bonus_id`=NULL WHERE `bonus_id`=0");
600 setExtensionUpdateNotes("Konfliktierende SQL-Befehle aus ext-user verschoben.");
605 case 'modify': // When the extension got modified
608 case 'test': // For testing purposes
611 case 'init': // Do stuff when extension is initialized
612 // Check for bonus rallye is active and send mails out
613 if ((isBonusRallyeActive()) && (isBonusNewMemberNotifyEnabled())) {
614 // Include file for sending out mails
615 addIncludeToPool('notify', 'inc/mails/bonus_mails.php');
619 default: // Unknown extension mode
620 logDebugMessage(__FILE__, __LINE__, sprintf("Unknown extension mode %s in extension %s detected.", getExtensionMode(), getCurrentExtensionName()));