2 /************************************************************************
3 * Mailer v0.2.1-FINAL Start: 04/04/2004 *
4 * =================== Last change: 06/13/2005 *
6 * -------------------------------------------------------------------- *
7 * File : ext-bonus.php *
8 * -------------------------------------------------------------------- *
9 * Short description : Bonus pages *
10 * -------------------------------------------------------------------- *
11 * Kurzbeschreibung : Bonus-Seiten *
12 * -------------------------------------------------------------------- *
15 * $Tag:: 0.2.1-FINAL $ *
17 * Needs to be in all Files and every File needs "svn propset *
18 * svn:keywords Date Revision" (autoprobset!) at least!!!!!! *
19 * -------------------------------------------------------------------- *
20 * Copyright (c) 2003 - 2009 by Roland Haeder *
21 * For more information visit: http://www.mxchange.org *
23 * This program is free software; you can redistribute it and/or modify *
24 * it under the terms of the GNU General Public License as published by *
25 * the Free Software Foundation; either version 2 of the License, or *
26 * (at your option) any later version. *
28 * This program is distributed in the hope that it will be useful, *
29 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
30 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
31 * GNU General Public License for more details. *
33 * You should have received a copy of the GNU General Public License *
34 * along with this program; if not, write to the Free Software *
35 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, *
37 ************************************************************************/
39 // Some security stuff...
40 if (!defined('__SECURITY')) {
44 // Version of this extension
45 setThisExtensionVersion('0.9.0');
47 // Version history array (add more with , '0.1.0' and so on)
48 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'));
50 switch (getExtensionMode()) {
51 case 'register': // Do stuff when installation is running (modules.php?module=admin is called)
52 // SQL commands to run
53 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);
54 addMemberMenuSql('main','bonus','Bonuspunkte','N','Y',7);
55 addExtensionSql("DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_bonus`");
56 addExtensionSql("CREATE TABLE `{?_MYSQL_PREFIX?}_bonus` (
57 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
58 `cat_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
59 `subject` VARCHAR(255) NOT NULL DEFAULT '',
60 `text` LONGTEXT NOT NULL,
61 `receivers` LONGTEXT NOT NULL,
62 `points` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
63 `time` TINYINT(3) UNSIGNED NOT NULL DEFAULT 0,
64 `data_type` ENUM('NEW','QUEUE','SEND') NOT NULL DEFAULT 'NEW',
65 `timestamp` VARCHAR(10) NOT NULL DEFAULT 0,
66 `url` VARCHAR(255) NOT NULL DEFAULT '',
67 `target_send` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
68 `clicks` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
69 `mails_sent` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
72 )TYPE={?_TABLE_TYPE?} COMMENT='Bonus mails'");
73 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_links` MODIFY `link_type` ENUM('NORMAL','BONUS') NOT NULL DEFAULT 'NORMAL'");
74 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_links` ADD `bonus_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
75 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_links` ADD INDEX (`bonus_id`)");
77 // Run this SQL when html or html_mail extension is installed
78 if (isExtensionActive('html_mail')) 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 addExtensionSql("DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_bonus`");
87 addExtensionSql("DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_bonus_urls`");
88 addExtensionSql("DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_bonus_customer`");
89 addExtensionSql("DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_bonus_turbo`");
92 unregisterFilter('member_login_check', 'ADD_LOGIN_BONUS', true, getExtensionDryRun());
95 case 'activate': // Do stuff when admin activates this extension
96 // SQL commands to run
97 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `visible`='Y', `locked`='N' WHERE `what`='bonus' LIMIT 1");
98 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_guest_menu` SET `visible`='Y', `locked`='N' WHERE `action`='bonus' LIMIT 1");
99 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_mod_reg` SET `locked`='N', `hidden`='N', `admin_only`='N', `mem_only`='N' WHERE `module`='show_bonus' LIMIT 1");
102 case 'deactivate': // Do stuff when admin deactivates this extension
103 // SQL commands to run
104 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `visible`='N', `locked`='Y' WHERE `what`='bonus' LIMIT 1");
105 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_guest_menu` SET `visible`='N', `locked`='Y' WHERE `action`='bonus' LIMIT 1");
106 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_mod_reg` SET `locked`='Y' WHERE `module`='show_bonus' LIMIT 1");
109 case 'update': // Update an extension
110 switch (getCurrentExtensionVersion()) {
111 case '0.1.6': // SQL queries for v0.1.6
112 // Update notes (these will be set as task text!)
113 setExtensionUpdateNotes("Paid-Links wurden verschoben in die Erweiterung <strong>sponsor</strong>.");
116 case '0.2.0': // SQL queries for v0.2.0
117 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_bonus` SET `target_send`=`mails_sent` WHERE `target_send`=0 AND `mails_sent`>0 AND `receivers` != ''");
119 // Update notes (these will be set as task text!)
120 setExtensionUpdateNotes("Behebt ein Versand-Problem mit den Bonus-Mails. Es wurde die Spalte target_send nicht beim Einfügen der Buchung gessetzt. Bitte laden Sie sich dazu - wenn nicht bereits geschehen - alle Patches bis mindestens Patch 240 unter <strike>Updates prüfen</strike> herunter.");
123 case '0.2.1': // SQL queries for v0.2.1
124 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `login_bonus` FLOAT(20,3) NOT NULL DEFAULT 10.000");
125 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `turbo_bonus` FLOAT(20,3) NOT NULL DEFAULT 100.000");
126 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `login_timeout` BIGINT(20) UNSIGNED NOT NULL DEFAULT ".getConfig('ONE_DAY')."");
127 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `turbo_rates` VARCHAR(255) NOT NULL DEFAULT '50;20;10'");
128 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_ranks` TINYINT(3) UNSIGNED NOT NULL DEFAULT 10");
129 // Use actual month for this update
130 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD `login_bonus` FLOAT(20,3) NOT NULL DEFAULT 0.000");
131 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD `turbo_bonus` FLOAT(20,3) NOT NULL DEFAULT 0.000");
132 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_extensions` SET `ext_has_css`='Y' WHERE `ext_name`='bonus' AND `ext_has_css`='N' LIMIT 1");
134 // Update notes (these will be set as task text!)
135 setExtensionUpdateNotes("Login-Bonus und Turbo-Klick-Bonus intergriert.");
138 case '0.2.2': // SQL queries for v0.2.2
139 addExtensionSql("DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_bonus_turbo`");
140 addExtensionSql("CREATE TABLE `{?_MYSQL_PREFIX?}_bonus_turbo` (
141 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
142 `userid` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
143 `mail_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
144 `bonus_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
145 `level` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
146 `points` FLOAT(20,3) NOT NULL DEFAULT '0.000',
147 `timemark` VARCHAR(32) NOT NULL DEFAULT 0,
149 INDEX `mail_id` (`mail_id`),
150 INDEX `bonus_id` (`bonus_id`),
151 INDEX `userid` (`userid`)
152 ) TYPE={?_TABLE_TYPE?}");
154 // Update notes (these will be set as task text!)
155 setExtensionUpdateNotes("Turbo-Bonus wird in Tabelle gezählt für Anzeige, wer alles bereits geklickt hat und welchen Platz er gemacht hat.");
158 case '0.2.3': // SQL queries for v0.2.3
159 addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_member_menu` WHERE `what`='bonus' LIMIT 1");
160 addMemberMenuSql('main','bonus','Aktiv-Rallye','N','Y',7);
162 // Update notes (these will be set as task text!)
163 setExtensionUpdateNotes("Aktiv-Rallye mit Klick-Vergütung hinzugefügt.");
166 case '0.2.4': // SQL queries for v0.2.4
167 // Update notes (these will be set as task text!)
168 setExtensionUpdateNotes("Wegen des Theme-Supportes hat sich die URL zur CSS-Datei geändert.");
171 case '0.2.5': // SQL queries for v0.2.5
172 addExtensionSql("DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_bonus_urls`");
173 addExtensionSql("DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_bonus_customer`");
175 // Update notes (these will be set as task text!)
176 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.");
179 case '0.2.6': // SQL queries for v0.2.6
180 // Update notes (these will be set as task text!)
181 setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.");
184 case '0.2.7': // SQL queries for v0.2.7
185 // Update notes (these will be set as task text!)
186 setExtensionUpdateNotes("Turbo-Bonus klappt wieder (dies sind {?POINTS?} die an die schnellsten Klicker vergütet werden!)");
189 case '0.2.8': // SQL queries for v0.2.8
190 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_bonus` SET `timestamp`=0 WHERE `timestamp`='0000000000'");
191 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_bonus_turbo` CHANGE `points` `points` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
192 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` CHANGE `turbo_bonus` `turbo_bonus` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
193 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` CHANGE `login_bonus` `login_bonus` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
194 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` CHANGE `turbo_bonus` `turbo_bonus` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
195 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` CHANGE `login_bonus` `login_bonus` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
197 // Update notes (these will be set as task text!)
198 setExtensionUpdateNotes("5 Nachkommastellen implementiert");
201 case '0.2.9': // SQL queries for v0.2.9
202 // Update notes (these will be set as task text!)
203 setExtensionUpdateNotes("Problem mit Speicherung der Einstellungen beseitigt.");
206 case '0.3.0': // SQL queries for v0.3.0
207 // Update notes (these will be set as task text!)
208 setExtensionUpdateNotes("Menüpunkte im Gast-/Mitgliedsbereich können nicht mehr aufgerufen werden, wenn die Erweiterung deaktiviert ist.");
211 case '0.3.1': // SQL queries for v0.3.1
212 // Update notes (these will be set as task text!)
213 setExtensionUpdateNotes("Sicherheitsupdate am Script <u>show_bonus.php</u> durchgeführt.");
216 case '0.3.2': // SQL queries for v0.3.2
217 // Update notes (these will be set as task text!)
218 setExtensionUpdateNotes("Design "Solid-Business" eingebaut.");
221 case '0.3.3': // SQL queries for v0.3.3
222 // Update notes (these will be set as task text!)
223 setExtensionUpdateNotes("Seit <strong>Patch 340</strong> überflüssige HTML-Tags entfernt.");
226 case '0.3.4': // SQL queries for v0.3.4
227 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);
229 // Update notes (these will be set as task text!)
230 setExtensionUpdateNotes("Link <u>Aktiv-Rallye-Teilnehmer</u> hinzugefügt, inklusive manuelle Vorbereitung der Vergütung.");
233 case '0.3.5': // SQL queries for v0.3.5
234 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_mode` ENUM('UID','JACKPOT','ADD') NOT NULL DEFAULT 'ADD'");
235 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_userid` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
237 // Update notes (these will be set as task text!)
238 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.");
241 case '0.3.6': // SQL queries for v0.3.6
242 // Update notes (these will be set as task text!)
243 setExtensionUpdateNotes("In der Admin-Liste werden nur aktive Mitglieder gelistet und zudem die späteste Zeitmarke für die Auswertung angezeigt.");
246 case '0.3.7': // SQL queries for v0.3.7
247 // Update notes (these will be set as task text!)
248 setExtensionUpdateNotes("Mitglieder-Account auwählbar, von dem die {?POINTS?} für den Aktiv- und Login-Bonus abgebucht werden.");
251 case '0.3.8': // SQL queries for v0.3.8
252 // Update notes (these will be set as task text!)
253 setExtensionUpdateNotes("Ausgabe des generierten HTML-Codes nach <u>inc/footer.php</u> verlagert.");
256 case '0.3.9': // SQL queries for v0.3.9
257 // Update notes (these will be set as task text!)
258 setExtensionUpdateNotes("Fehlende Variablen gefixt.");
261 case '0.4.0': // SQL queries for v0.4.0
262 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_timeout` BIGINT(20) UNSIGNED NOT NULL DEFAULT ".(getConfig('ONE_DAY')*7)."");
263 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_lines` BIGINT(20) UNSIGNED NOT NULL DEFAULT 10");
265 // Update notes (these will be set as task text!)
266 setExtensionUpdateNotes("Automatisches Löschen von Turbo-Bonus-Zeilen ({?_MYSQL_PREFIX?}_bonus_turbo) und begrenzte Anzahl von Einträgen hinzugefügt.");
269 case '0.4.1': // SQL queries for v0.4.1
270 // Update notes (these will be set as task text!)
271 setExtensionUpdateNotes("Vergütung des Aktiv-Bonus repariert.");
274 case '0.4.2': // SQL queries for v0.4.2
275 // Update notes (these will be set as task text!)
276 setExtensionUpdateNotes("Admin-Bereich / Aktiv-Teilnehmer auflisten: Problem mit Konstante __AUTOPURGE_TIMEOUT und das Template <u>admin_list_bonus.tpl</u> korregiert.");
279 case '0.4.3': // SQL queries for v0.4.3
280 // Update notes (these will be set as task text!)
281 setExtensionUpdateNotes("Verbesserung des Versandes von HTML-Bonus-Mails.");
284 case '0.4.4': // SQL queries for v0.4.4
285 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_order` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 15.00000");
286 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_ref` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 100.00000");
287 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_stats` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT '5.00000'");
288 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_active` ENUM('Y','N') NOT NULL DEFAULT 'Y'");
289 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD `bonus_order` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
290 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD `bonus_ref` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
291 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD `bonus_stats` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
293 // Update notes (these will be set as task text!)
294 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.");
297 case '0.4.5': // SQL queries for v0.4.5
298 // Update notes (these will be set as task text!)
299 setExtensionUpdateNotes("Abzug vom Bonus-Account integriert.");
302 case '0.4.6': // SQL queries for v0.4.6
303 // Update notes (these will be set as task text!)
304 setExtensionUpdateNotes("Rank 2 bekommt nun auch seine {?POINTS?} gutgeschrieben.");
307 case '0.4.7': // SQL queries for v0.4.7
308 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_user_data` SET `login_bonus`=0, `turbo_bonus`=0, `bonus_ref`=0, `bonus_order`=0, `bonus_stats`=0");
310 // Update notes (these will be set as task text!)
311 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.");
314 case '0.4.8': // SQL queries for v0.4.8
315 // Update notes (these will be set as task text!)
316 setExtensionUpdateNotes("In <u>inc/monthly_bonus.php</u> fehlte ein Punkt; Fehler besseitigt.");
319 case '0.4.9': // SQL queries for v0.4.9
320 // Update notes (these will be set as task text!)
321 setExtensionUpdateNotes("Login-Bonus wird mit angezeigt.");
324 case '0.5.0': // SQL queries for v0.5.0
325 // Update notes (these will be set as task text!)
326 setExtensionUpdateNotes("Problem mit <strong>is_hundred</strong> beim täglichen Reset beseitigt.");
329 case '0.5.1': // SQL queries for v0.5.1
330 // Update notes (these will be set as task text!)
331 setExtensionUpdateNotes("Problem mit <strong>bonus_stats / Zeile 31</strong> beim täglichen Reset beseitigt.");
334 case '0.5.2': // SQL queries for v0.5.2
335 // Update notes (these will be set as task text!)
336 setExtensionUpdateNotes("Wörter <strong>{?mt_word?}</strong>, <strong>{?mt_word2?}</strong> und <strong>{?mt_word3?}</strong> sind austauschbar.");
339 case '0.5.3': // SQL queries for v0.5.3
340 // Update notes (these will be set as task text!)
341 setExtensionUpdateNotes("Speichern der Aktiv-{?POINTS?} für Platz 2 bis <strong>x</strong> korregiert.");
344 case '0.5.4': // SQL queries for v0.5.4
345 // Update notes (these will be set as task text!)
346 setExtensionUpdateNotes("Variablenfehler in <strong>inc/monthly_bonus.php</strong> behoben.");
349 case '0.5.5': // SQL queries for v0.5.5
350 // Update notes (these will be set as task text!)
351 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.");
354 case '0.5.6': // SQL queries for v0.5.6
356 $curr = date('m', time());
357 if (strlen($curr) == 1) $curr = '0' . $curr;
358 if ($curr == "00") $curr = "12";
360 // Generate timemark...
361 $mark = mktime(0, 0, 0, $curr, 1, date('Y', time()));
363 // Update accounts which are not active last months
364 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_user_data`
365 SET `turbo_bonus`=0, `login_bonus`=0, `bonus_order`=0, `bonus_stats`=0, `bonus_ref`=0
366 WHERE `last_online` < ".$mark." ORDER BY `userid` ASC");
368 // Update notes (these will be set as task text!)
369 setExtensionUpdateNotes("Ein weiterer Scriptfehler hat nur die Gewinner aus der Aktiv-Rallye genommen. Die anderen Mitglieder sind somit "nach oben gerutsch".");
372 case '0.5.7': // SQL queries for v0.5.7
375 case '0.5.8': // SQL queries for v0.5.8
376 // Update notes (these will be set as task text!)
377 setExtensionUpdateNotes("Problem mit <strong>is_hundred</strong> beim täglichen Reset endlich beseitigt.");
380 case '0.5.9': // SQL queries for v0.5.9
381 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.");
384 case '0.6.0': // SQL queries for v0.6.0
385 setExtensionUpdateNotes("SQL-Fehlermeldung in <strong>inc/monthly_bonus.php</strong> beseitigt.");
388 case '0.6.1': // SQL queries for v0.6.1
389 setExtensionUpdateNotes("Versand von Bonus-Mails repariert.");
392 case '0.6.2': // SQL queries for v0.6.2
393 setExtensionUpdateNotes("Löschen von bereits gelöschten Mails wird nun abgelehnt.");
396 case '0.6.3': // SQL queries for v0.6.3
397 setExtensionUpdateNotes("Abspeichern von Einstellungen repariert.");
400 case '0.6.4': // SQL queries for v0.6.4
401 // Update notes (these will be set as task text!)
402 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.");
405 case '0.6.5': // SQL queries for v0.6.5
406 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_stats` ADD `bonus_stats` ENUM('Y','N') NOT NULL DEFAULT 'N'");
408 // Update notes (these will be set as task text!)
409 setExtensionUpdateNotes("Fehler mit bonus_stats beseitigt.");
412 case '0.6.6': // SQL queries for v0.6.6
413 setExtensionUpdateNotes("Template-Fehler beseitigt im Admin-Bereich.");
416 case '0.6.7': // SQL queries for v0.6.7
417 setExtensionUpdateNotes("Vorbereitung auf die neue Mediendaten v0.0.4.");
420 case '0.6.8': // SQL queries for v0.6.8
421 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_bonus` SET `data_type`='SEND' WHERE `data_type` != 'SEND' AND `data_type` != 'DELETED' AND `receivers`='' AND `target_send`=0");
423 // Update notes (these will be set as task text!)
424 setExtensionUpdateNotes("Eingegebene Anzahl auszusendener Bonus-Mails wurde bei der Empfänderauswahl nicht berücksichtigt. Zudem wird jetzt das eingestellte Auswahlverfahren mitberücksichtigt.");
427 case '0.6.9': // SQL queries for v0.6.9
428 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_order_yn` ENUM('Y','N') NOT NULL DEFAULT 'N'");
429 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_ref_yn` ENUM('Y','N') NOT NULL DEFAULT 'N'");
430 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_stats_yn` ENUM('Y','N') NOT NULL DEFAULT 'N'");
431 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_login_yn` ENUM('Y','N') NOT NULL DEFAULT 'N'");
432 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD `bonus_click_yn` ENUM('Y','N') NOT NULL DEFAULT 'Y'");
434 // Update notes (these will be set as task text!)
435 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).");
438 case '0.7.0': // SQL queries for v0.7.0
439 setExtensionUpdateNotes("Zuschaltung von weiteren Bonis wird jetzt auch bei der Auflistung der mitmachenden Mitglieder im Mitgliedsbereich beachtet.");
442 case '0.7.1': // SQL queries for v0.7.1
443 setExtensionUpdateNotes("Im Adminbereich wird nun ebenfalls die Zuschaltung von weiteren Bonis berücksichtigt. Zudem wird der Gesamtbonus an alle Mitglieder errechnet und auch angezeigt.");
446 case '0.7.2': // SQL queries for v0.7.2
447 setExtensionUpdateNotes("Die Vergütung der erreichten 100%-Klickrate war noch wegen Programmierungen am Script auskommentiert. Sorry!");
450 case '0.7.3': // SQL queries for v0.7.3
451 setExtensionUpdateNotes("Gutgeschriebene Bonus-{?POINTS?} werden nach Deaktivierung der Aktiv-Rallye gelöscht.");
454 case '0.7.4': // SQL queries for v0.7.4
455 setExtensionUpdateNotes("Rechtlichen Hinweis im Mitgliedsbereich vergessen. (<strong>member_bonus.tpl</strong>)");
458 case '0.7.5': // SQL queries for v0.7.5
459 setExtensionUpdateNotes("Im Admin-Bereich Hinweis hinzugefügt, wenn Aktiv-Rallye inaktiv ist. Bitte Script inc/monthly_bonus.php löschen!");
462 case '0.7.6': // SQL queries for v0.7.6
463 setExtensionUpdateNotes("Auswahlmechanismus der Gewinner repariert. Trotz Hinzuschalten von weiteren zu berücksichtigen Boni wurden diese bei der Sortierung der Mitglieder-Ids nicht berücksichtig.");
466 case '0.7.7': // SQL queries for v0.7.7
467 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD bonus_en_notify ENUM('Y','N') NOT NULL DEFAULT 'N'");
468 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD bonus_di_notify ENUM('Y','N') NOT NULL DEFAULT 'N'");
469 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD bonus_new_mem_notify ENUM('Y','N') NOT NULL DEFAULT 'N'");
470 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD bonus_notify_points FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
471 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD bonus_notify_wait BIGINT(20) UNSIGNED NOT NULL DEFAULT '30'");
472 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD bonus_ral_notify BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
473 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD bonus_ral_en_notify BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
474 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` ADD bonus_ral_di_notify BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
476 // Update notes (these will be set as task text!)
477 setExtensionUpdateNotes("Optionale automatische Benachrichtigung über aktivierte und/oder deaktivierte Aktiv-Rallye einstellbar.");
480 case '0.7.8': // SQL queries for v0.7.8
481 // Update notes (these will be set as task text!)
482 setExtensionUpdateNotes("Fehler im täglichen Reset beseitigt.");
485 case '0.7.9': // SQL queries for v0.7.9
486 setExtensionUpdateNotes("Dollarzeichen fehlte in <strong>inc/reset/reset_bonus.php</strong>, Zeile 39");
489 case '0.8.0': // SQL queries for v0.8.0
490 setExtensionUpdateNotes("De-/Aktivieren des mit dieser Erweiterung verknüpften Modules eingebunden.");
493 case '0.8.1': // SQL queries for v0.8.1
494 setExtensionUpdateNotes("Bei {?POINTS?}-Gleichstand wird als nächstes nach wer als letztes Online war umsortiert.");
497 case '0.8.2': // SQL queries for v0.8.2
498 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_config` ADD bonus_include_own ENUM('Y','N') NOT NULL DEFAULT 'N'");
499 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_bonus` ADD is_notify ENUM('Y','N') NOT NULL DEFAULT 'N'");
501 // Update notes (these will be set as task text!)
502 setExtensionUpdateNotes("Eigene Mitglieder-Ids sind von der Aktiv-Rallye nun ausschliessbar. Benachrichtigungsmails sind von Aktiv-Rallye ausgeschlossen.");
505 case '0.8.3': // SQL queries for v0.8.3
506 addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `action`='rals', `sort`=2, `title`='Aktiv-Rallye' WHERE `what`='bonus' LIMIT 1");
508 // Update notes (these will be set as task text!)
509 setExtensionUpdateNotes("Mitgliedsmenü komplett umgebaut.");
512 case '0.8.4': // SQL queries for v0.8.4
513 setExtensionUpdateNotes("Ladeproblem bei nicht installierter Erweiterung <strong>cache</strong> gefixt.");
516 case '0.8.5': // SQL queries for v0.8.5
517 setExtensionUpdateNotes("CSS-Klassenname gefixt in Templates.");
520 case '0.8.6': // SQL queries for v0.8.6
521 setExtensionUpdateNotes("Fehlerhinweis bei deaktivierter Erweiterung verbessert.");
524 case '0.8.7': // SQL queries for v0.8.7
525 addAdminMenuSql('email','list_notifications','Benachrichtigungen','Listet alle an die Mitglieder ausgesandten Benachrichtigungen auf.', 10);
528 setExtensionUpdateNotes("Benachrichtigungsmails für z.B. Bettel- oder Aktiv-Rallye werden nun angezeigt.");
531 case '0.8.8': // SQL queries for v0.8.8
532 addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_stats` ADD `bonus_stats_active` ENUM('Y','N') NOT NULL DEFAULT 'N'");
535 setExtensionUpdateNotes("Benachrichtigungsmails für z.B. Bettel- oder Aktiv-Rallye werden nun angezeigt.");
538 case '0.8.9': // SQL queries for v0.8.9
539 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);
542 setExtensionUpdateNotes("Benachrichtigungsmails für z.B. Bettel- oder Aktiv-Rallye werden nun angezeigt.");
545 case '0.9.0': // SQL queries for v0.9.0
547 registerFilter('member_login_check', 'ADD_LOGIN_BONUS', false, true, getExtensionDryRun());
550 setExtensionUpdateNotes("Filter hinzugefügt der den Login-Bonus aktualisiert (bzw. soll) (internes TODO).");
555 case 'modify': // When the extension got modified
558 case 'test': // For testing purposes. For details see file inc/modules/admin/what-extensions.php, arround line 305.
561 case 'init': // Do stuff when extension is initialized
562 if (isResetModeEnabled() && (!isDebugModeEnabled()) && (getOutputMode() != 1)) {
563 // Daily reset was run so let's check if active rallye is activated
564 if (getConfig('bonus_active') == 'Y') {
566 addIncludeToPool('reset', 'inc/monthly/monthly_bonus.php');
569 addIncludeToPool('reset', 'inc/reset/reset_bonus.php');
573 // Check for bonus rallye is active and send mails out
574 if ((getConfig('bonus_active') == 'Y') && (getConfig('bonus_new_mem_notify') == 'Y')) {
575 // Include file for sending out mails
576 addIncludeToPool('notify', 'inc/mails/bonus_mails.php');
580 case 'init': // Do stuff when extension is initialized
583 default: // Unknown extension mode
584 logDebugMessage(__FILE__, __LINE__, sprintf("Unknown extension mode %s detected.", getExtensionMode()));