]> git.mxchange.org Git - mailer.git/blobdiff - inc/extensions/ext-bonus.php
rewritten to new functions, some parts rewritten to filters
[mailer.git] / inc / extensions / ext-bonus.php
index 06e52585f0c21118298cf545026447381c43c0dc..5cd454cb4eefec8607092f097726d34f4cbc4ae6 100644 (file)
  ************************************************************************/
 
 // Some security stuff...
-if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
-{
+if (!defined('__SECURITY')) {
        $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
        require($INC);
 }
 
 // Version of this extension
-$EXT_VERSION = "0.8.6";
-
-// Auto-set extension version
-if (empty($EXT_VER)) $EXT_VER = $EXT_VERSION;
+EXT_SET_VERSION("0.8.8");
 
 // Version history array (add more with , "0.1" and so on)
-$EXT_VER_HISTORY = 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");
+EXT_SET_VER_HISTORY(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"));
 
 switch ($EXT_LOAD_MODE)
 {
-case "register": // Do stuff when installtion is running (modules.php?module=admin&action=login is called)
+case "register": // Do stuff when installation is running (modules.php?module=admin&action=login is called)
        // SQL commands to run
-       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu VALUES (NULL,'email','send_bonus','Bonusmail senden',5,'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.')";
-       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_member_menu VALUES (NULL,'main','bonus','Bonuspunkte',7,'Y','Y', '', 0)";
-       $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_bonus";
-       $SQLs[] = "CREATE TABLE "._MYSQL_PREFIX."_bonus (
-id bigint(20) NOT NULL auto_increment,
-cat_id bigint(20) NOT NULL default '0',
-subject varchar(255) NOT NULL default '',
-text longblob NOT NULL,
-receivers longblob NOT NULL,
-points bigint(20) NOT NULL default '0',
-time tinyint(4) NOT NULL default '0',
-data_type enum('NEW','QUEUE','SEND') NOT NULL default 'NEW',
-timestamp varchar(10) NOT NULL default '0',
-url varchar(255) NOT NULL default '',
-target_send bigint(20) NOT NULL default '0',
-clicks bigint(20) not null default '0',
-mails_sent bigint(20) not null default '0',
+       ADD_SQL("INSERT INTO `{!_MYSQL_PREFIX!}_admin_menu` (`action`,`what`,`title`,`sort`,`descr`) VALUES ('email','send_bonus','Bonusmail senden',5,'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.')");
+       ADD_SQL("INSERT INTO `{!_MYSQL_PREFIX!}_member_menu` (`action`, `what`, `title`, `sort`, `visible`, `locked`, `counter`) VALUES ('main','bonus','Bonuspunkte',7,'Y','Y', 0)");
+       ADD_SQL("DROP TABLE IF EXISTS `{!_MYSQL_PREFIX!}_bonus`");
+       ADD_SQL("CREATE TABLE `{!_MYSQL_PREFIX!}_bonus` (
+id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
+cat_id BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
+subject VARCHAR(255) NOT NULL DEFAULT '',
+text LONGBLOB NOT NULL,
+receivers LONGBLOB NOT NULL,
+points BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
+time TINYINT(3) UNSIGNED NOT NULL DEFAULT 0,
+data_type ENUM('NEW','QUEUE','SEND') NOT NULL DEFAULT 'NEW',
+timestamp VARCHAR(10) NOT NULL DEFAULT 0,
+url VARCHAR(255) NOT NULL DEFAULT '',
+target_send BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
+clicks BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
+mails_sent BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
 KEY(cat_id),
 PRIMARY KEY  (id)
-)TYPE=MyISAM";
-       $SQLs[] = "alter table "._MYSQL_PREFIX."_user_links modify link_type enum('NORMAL','BONUS') not null default 'NORMAL'";
-       $SQLs[] = "alter table "._MYSQL_PREFIX."_user_links add bonus_id bigint not null default '0'";
-       $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_links ADD INDEX (bonus_id)";
+)TYPE=MyISAM");
+       ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_user_links` MODIFY link_type ENUM('NORMAL','BONUS') NOT NULL DEFAULT 'NORMAL'");
+       ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_user_links` ADD bonus_id BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
+       ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_user_links` ADD INDEX (bonus_id)");
 
        // Run this SQL when html or html_mail extension is installed
-       if (EXT_IS_ACTIVE("html_mail")) $SQLs[] = "alter table "._MYSQL_PREFIX."_bonus add html_msg enum('Y','N') not null default 'N'";
+       if (EXT_IS_ACTIVE("html_mail")) ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_bonus` add html_msg ENUM('Y','N') NOT NULL DEFAULT 'N'");
        break;
 
 case "remove": // Do stuff when removing extension
        // SQL commands to run
-       $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_admin_menu WHERE what='bonus' OR what='config_bonus' OR what='send_bonus' OR what='list_bonus' LIMIT 4";
-       $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_member_menu WHERE what='bonus' LIMIT 1";
-       $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_guest_menu WHERE action='bonus' LIMIT 1";
-       $SQLs[] = "alter table "._MYSQL_PREFIX."_user_links modify link_type enum('NORMAL') not null default 'NORMAL'";
-       $SQLs[] = "alter table "._MYSQL_PREFIX."_user_links drop bonus_id";
-       $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_bonus";
-       $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_bonus_urls";
-       $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_bonus_customer";
-       $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_bonus_turbo";
+       ADD_SQL("DELETE LOW_PRIORITY FROM `{!_MYSQL_PREFIX!}_admin_menu` WHERE what IN ('bonus','config_bonus','send_bonus','list_bonus','list_notifications') LIMIT 5");
+       ADD_SQL("DELETE LOW_PRIORITY FROM `{!_MYSQL_PREFIX!}_member_menu` WHERE `what`='bonus' LIMIT 1");
+       ADD_SQL("DELETE LOW_PRIORITY FROM `{!_MYSQL_PREFIX!}_guest_menu` WHERE `action`='bonus' LIMIT 1");
+       ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_user_links` MODIFY link_type ENUM('NORMAL') NOT NULL DEFAULT 'NORMAL'");
+       ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_user_links` DROP bonus_id");
+       ADD_SQL("DROP TABLE IF EXISTS `{!_MYSQL_PREFIX!}_bonus`");
+       ADD_SQL("DROP TABLE IF EXISTS `{!_MYSQL_PREFIX!}_bonus_urls`");
+       ADD_SQL("DROP TABLE IF EXISTS `{!_MYSQL_PREFIX!}_bonus_customer`");
+       ADD_SQL("DROP TABLE IF EXISTS `{!_MYSQL_PREFIX!}_bonus_turbo`");
        break;
 
 case "activate": // Do stuff when admin activates this extension
        // SQL commands to run
-       $SQLs[] = "UPDATE "._MYSQL_PREFIX."_member_menu SET visible='Y', locked='N' WHERE action='main' AND what='bonus' LIMIT 1";
-       $SQLs[] = "UPDATE "._MYSQL_PREFIX."_guest_menu SET visible='Y', locked='N' WHERE action='bonus' LIMIT 1";
-       $SQLs[] = "UPDATE "._MYSQL_PREFIX."_mod_reg SET locked='N', hidden='N', admin_only='N', mem_only='N' WHERE module='show_bonus' LIMIT 1";
+       ADD_SQL("UPDATE `{!_MYSQL_PREFIX!}_member_menu` SET `visible`='Y', `locked`='N' WHERE `what`='bonus' LIMIT 1");
+       ADD_SQL("UPDATE `{!_MYSQL_PREFIX!}_guest_menu` SET `visible`='Y', `locked`='N' WHERE `action`='bonus' LIMIT 1");
+       ADD_SQL("UPDATE `{!_MYSQL_PREFIX!}_mod_reg` SET `locked`='N', hidden='N', admin_only='N', mem_only='N' WHERE module='show_bonus' LIMIT 1");
        break;
 
 case "deactivate": // Do stuff when admin deactivates this extension
        // SQL commands to run
-       $SQLs[] = "UPDATE "._MYSQL_PREFIX."_member_menu SET visible='Y', locked='Y' WHERE action='main' AND what='bonus' LIMIT 1";
-       $SQLs[] = "UPDATE "._MYSQL_PREFIX."_guest_menu SET visible='Y', locked='Y' WHERE action='bonus' LIMIT 1";
-       $SQLs[] = "UPDATE "._MYSQL_PREFIX."_mod_reg SET locked='Y' WHERE module='show_bonus' LIMIT 1";
+       ADD_SQL("UPDATE `{!_MYSQL_PREFIX!}_member_menu` SET `visible`='N', `locked`='Y' WHERE `what`='bonus' LIMIT 1");
+       ADD_SQL("UPDATE `{!_MYSQL_PREFIX!}_guest_menu` SET `visible`='N', `locked`='Y' WHERE `action`='bonus' LIMIT 1");
+       ADD_SQL("UPDATE `{!_MYSQL_PREFIX!}_mod_reg` SET `locked`='Y' WHERE module='show_bonus' LIMIT 1");
        break;
 
 case "update": // Update an extension
@@ -111,258 +107,248 @@ case "update": // Update an extension
        {
        case "0.1.6": // SQL queries for v0.1.6
                // Update notes (these will be set as task text!)
-               $UPDATE_NOTES = "Paid-Links wurden verschoben in die Erweiterung <STRONG>paidlinks</STRONG>.";
+               EXT_SET_UPDATE_NOTES("Paid-Links wurden verschoben in die Erweiterung <strong>paidlinks</strong>.");
                break;
 
        case "0.2.0": // SQL queries for v0.2.0
-               $SQLs[] = "UPDATE "._MYSQL_PREFIX."_bonus SET target_send=mails_sent WHERE target_send='0' AND mails_sent>0 AND receivers != ''";
+               ADD_SQL("UPDATE `{!_MYSQL_PREFIX!}_bonus` SET target_send=mails_sent WHERE target_send='0' AND mails_sent>0 AND receivers != ''");
 
                // Update notes (these will be set as task text!)
-               $UPDATE_NOTES = "Behebt ein Versand-Problem mit den Bonus-Mails. Es wurde die Spalte target_send nicht beim Einf&uuml;gen der Buchung gessetzt. Bitte laden Sie sich dazu - wenn nicht bereits geschehen - alle Patches bis mindestens Patch 240 unter <A href=\"".URL."/modules.php?module=admin&amp;what=updates\">Updates pr&uuml;fen</A> herunter.";
+               EXT_SET_UPDATE_NOTES("Behebt ein Versand-Problem mit den Bonus-Mails. Es wurde die Spalte target_send nicht beim Einf&uuml;gen der Buchung gessetzt. Bitte laden Sie sich dazu - wenn nicht bereits geschehen - alle Patches bis mindestens Patch 240 unter <a href=\"{!URL!}/modules.php?module=admin&amp;what=updates\">Updates pr&uuml;fen</a> herunter.");
                break;
 
        case "0.2.1": // SQL queries for v0.2.1
-               $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_admin_menu WHERE what='config_bonus' LIMIT 1";
-               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu VALUES (NULL,'setup','config_bonus','Bonus-{!POINTS!}',8,'Richten Sie Bonus-{!POINTS!} ein, die beim x&#39;ten Klick auf die Mail verbucht werden sollen. Beispiele: Der 1. Klick sollte mehr {!POINTS!} zus&auml;tzlich bekommen, als der 10. Klick.')";
-               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD login_bonus double(20,3) not null default '10.000'";
-               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD turbo_bonus double(20,3) not null default '100.000'";
-               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD login_timeout bigint(20) not null default '86400'";
-               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD turbo_rates varchar(255) not null default '50;20;10'";
-               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD bonus_ranks tinyint(4) not null default '10'";
+               ADD_SQL("DELETE LOW_PRIORITY FROM `{!_MYSQL_PREFIX!}_admin_menu` WHERE `what`='config_bonus' LIMIT 1");
+               ADD_SQL("INSERT INTO `{!_MYSQL_PREFIX!}_admin_menu` (`action`,`what`,`title`,`sort`,`descr`) VALUES ('setup','config_bonus','Bonus-{!POINTS!}',8,'Richten Sie Bonus-{!POINTS!} ein, die beim x&#39;ten Klick auf die Mail verbucht werden sollen. Beispiele: Der 1. Klick sollte mehr {!POINTS!} zus&auml;tzlich bekommen, als der 10. Klick.')");
+               ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD login_bonus FLOAT(20,3) NOT NULL DEFAULT 10.000");
+               ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD turbo_bonus FLOAT(20,3) NOT NULL DEFAULT 100.000");
+               ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD login_timeout BIGINT(20) UNSIGNED NOT NULL DEFAULT ".getConfig('one_day')."");
+               ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD turbo_rates VARCHAR(255) NOT NULL DEFAULT '50;20;10'");
+               ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD bonus_ranks TINYINT(3) UNSIGNED NOT NULL DEFAULT 10");
                // Use actual month for this update
-               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD last_bonus_month char(2) not null default '".date("m", time())."'";
-               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data ADD login_bonus double(20,3) not null default '0.000'";
-               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data ADD turbo_bonus double(20,3) not null default '0.000'";
-               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_stats ADD bonus_stats enum('Y', 'N') not null default 'N'";
-               $SQLs[] = "UPDATE "._MYSQL_PREFIX."_extensions SET ext_has_css='Y' WHERE ext_name='bonus' AND ext_has_css='N' LIMIT 1";
+               ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_user_data` ADD login_bonus FLOAT(20,3) NOT NULL DEFAULT 0.000");
+               ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_user_data` ADD turbo_bonus FLOAT(20,3) NOT NULL DEFAULT 0.000");
+               ADD_SQL("UPDATE `{!_MYSQL_PREFIX!}_extensions` SET ext_has_css='Y' WHERE ext_name='bonus' AND ext_has_css='N' LIMIT 1");
 
                // Update notes (these will be set as task text!)
-               $UPDATE_NOTES = "Login-Bonus und Turbo-Klick-Bonus intergriert.";
+               EXT_SET_UPDATE_NOTES("Login-Bonus und Turbo-Klick-Bonus intergriert.");
                break;
 
        case "0.2.2": // SQL queries for v0.2.2
-               $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_bonus_turbo";
-               $SQLs[] = "CREATE TABLE "._MYSQL_PREFIX."_bonus_turbo (
-id bigint(20) NOT NULL auto_increment,
-userid bigint(20) NOT NULL default '0',
-mail_id bigint(20) NOT NULL default '0',
-bonus_id bigint(20) NOT NULL default '0',
-level bigint(20) NOT NULL default '0',
-points double(20,3) NOT NULL default '0.000',
-timemark varchar(32) NOT NULL default '0',
+               ADD_SQL("DROP TABLE IF EXISTS `{!_MYSQL_PREFIX!}_bonus_turbo`");
+               ADD_SQL("CREATE TABLE `{!_MYSQL_PREFIX!}_bonus_turbo` (
+id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
+userid BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
+mail_id BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
+bonus_id BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
+level BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
+points FLOAT(20,3) NOT NULL DEFAULT '0.000',
+timemark VARCHAR(32) NOT NULL DEFAULT 0,
 PRIMARY KEY(id),
 KEY mail_id (mail_id),
 KEY bonus_id (bonus_id),
 KEY userid (userid)
-) TYPE=MyISAM";
+) TYPE=MyISAM");
 
                // Update notes (these will be set as task text!)
-               $UPDATE_NOTES = "Turbo-Bonus wird in Tabelle gez&auml;hlt f&uuml;r Anzeige, wer alles bereits geklickt hat und welchen Platz er gemacht hat.";
+               EXT_SET_UPDATE_NOTES("Turbo-Bonus wird in Tabelle gez&auml;hlt f&uuml;r Anzeige, wer alles bereits geklickt hat und welchen Platz er gemacht hat.");
                break;
 
        case "0.2.3": // SQL queries for v0.2.3
-               $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_member_menu WHERE action='main' AND what='bonus' LIMIT 1";
-               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_member_menu VALUES (NULL,'main','bonus','Aktiv-Rallye',7,'Y','Y', '', 0)";
+               ADD_SQL("DELETE LOW_PRIORITY FROM `{!_MYSQL_PREFIX!}_member_menu` WHERE `what`='bonus' LIMIT 1");
+               ADD_SQL("INSERT INTO `{!_MYSQL_PREFIX!}_member_menu` (`action`, `what`, `title`, `sort`, `visible`, `locked`, `counter`) VALUES ('main','bonus','Aktiv-Rallye',7,'Y','Y', 0)");
 
                // Update notes (these will be set as task text!)
-               $UPDATE_NOTES = "Aktiv-Rallye mit Klick-Verg&uuml;tung hinzugef&uuml;gt.";
+               EXT_SET_UPDATE_NOTES("Aktiv-Rallye mit Klick-Verg&uuml;tung hinzugef&uuml;gt.");
                break;
 
        case "0.2.4": // SQL queries for v0.2.4
                // Update notes (these will be set as task text!)
-               $UPDATE_NOTES = "Wegen des Theme-Supportes hat sich die URL zur CSS-Datei ge&auml;ndert.";
+               EXT_SET_UPDATE_NOTES("Wegen des Theme-Supportes hat sich die URL zur CSS-Datei ge&auml;ndert.");
                break;
 
        case "0.2.5": // SQL queries for v0.2.5
-               $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_bonus_urls";
-               $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_bonus_customer";
+               ADD_SQL("DROP TABLE IF EXISTS `{!_MYSQL_PREFIX!}_bonus_urls`");
+               ADD_SQL("DROP TABLE IF EXISTS `{!_MYSQL_PREFIX!}_bonus_customer`");
 
                // Update notes (these will be set as task text!)
-               $UPDATE_NOTES = "Tabellen <U>"._MYSQL_PREFIX."_bonus_urls</U> und <U>"._MYSQL_PREFIX."_bonus_customer</U> entfernt, da dies bald von der Erweiterung <U>paidlinks</U> erledigt wird.";
+               EXT_SET_UPDATE_NOTES("Tabellen <u>{!MYSQL_PREFIX!}_bonus_urls</u> und <u>{!MYSQL_PREFIX!}_bonus_customer</u> entfernt, da dies bald von der Erweiterung <u>paidlinks</u> erledigt wird.");
                break;
 
        case "0.2.6": // SQL queries for v0.2.6
                // Update notes (these will be set as task text!)
-               $UPDATE_NOTES = "Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.";
+               EXT_SET_UPDATE_NOTES("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist.");
                break;
 
        case "0.2.7": // SQL queries for v0.2.7
                // Update notes (these will be set as task text!)
-               $UPDATE_NOTES = "Turbo-Bonus klappt wieder (dies sind {!POINTS!} die an die schnellsten Klicker verg&uuml;tet werden!)";
+               EXT_SET_UPDATE_NOTES("Turbo-Bonus klappt wieder (dies sind {!POINTS!} die an die schnellsten Klicker verg&uuml;tet werden!)");
                break;
 
        case "0.2.8": // SQL queries for v0.2.8
-               $SQLs[] = "UPDATE "._MYSQL_PREFIX."_bonus SET timestamp='0' WHERE timestamp='0000000000'";
-               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_bonus_turbo CHANGE points points double(22,5) not null default '0.00000'";
-               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config CHANGE turbo_bonus turbo_bonus double(22,5) not null default '0.00000'";
-               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config CHANGE login_bonus login_bonus double(22,5) not null default '0.00000'";
-               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data CHANGE turbo_bonus turbo_bonus double(22,5) not null default '0.00000'";
-               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data CHANGE login_bonus login_bonus double(22,5) not null default '0.00000'";
+               ADD_SQL("UPDATE `{!_MYSQL_PREFIX!}_bonus` SET timestamp='0' WHERE timestamp='0000000000'");
+               ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_bonus_turbo` CHANGE points points FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
+               ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` CHANGE turbo_bonus turbo_bonus FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
+               ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` CHANGE login_bonus login_bonus FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
+               ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_user_data` CHANGE turbo_bonus turbo_bonus FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
+               ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_user_data` CHANGE login_bonus login_bonus FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
 
                // Update notes (these will be set as task text!)
-               $UPDATE_NOTES = "5 Nachkommastellen implementiert";
+               EXT_SET_UPDATE_NOTES("5 Nachkommastellen implementiert");
                break;
 
        case "0.2.9": // SQL queries for v0.2.9
                // Update notes (these will be set as task text!)
-               $UPDATE_NOTES = "Problem mit Speicherung der Einstellungen beseitigt.";
+               EXT_SET_UPDATE_NOTES("Problem mit Speicherung der Einstellungen beseitigt.");
                break;
 
        case "0.3.0": // SQL queries for v0.3.0
                // Update notes (these will be set as task text!)
-               $UPDATE_NOTES = "Men&uuml;punkte im Gast-/Mitgliedsbereich k&ouml;nnen nicht mehr aufgerufen werden, wenn die Erweiterung deaktiviert ist.";
+               EXT_SET_UPDATE_NOTES("Men&uuml;punkte im Gast-/Mitgliedsbereich k&ouml;nnen nicht mehr aufgerufen werden, wenn die Erweiterung deaktiviert ist.");
                break;
 
        case "0.3.1": // SQL queries for v0.3.1
                // Update notes (these will be set as task text!)
-               $UPDATE_NOTES = "Sicherheitsupdate am Script <U>show_bonus.php</U> durchgef&uuml;hrt.";
+               EXT_SET_UPDATE_NOTES("Sicherheitsupdate am Script <u>show_bonus.php</u> durchgef&uuml;hrt.");
                break;
 
        case "0.3.2": // SQL queries for v0.3.2
                // Update notes (these will be set as task text!)
-               $UPDATE_NOTES = "Design &quot;Solid-Business&quot; eingebaut.";
+               EXT_SET_UPDATE_NOTES("Design &quot;Solid-Business&quot; eingebaut.");
                break;
 
        case "0.3.3": // SQL queries for v0.3.3
                // Update notes (these will be set as task text!)
-               $UPDATE_NOTES = "Seit <A href=\"".SERVER_URL."/patches/340-Gast_Mitgliedsmenue_Deaktivieren.zip\">Patch 340</A> &uuml;berfl&uuml;ssige HTML-Tags entfernt.";
+               EXT_SET_UPDATE_NOTES("Seit <a href=\"#\">Patch 340</a> &uuml;berfl&uuml;ssige HTML-Tags entfernt.");
                break;
 
        case "0.3.4": // SQL queries for v0.3.4
-               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES ('user', 'list_bonus', 'Aktiv-Rallye-Teilnehmer', 'Listet alle Mitglieder auf, die einen Aktiv-Bonus haben und zeigt die derzeit m&ouml;glichen Gewinner an.', 10)";
+               ADD_SQL("INSERT INTO `{!_MYSQL_PREFIX!}_admin_menu` (`action`,`what`,`title`,`descr`,`sort`) VALUES ('user','list_bonus','Aktiv-Rallye-Teilnehmer','Listet alle Mitglieder auf, die einen Aktiv-Bonus haben und zeigt die derzeit m&ouml;glichen Gewinner an.', 10)");
 
                // Update notes (these will be set as task text!)
-               $UPDATE_NOTES = "Link <U>Aktiv-Rallye-Teilnehmer</U> hinzugef&uuml;gt, inklusive manuelle Vorbereitung der Verg&uuml;tung.";
+               EXT_SET_UPDATE_NOTES("Link <u>Aktiv-Rallye-Teilnehmer</u> hinzugef&uuml;gt, inklusive manuelle Vorbereitung der Verg&uuml;tung.");
                break;
 
        case "0.3.5": // SQL queries for v0.3.5
-               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD bonus_mode enum('UID', 'JACKPOT', 'ADD') not null default 'ADD'";
-               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD bonus_uid bigint(20) not null default '0'";
+               ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD bonus_mode ENUM('UID','JACKPOT','ADD') NOT NULL DEFAULT 'ADD'");
+               ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD bonus_uid BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
 
                // Update notes (these will be set as task text!)
-               $UPDATE_NOTES = "Der Login-Bonus Aktiv-Bonus (= Klick-Bonus) k&ouml;nnen nun zuerst von einem Mitgliederaccount (das sollte Ihres sein!), vom Jackpot abgezogen oder einfach dazuadiert werden.";
+               EXT_SET_UPDATE_NOTES("Der Login-Bonus Aktiv-Bonus (= Klick-Bonus) k&ouml;nnen nun zuerst von einem Mitgliederaccount (das sollte Ihres sein!), vom Jackpot abgezogen oder einfach dazuadiert werden.");
                break;
 
        case "0.3.6": // SQL queries for v0.3.6
                // Update notes (these will be set as task text!)
-               $UPDATE_NOTES = "In der Admin-Liste werden nur aktive Mitglieder gelistet und zudem die sp&auml;teste Zeitmarke f&uuml;r die Auswertung angezeigt.";
+               EXT_SET_UPDATE_NOTES("In der Admin-Liste werden nur aktive Mitglieder gelistet und zudem die sp&auml;teste Zeitmarke f&uuml;r die Auswertung angezeigt.");
                break;
 
        case "0.3.7": // SQL queries for v0.3.7
                // Update notes (these will be set as task text!)
-               $UPDATE_NOTES = "Mitglieder-Account auw&auml;hlbar, von dem die {!POINTS!} f&uuml;r den Aktiv- und Login-Bonus abgebucht werden.";
+               EXT_SET_UPDATE_NOTES("Mitglieder-Account auw&auml;hlbar, von dem die {!POINTS!} f&uuml;r den Aktiv- und Login-Bonus abgebucht werden.");
                break;
 
        case "0.3.8": // SQL queries for v0.3.8
                // Update notes (these will be set as task text!)
-               $UPDATE_NOTES = "Ausgabe des generierten HTML-Codes nach <U>inc/footer.php</U> verlagert.";
+               EXT_SET_UPDATE_NOTES("Ausgabe des generierten HTML-Codes nach <u>inc/footer.php</u> verlagert.");
                break;
 
        case "0.3.9": // SQL queries for v0.3.9
                // Update notes (these will be set as task text!)
-               $UPDATE_NOTES = "Fehlende Variablen gefixt.";
+               EXT_SET_UPDATE_NOTES("Fehlende Variablen gefixt.");
                break;
 
        case "0.4.0": // SQL queries for v0.4.0
-               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD bonus_timeout bigint(20) not null default '".(ONE_DAY * 7)."'";
-               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD bonus_lines bigint(20) not null default '10'";
+               ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD bonus_timeout BIGINT(20) UNSIGNED NOT NULL DEFAULT ".(getConfig('one_day')*7)."");
+               ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD bonus_lines BIGINT(20) UNSIGNED NOT NULL DEFAULT 10");
 
                // Update notes (these will be set as task text!)
-               $UPDATE_NOTES = "Automatisches L&ouml;schen von Turbo-Bonus-Zeilen ("._MYSQL_PREFIX."_bonus_turbo) und begrenzte Anzahl von Eintr&auml;gen hinzugef&uuml;gt.";
+               EXT_SET_UPDATE_NOTES("Automatisches L&ouml;schen von Turbo-Bonus-Zeilen ({!MYSQL_PREFIX!}_bonus_turbo) und begrenzte Anzahl von Eintr&auml;gen hinzugef&uuml;gt.");
                break;
 
        case "0.4.1": // SQL queries for v0.4.1
                // Update notes (these will be set as task text!)
-               $UPDATE_NOTES = "Verg&uuml;tung des Aktiv-Bonus repariert.";
+               EXT_SET_UPDATE_NOTES("Verg&uuml;tung des Aktiv-Bonus repariert.");
                break;
 
        case "0.4.2": // SQL queries for v0.4.2
                // Update notes (these will be set as task text!)
-               $UPDATE_NOTES = "Admin-Bereich / Aktiv-Teilnehmer auflisten: Problem mit Konstante __AUTOPURGE_TIMEOUT und das Template <U>admin_list_bonus.tpl</U> korregiert.";
+               EXT_SET_UPDATE_NOTES("Admin-Bereich / Aktiv-Teilnehmer auflisten: Problem mit Konstante __AUTOPURGE_TIMEOUT und das Template <u>admin_list_bonus.tpl</u> korregiert.");
                break;
 
        case "0.4.3": // SQL queries for v0.4.3
                // Update notes (these will be set as task text!)
-               $UPDATE_NOTES = "Verbesserung des Versandes von  HTML-Bonus-Mails.";
+               EXT_SET_UPDATE_NOTES("Verbesserung des Versandes von  HTML-Bonus-Mails.");
                break;
 
        case "0.4.4": // SQL queries for v0.4.4
-               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD bonus_order double(20,5) not null default '15.00000'";
-               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD bonus_ref double(20,5) not null default '100.00000'";
-               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD bonus_stats double(20,5) not null default '5.00000'";
-               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD bonus_active enum('Y', 'N') not null default 'Y'";
-               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data ADD bonus_order double(20,5) not null default '0.00000'";
-               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data ADD bonus_ref double(20,5) not null default '0.00000'";
-               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data ADD bonus_stats double(20,5) not null default '0.00000'";
-               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_stats ADD is_stats enum('Y', 'N') not null default 'N'";
+               ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD bonus_order FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 15.00000");
+               ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD bonus_ref FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 100.00000");
+               ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD bonus_stats FLOAT(20,5) UNSIGNED NOT NULL DEFAULT '5.00000'");
+               ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD bonus_active ENUM('Y','N') NOT NULL DEFAULT 'Y'");
+               ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_user_data` ADD bonus_order FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
+               ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_user_data` ADD bonus_ref FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
+               ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_user_data` ADD bonus_stats FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
+               ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_user_stats` ADD is_stats ENUM('Y','N') NOT NULL DEFAULT 'N'");
 
                // Update notes (these will be set as task text!)
-               $UPDATE_NOTES = "Bonus-{!POINTS!} f&uuml;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 &uuml;berfl&uuml;ssig geworden. Bitte l&ouml;schen Sie dies!<br>Eingestellte Bonus-{!POINTS!} f&uuml;r Rank 2 war um eins verschoben.";
+               EXT_SET_UPDATE_NOTES("Bonus-{!POINTS!} f&uuml;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 &uuml;berfl&uuml;ssig geworden. Bitte l&ouml;schen Sie dies!<br />Eingestellte Bonus-{!POINTS!} f&uuml;r Rank 2 war um eins verschoben.");
                break;
 
        case "0.4.5": // SQL queries for v0.4.5
                // Update notes (these will be set as task text!)
-               $UPDATE_NOTES = "Abzug vom Bonus-Account integriert.";
+               EXT_SET_UPDATE_NOTES("Abzug vom Bonus-Account integriert.");
                break;
 
        case "0.4.6": // SQL queries for v0.4.6
                // Update notes (these will be set as task text!)
-               $UPDATE_NOTES = "Rank 2 bekommt nun auch seine {!POINTS!} gutgeschrieben.";
+               EXT_SET_UPDATE_NOTES("Rank 2 bekommt nun auch seine {!POINTS!} gutgeschrieben.");
                break;
 
        case "0.4.7": // SQL queries for v0.4.7
-               $SQLs[] = "UPDATE "._MYSQL_PREFIX."_user_data SET login_bonus=0, turbo_bonus=0,bonus_ref=0,bonus_order=0,bonus_stats=0";
+               ADD_SQL("UPDATE `{!_MYSQL_PREFIX!}_user_data` SET login_bonus=0, turbo_bonus=0,bonus_ref=0,bonus_order=0,bonus_stats=0");
 
                // Update notes (these will be set as task text!)
-               $UPDATE_NOTES = "Die Aktiv-Rallye wurde nicht auf 0 {!POINTS!} gesetzt. Dieser Fehler ist nun behoben. Allerdings ist mit diesem Update auch die Aktiv-Rallye zur&uuml;ckgesetzt worden.";
+               EXT_SET_UPDATE_NOTES("Die Aktiv-Rallye wurde nicht auf 0 {!POINTS!} gesetzt. Dieser Fehler ist nun behoben. Allerdings ist mit diesem Update auch die Aktiv-Rallye zur&uuml;ckgesetzt worden.");
                break;
 
        case "0.4.8": // SQL queries for v0.4.8
                // Update notes (these will be set as task text!)
-               $UPDATE_NOTES = "In <U>inc/monthly_bonus.php</U> fehlte ein Punkt; Fehler besseitigt.";
+               EXT_SET_UPDATE_NOTES("In <u>inc/monthly_bonus.php</u> fehlte ein Punkt; Fehler besseitigt.");
                break;
 
        case "0.4.9": // SQL queries for v0.4.9
                // Update notes (these will be set as task text!)
-               $UPDATE_NOTES = "Login-Bonus wird mit angezeigt.";
+               EXT_SET_UPDATE_NOTES("Login-Bonus wird mit angezeigt.");
                break;
 
        case "0.5.0": // SQL queries for v0.5.0
                // Update notes (these will be set as task text!)
-               $UPDATE_NOTES = "Problem mit <STRONG>is_hundred</STRONG> beim t&auml;glichen Reset beseitigt.";
+               EXT_SET_UPDATE_NOTES("Problem mit <strong>is_hundred</strong> beim t&auml;glichen Reset beseitigt.");
                break;
 
        case "0.5.1": // SQL queries for v0.5.1
                // Update notes (these will be set as task text!)
-               $UPDATE_NOTES = "Problem mit <STRONG>bonus_stats / Zeile 31</STRONG> beim t&auml;glichen Reset beseitigt.";
+               EXT_SET_UPDATE_NOTES("Problem mit <strong>bonus_stats / Zeile 31</strong> beim t&auml;glichen Reset beseitigt.");
                break;
 
        case "0.5.2": // SQL queries for v0.5.2
                // Update notes (these will be set as task text!)
-               $UPDATE_NOTES = "W&ouml;rter <STRONG>Mailtausch</STRONG>, <STRONG>Mailtausches</STRONG> und <STRONG>Mailtauscher</STRONG> sind austauschbar.";
+               EXT_SET_UPDATE_NOTES("W&ouml;rter <strong>Mailtausch</strong>, <strong>Mailtausches</strong> und <strong>Mailtauscher</strong> sind austauschbar.");
                break;
 
        case "0.5.3": // SQL queries for v0.5.3
                // Update notes (these will be set as task text!)
-               $UPDATE_NOTES = "Speichern der Aktiv-{!POINTS!} f&uuml;r Platz 2 bis <STRONG>x</STRONG> korregiert.";
+               EXT_SET_UPDATE_NOTES("Speichern der Aktiv-{!POINTS!} f&uuml;r Platz 2 bis <strong>x</strong> korregiert.");
                break;
 
        case "0.5.4": // SQL queries for v0.5.4
                // Update notes (these will be set as task text!)
-               $UPDATE_NOTES = "Variablenfehler in <STRONG>inc/monthly_bonus.php</STRONG> behoben.";
+               EXT_SET_UPDATE_NOTES("Variablenfehler in <strong>inc/monthly_bonus.php</strong> behoben.");
                break;
 
        case "0.5.5": // SQL queries for v0.5.5
-               // Get previous month
-               $prev = date("m", time()) - 1;
-               if (strlen($prev) == 1) $prev = "0".$prev;
-               if ($prev == "00") $prev = "12";
-
-               // Reset monthly active rallye
-               $SQLs[] = "UPDATE "._MYSQL_PREFIX."_config SET last_bonus_month='".$prev."' WHERE config=0 LIMIT 1";
-
                // Update notes (these will be set as task text!)
-               $UPDATE_NOTES = "Weitere Variablenfehler in <STRONG>inc/monthly_bonus.php</STRONG> haben daf&uuml;r gesorgt, dass die monatliche Aktiv-Rallye nicht ausgesch&uuml;ttet wurde. Mit diesem Update wurde die Aussch&uuml;ttung initialisiert. Ihre Mitglieder bekommen voraussichtlicht nichts doppelt verg&uuml;tet.";
+               EXT_SET_UPDATE_NOTES("Weitere Variablenfehler in <strong>inc/monthly_bonus.php</strong> haben daf&uuml;r gesorgt, dass die monatliche Aktiv-Rallye nicht ausgesch&uuml;ttet wurde. Mit diesem Update wurde die Aussch&uuml;ttung initialisiert. Ihre Mitglieder bekommen voraussichtlicht nichts doppelt verg&uuml;tet.");
                break;
 
        case "0.5.6": // SQL queries for v0.5.6
@@ -375,12 +361,12 @@ KEY userid (userid)
                $mark = mktime(0, 0, 0, $curr, 1, date('Y', time()));
 
                // Update accounts which are not active last months
-               $SQLs[] = "UPDATE "._MYSQL_PREFIX."_user_data
+               ADD_SQL("UPDATE `{!_MYSQL_PREFIX!}_user_data`
 SET turbo_bonus=0, login_bonus=0, bonus_order=0, bonus_stats=0, bonus_ref=0
-WHERE last_online < ".$mark." ORDER BY userid";
+WHERE last_online < ".$mark." ORDER BY userid");
 
                // Update notes (these will be set as task text!)
-               $UPDATE_NOTES = "Ein weiterer Scriptfehler hat nur die Gewinner aus der Aktiv-Rallye genommen. Die anderen Mitglieder sind somit &quot;nach oben gerutsch&quot;.";
+               EXT_SET_UPDATE_NOTES("Ein weiterer Scriptfehler hat nur die Gewinner aus der Aktiv-Rallye genommen. Die anderen Mitglieder sind somit &quot;nach oben gerutsch&quot;.");
                break;
 
        case "0.5.7": // SQL queries for v0.5.7
@@ -388,216 +374,194 @@ WHERE last_online < ".$mark." ORDER BY userid";
 
        case "0.5.8": // SQL queries for v0.5.8
                // Update notes (these will be set as task text!)
-               $UPDATE_NOTES = "Problem mit <STRONG>is_hundred</STRONG> beim t&auml;glichen Reset endlich beseitigt.";
+               EXT_SET_UPDATE_NOTES("Problem mit <strong>is_hundred</strong> beim t&auml;glichen Reset endlich beseitigt.");
                break;
 
        case "0.5.9": // SQL queries for v0.5.9
-               $UPDATE_NOTES = "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.";
+               EXT_SET_UPDATE_NOTES("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.");
                break;
 
        case "0.6.0": // SQL queries for v0.6.0
-               $UPDATE_NOTES = "SQL-Fehlermeldung in <STRONG>inc/monthly_bonus.php</STRONG> beseitigt.";
+               EXT_SET_UPDATE_NOTES("SQL-Fehlermeldung in <strong>inc/monthly_bonus.php</strong> beseitigt.");
                break;
 
        case "0.6.1": // SQL queries for v0.6.1
-               $UPDATE_NOTES = "Versand von Bonus-Mails repariert.";
+               EXT_SET_UPDATE_NOTES("Versand von Bonus-Mails repariert.");
                break;
 
        case "0.6.2": // SQL queries for v0.6.2
-               $UPDATE_NOTES = "L&ouml;schen von bereits gel&ouml;schten Mails wird nun abgelehnt.";
+               EXT_SET_UPDATE_NOTES("L&ouml;schen von bereits gel&ouml;schten Mails wird nun abgelehnt.");
                break;
 
        case "0.6.3": // SQL queries for v0.6.3
-               $UPDATE_NOTES = "Abspeichern von Einstellungen repariert.";
+               EXT_SET_UPDATE_NOTES("Abspeichern von Einstellungen repariert.");
                break;
 
        case "0.6.4": // SQL queries for v0.6.4
-               $SQLs[] = "UPDATE "._MYSQL_PREFIX."_admin_menu SET title='Aktiv-Rallye' WHERE what='config_bonus' LIMIT 1";
+               ADD_SQL("UPDATE `{!_MYSQL_PREFIX!}_admin_menu` SET `title`='Aktiv-Rallye' WHERE `what`='config_bonus' LIMIT 1");
 
                // Update notes (these will be set as task text!)
-               $UPDATE_NOTES = "Der Men&uuml;punkt &quot;Bonus-{!POINTS!}&quot; unter Einstellungen wird nach &quot;Aktiv-Rallye umbenannt. Und die Aktiv-Rallye konnte aufgrund eines Template-Fehlers nicht gespeichert werden.";
+               EXT_SET_UPDATE_NOTES("Der Men&uuml;punkt &quot;Bonus-{!POINTS!}&quot; unter Einstellungen wird nach &quot;Aktiv-Rallye umbenannt. Und die Aktiv-Rallye konnte aufgrund eines Template-Fehlers nicht gespeichert werden.");
                break;
 
        case "0.6.5": // SQL queries for v0.6.5
-               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_stats ADD bonus_stats enum('Y', 'N') not null default 'N'";
+               ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_user_stats` ADD bonus_stats ENUM('Y','N') NOT NULL DEFAULT 'N'");
 
                // Update notes (these will be set as task text!)
-               $UPDATE_NOTES = "Fehler mit bonus_stats beseitigt.";
+               EXT_SET_UPDATE_NOTES("Fehler mit bonus_stats beseitigt.");
                break;
 
        case "0.6.6": // SQL queries for v0.6.6
-               $UPDATE_NOTES = "Template-Fehler beseitigt im Admin-Bereich.";
+               EXT_SET_UPDATE_NOTES("Template-Fehler beseitigt im Admin-Bereich.");
                break;
 
        case "0.6.7": // SQL queries for v0.6.7
-               $UPDATE_NOTES = "Vorbereitung auf die neue Mediendaten v0.0.4.";
+               EXT_SET_UPDATE_NOTES("Vorbereitung auf die neue Mediendaten v0.0.4.");
                break;
 
        case "0.6.8": // SQL queries for v0.6.8
-               $SQLs[] = "UPDATE "._MYSQL_PREFIX."_bonus SET data_type='SEND' WHERE data_type != 'SEND' AND data_type != 'DELETED' AND receivers='' AND target_send='0'";
+               ADD_SQL("UPDATE `{!_MYSQL_PREFIX!}_bonus` SET data_type='SEND' WHERE data_type != 'SEND' AND data_type != 'DELETED' AND receivers='' AND target_send='0'");
 
                // Update notes (these will be set as task text!)
-               $UPDATE_NOTES = "Eingegebene Anzahl auszusendener Bonus-Mails wurde bei der Empf&auml;nderauswahl nicht ber&uuml;cksichtigt. Zudem wird jetzt das eingestellte Auswahlverfahren mitber&uuml;cksichtigt.";
+               EXT_SET_UPDATE_NOTES("Eingegebene Anzahl auszusendener Bonus-Mails wurde bei der Empf&auml;nderauswahl nicht ber&uuml;cksichtigt. Zudem wird jetzt das eingestellte Auswahlverfahren mitber&uuml;cksichtigt.");
                break;
 
        case "0.6.9": // SQL queries for v0.6.9
-               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD bonus_order_yn enum('Y', 'N') not null default 'N'";
-               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD bonus_ref_yn enum('Y', 'N') not null default 'N'";
-               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD bonus_stats_yn enum('Y', 'N') not null default 'N'";
-               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD bonus_login_yn enum('Y', 'N') not null default 'N'";
-               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD bonus_click_yn enum('Y', 'N') not null default 'Y'";
+               ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD bonus_order_yn ENUM('Y','N') NOT NULL DEFAULT 'N'");
+               ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD bonus_ref_yn ENUM('Y','N') NOT NULL DEFAULT 'N'");
+               ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD bonus_stats_yn ENUM('Y','N') NOT NULL DEFAULT 'N'");
+               ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD bonus_login_yn ENUM('Y','N') NOT NULL DEFAULT 'N'");
+               ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD bonus_click_yn ENUM('Y','N') NOT NULL DEFAULT 'Y'");
 
                // Update notes (these will be set as task text!)
-               $UPDATE_NOTES = "Es k&ouml;nnen nun auch die folgenden Verg&uuml;tungen bei der Auswertung der monatlichen Aktiv-Rallye mit ber&uuml;cksichtigt werden: Mailbest&auml;tigung (war vorher schon), Login-, Mailbuchung, Referral und Statistik-Bonus (100% Klickrate erreicht).";
+               EXT_SET_UPDATE_NOTES("Es k&ouml;nnen nun auch die folgenden Verg&uuml;tungen bei der Auswertung der monatlichen Aktiv-Rallye mit ber&uuml;cksichtigt werden: Mailbest&auml;tigung (war vorher schon), Login-, Mailbuchung, Referal und Statistik-Bonus (100% Klickrate erreicht).");
                break;
 
        case "0.7.0": // SQL queries for v0.7.0
-               $UPDATE_NOTES = "Zuschaltung von weiteren Bonis wird jetzt auch bei der Auflistung der mitmachenden Mitglieder im Mitgliedsbereich beachtet.";
+               EXT_SET_UPDATE_NOTES("Zuschaltung von weiteren Bonis wird jetzt auch bei der Auflistung der mitmachenden Mitglieder im Mitgliedsbereich beachtet.");
                break;
 
        case "0.7.1": // SQL queries for v0.7.1
-               $UPDATE_NOTES = "Im Adminbereich wird nun ebenfalls die Zuschaltung von weiteren Bonis ber&uuml;cksichtigt. Zudem wird der Gesamtbonus an alle Mitglieder errechnet und auch angezeigt.";
+               EXT_SET_UPDATE_NOTES("Im Adminbereich wird nun ebenfalls die Zuschaltung von weiteren Bonis ber&uuml;cksichtigt. Zudem wird der Gesamtbonus an alle Mitglieder errechnet und auch angezeigt.");
                break;
 
        case "0.7.2": // SQL queries for v0.7.2
-               $UPDATE_NOTES = "Die Verg&uuml;tung der erreichten 100%-Klickrate war noch wegen Programmierungen am Script auskommentiert. Sorry!";
+               EXT_SET_UPDATE_NOTES("Die Verg&uuml;tung der erreichten 100%-Klickrate war noch wegen Programmierungen am Script auskommentiert. Sorry!");
                break;
 
        case "0.7.3": // SQL queries for v0.7.3
-               $UPDATE_NOTES = "Gutgeschriebene Bonus-{!POINTS!} werden nach Deaktivierung der Aktiv-Rallye gel&ouml;scht.";
+               EXT_SET_UPDATE_NOTES("Gutgeschriebene Bonus-{!POINTS!} werden nach Deaktivierung der Aktiv-Rallye gel&ouml;scht.");
                break;
 
        case "0.7.4": // SQL queries for v0.7.4
-               $UPDATE_NOTES = "Rechtlichen Hinweis im Mitgliedsbereich vergessen. (<STRONG>member_bonus.tpl</STRONG>)";
+               EXT_SET_UPDATE_NOTES("Rechtlichen Hinweis im Mitgliedsbereich vergessen. (<strong>member_bonus.tpl</strong>)");
                break;
 
        case "0.7.5": // SQL queries for v0.7.5
-               $UPDATE_NOTES = "Im Admin-Bereich Hinweis hinzugef&uuml;gt, wenn Aktiv-Rallye inaktiv ist. Bitte Script inc/monthly_bonus.php l&ouml;schen!";
+               EXT_SET_UPDATE_NOTES("Im Admin-Bereich Hinweis hinzugef&uuml;gt, wenn Aktiv-Rallye inaktiv ist. Bitte Script inc/monthly_bonus.php l&ouml;schen!");
                break;
 
        case "0.7.6": // SQL queries for v0.7.6
-               $UPDATE_NOTES = "Auswahlmechanismus der Gewinner repariert. Trotz Hinzuschalten von weiteren zu ber&uuml;cksichtigen Boni wurden diese bei der Sortierung der User-IDs nicht ber&uuml;cksichtig.";
+               EXT_SET_UPDATE_NOTES("Auswahlmechanismus der Gewinner repariert. Trotz Hinzuschalten von weiteren zu ber&uuml;cksichtigen Boni wurden diese bei der Sortierung der User-IDs nicht ber&uuml;cksichtig.");
                break;
 
        case "0.7.7": // SQL queries for v0.7.7
-               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD bonus_en_notify enum('Y', 'N') not null default 'N'";
-               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD bonus_di_notify enum('Y', 'N') not null default 'N'";
-               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD bonus_new_mem_notify enum('Y', 'N') not null default 'N'";
-               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD bonus_notify_points double(20,5) not null default '0.00000'";
-               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD bonus_notify_wait bigint(20) not null default '30'";
-               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data ADD bonus_ral_notify bigint(20) not null default '0'";
-               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data ADD bonus_ral_en_notify bigint(20) not null default '0'";
-               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_user_data ADD bonus_ral_di_notify bigint(20) not null default '0'";
+               ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD bonus_en_notify ENUM('Y','N') NOT NULL DEFAULT 'N'");
+               ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD bonus_di_notify ENUM('Y','N') NOT NULL DEFAULT 'N'");
+               ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD bonus_new_mem_notify ENUM('Y','N') NOT NULL DEFAULT 'N'");
+               ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD bonus_notify_points FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
+               ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD bonus_notify_wait BIGINT(20) UNSIGNED NOT NULL DEFAULT '30'");
+               ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_user_data` ADD bonus_ral_notify BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
+               ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_user_data` ADD bonus_ral_en_notify BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
+               ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_user_data` ADD bonus_ral_di_notify BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
 
                // Update notes (these will be set as task text!)
-               $UPDATE_NOTES = "Optionale automatische Benachrichtigung &uuml;ber aktivierte und/oder deaktivierte Aktiv-Rallye einstellbar.";
+               EXT_SET_UPDATE_NOTES("Optionale automatische Benachrichtigung &uuml;ber aktivierte und/oder deaktivierte Aktiv-Rallye einstellbar.");
                break;
 
        case "0.7.8": // SQL queries for v0.7.8
                // Update notes (these will be set as task text!)
-               $UPDATE_NOTES = "Fehler im t&auml;glichen Reset beseitigt.";
+               EXT_SET_UPDATE_NOTES("Fehler im t&auml;glichen Reset beseitigt.");
                break;
 
        case "0.7.9": // SQL queries for v0.7.9
-               $UPDATE_NOTES = "Dollarzeichen fehlte in <STRONG>inc/reset/reset_bonus.php</STRONG>, Zeile 39";
+               EXT_SET_UPDATE_NOTES("Dollarzeichen fehlte in <strong>inc/reset/reset_bonus.php</strong>, Zeile 39");
                break;
 
        case "0.8.0": // SQL queries for v0.8.0
-               $UPDATE_NOTES = "De-/Aktivieren des mit dieser Erweiterung verkn&uuml;pften Modules eingebunden.";
+               EXT_SET_UPDATE_NOTES("De-/Aktivieren des mit dieser Erweiterung verkn&uuml;pften Modules eingebunden.");
                break;
 
        case "0.8.1": // SQL queries for v0.8.1
-               $UPDATE_NOTES = "Bei ".POINTS."-Gleichstand wird als n&auml;chstes nach wer als letztes Online war umsortiert.";
+               EXT_SET_UPDATE_NOTES("Bei {!POINTS!}-Gleichstand wird als n&auml;chstes nach wer als letztes Online war umsortiert.");
                break;
 
        case "0.8.2": // SQL queries for v0.8.2
-               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD bonus_include_own enum('Y', 'N') not null default 'N'";
-               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_bonus ADD is_notify enum('Y', 'N') not null default 'N'";
+               ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_config` ADD bonus_include_own ENUM('Y','N') NOT NULL DEFAULT 'N'");
+               ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_bonus` ADD is_notify ENUM('Y','N') NOT NULL DEFAULT 'N'");
 
                // Update notes (these will be set as task text!)
-               $UPDATE_NOTES = "Eigene User-ID von Aktiv-Rallye ausschliessbar. Benachrichtigungsmails sind von Aktiv-Rallye ausgeschlossen.";
+               EXT_SET_UPDATE_NOTES("Eigene User-ID von Aktiv-Rallye ausschliessbar. Benachrichtigungsmails sind von Aktiv-Rallye ausgeschlossen.");
                break;
 
        case "0.8.3": // SQL queries for v0.8.3
-               $SQLs[] = "UPDATE "._MYSQL_PREFIX."_member_menu SET action='rals', sort='2', title='Aktiv-Rallye' WHERE what='bonus' LIMIT 1";
+               ADD_SQL("UPDATE `{!_MYSQL_PREFIX!}_member_menu` SET `action`='rals', `sort`='2', `title`='Aktiv-Rallye' WHERE `what`='bonus' LIMIT 1");
 
                // Update notes (these will be set as task text!)
-               $UPDATE_NOTES = "Mitgliedsmen&uuml; komplett umgebaut.";
+               EXT_SET_UPDATE_NOTES("Mitgliedsmen&uuml; komplett umgebaut.");
                break;
 
        case "0.8.4": // SQL queries for v0.8.4
-               $UPDATE_NOTES = "Ladeproblem bei nicht installierter Erweiterung <strong>cache</strong> gefixt.";
+               EXT_SET_UPDATE_NOTES("Ladeproblem bei nicht installierter Erweiterung <strong>cache</strong> gefixt.");
                break;
 
        case "0.8.5": // SQL queries for v0.8.5
-               $UPDATE_NOTES = "CSS-Klassenname gefixt in Templates.";
+               EXT_SET_UPDATE_NOTES("CSS-Klassenname gefixt in Templates.");
                break;
 
        case "0.8.6": // SQL queries for v0.8.6
-               $UPDATE_NOTES = "Fehlerhinweis bei deaktivierter Erweiterung verbessert.";
+               EXT_SET_UPDATE_NOTES("Fehlerhinweis bei deaktivierter Erweiterung verbessert.");
+               break;
+
+       case "0.8.7": // SQL queries for v0.8.7
+               ADD_SQL("INSERT INTO `{!_MYSQL_PREFIX!}_admin_menu` (`action`,`what`,`title`,`descr`,`sort`) VALUES ('email','list_notifications','Benachrichtigungen','Listet alle an die Mitglieder ausgesandten Benachrichtigungen auf.', 10)");
+
+               // Update notes
+               EXT_SET_UPDATE_NOTES("Benachrichtigungsmails f&uuml;r z.B. Bettel- oder Aktiv-Rallye werden nun angezeigt.");
+               break;
+
+       case "0.8.8": // SQL queries for v0.8.8
+               ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_user_stats` ADD bonus_stats_active ENUM('Y','N') NOT NULL DEFAULT 'N'");
+
+               // Update notes
+               EXT_SET_UPDATE_NOTES("Benachrichtigungsmails f&uuml;r z.B. Bettel- oder Aktiv-Rallye werden nun angezeigt.");
                break;
        }
        break;
 
+case "test": // For testing purposes. For details see file inc/modules/admin/what-extensions.php, arround line 305.
+       break;
+
 default: // Do stuff when extension is loaded
-       $dummy = LOAD_CONFIG();
-       $_CONFIG['login_bonus']          = $dummy['login_bonus'];          // Bonus points for successfull logins
-       $_CONFIG['turbo_bonus']          = $dummy['turbo_bonus'];          // Bonus points for the fastest clicker, No. 1
-       $_CONFIG['bonus_rates']          = $dummy['turbo_rates'];          // Points for clicker no. 2 to x
-       $_CONFIG['bonus_ranks']          = $dummy['bonus_ranks'];          // Total ranks who can win
-       $_CONFIG['login_timeout']        = $dummy['login_timeout'];        // Time in seconds between two logins
-       $_CONFIG['bonus_month']          = $dummy['last_bonus_month'];     // Last month where click-bonus are "paid"
-       $_CONFIG['bonus_mode']           = $dummy['bonus_mode'];           // Mode for adding points for login/click bonus
-       $_CONFIG['bonus_uid']            = $dummy['bonus_uid'];            // Member account to take points from
-       $_CONFIG['bonus_lines']          = $dummy['bonus_lines'];          // Number of lines to display in show_bonus.php
-       $_CONFIG['bonus_timeout']        = $dummy['bonus_timeout'];        // Auto-Purge timeout for bonus lines in mxchange_bonus_turbo
-       $_CONFIG['bonus_order']          = $dummy['bonus_order'];          // Bonus points for ordering mails
-       $_CONFIG['bonus_ref']            = $dummy['bonus_ref'];            // Bonus points for "making" a referral
-       $_CONFIG['bonus_stats']          = $dummy['bonus_stats'];          // Bonus points for 100% clickrate in mail stats
-       $_CONFIG['bonus_active']         = $dummy['bonus_active'];         // De/activate bonus active rallye
-       $_CONFIG['bonus_order_yn']       = $dummy['bonus_order_yn'];       // Include order bonus in analysis?
-       $_CONFIG['bonus_ref_yn']         = $dummy['bonus_ref_yn'];         // Include referral bonus in analysis?
-       $_CONFIG['bonus_stats_yn']       = $dummy['bonus_stats_yn'];       // Include statistics bonus in analysis?
-       $_CONFIG['bonus_login_yn']       = $dummy['bonus_login_yn'];       // Include login bonus in analysis?
-       $_CONFIG['bonus_click_yn']       = $dummy['bonus_click_yn'];       // Include "mailid" bonus in analysis?
-       $_CONFIG['bonus_en_notify']      = $dummy['bonus_en_notify'];      // Notify members about enabled active rallye?
-       $_CONFIG['bonus_di_notify']      = $dummy['bonus_di_notify'];      // Notify members about disabled active rallye?
-       $_CONFIG['bonus_new_mem_notify'] = $dummy['bonus_new_mem_notify']; // Notify members about disabled active rallye?
-       $_CONFIG['bonus_notify_points']  = $dummy['bonus_notify_points'];  // Bonus points for the enable-notification mail? 0 = disable!
-       $_CONFIG['bonus_notify_wait']    = $dummy['bonus_notify_wait'];    // Time to wait in seconds for bonus mails
-       $_CONFIG['bonus_include_own']    = $dummy['bonus_include_own'];    // Include webmaster's own userid in active rallye?
-       unset($dummy);
-
-       if (defined('__DAILY_RESET') && (!DEBUG_MODE) && ($CSS != 1))
-       {
+       if (isBooleanConstantAndTrue('__DAILY_RESET') && (!isBooleanConstantAndTrue('DEBUG_MODE')) && ($GLOBALS['output_mode'] != 1)) {
                // Daily reset was run so let's check if active rallye is activated
-               if ($_CONFIG['bonus_active'] == 'Y')
-               {
+               if (getConfig('bonus_active') == "Y") {
                        // Run active rallye
-                       if($_CONFIG['bonus_stats'] > 0) $INC_POOL[] = PATH."inc/stats_bonus.php";
-                       $INC_POOL[] = PATH."inc/monthly/monthly_bonus.php";
-               }
-                else
-               {
+                       if (getConfig('bonus_stats') > 0) $INC_POOL[] = sprintf("%sinc/stats_bonus.php", constant('PATH'));
+                       $INC_POOL[] = sprintf("%sinc/monthly/monthly_bonus.php", constant('PATH'));
+               } else {
                        // Reset points
-                       $INC_POOL[] = PATH."inc/reset/reset_bonus.php";
+                       $INC_POOL[] = sprintf("%sinc/reset/reset_bonus.php", constant('PATH'));
                }
        }
 
        // Check for bonus rallye is active and send mails out
-       if (($_CONFIG['bonus_active'] == 'Y') && ($_CONFIG['bonus_new_mem_notify'] == 'Y'))
-       {
+       if ((getConfig('bonus_active') == "Y") && (getConfig('bonus_new_mem_notify') == "Y")) {
                // Include file for sending out mails
-               $INC_POOL[] = PATH."inc/mails/bonus_mails.php";
+               $INC_POOL[] = sprintf("%sinc/mails/bonus_mails.php", constant('PATH'));
        }
        break;
 }
 
-// Language file prefix
-$EXT_LANG_PREFIX = "bonus";
-
-// Extension is always active?
-$EXT_ALWAYS_ACTIVE = 'N';
-
 //
 ?>