]> git.mxchange.org Git - mailer.git/blobdiff - inc/extensions/ext-rallye.php
A lot while() conditions rewritten to SQL_FETCHARRAY(), see bug #107, @TODO tags...
[mailer.git] / inc / extensions / ext-rallye.php
index a398cc62d7694ec465311b6e8a70258d4d1bbebf..a1ff9913bb2367a4acd4f9a56159676edeb754d2 100644 (file)
  ************************************************************************/
 
 // Some security stuff...
  ************************************************************************/
 
 // 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 number
        $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
        require($INC);
 }
 
 // Version number
-$EXT_VERSION = "0.3.4";
-
-// Auto-set extension version
-if (empty($EXT_VER)) $EXT_VER = $EXT_VERSION;
+EXT_SET_VERSION("0.3.5");
 
 // Version history array (add more with , "0.1" and so on)
 
 // Version history array (add more with , "0.1" and so on)
-$EXT_VER_HISTORY = array("0.0", "0.0.1", "0.0.2", "0.0.3", "0.0.4", "0.0.5", "0.0.6", "0.0.7", "0.0.8", "0.0.9", "0.1.0", "0.1.1", "0.1.2", "0.1.3", "0.1.4", "0.1.5", "0.1.6", "0.1.7", "0.1.8", "0.1.9", "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");
+EXT_SET_VER_HISTORY(array("0.0", "0.0.1", "0.0.2", "0.0.3", "0.0.4", "0.0.5", "0.0.6", "0.0.7", "0.0.8", "0.0.9", "0.1.0", "0.1.1", "0.1.2", "0.1.3", "0.1.4", "0.1.5", "0.1.6", "0.1.7", "0.1.8", "0.1.9", "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"));
 
 switch ($EXT_LOAD_MODE)
 {
 
 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
        // SQL commands to run
-       $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_rallye_data";
-       $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_rallye_prices";
-       $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_rallye_users";
-       $SQLs[] = "CREATE TABLE "._MYSQL_PREFIX."_rallye_data (
-id BIGINT(20) NOT NULL AUTO_INCREMENT,
-admin_id BIGINT(20) NOT NULL DEFAULT '0',
+       ADD_SQL("DROP TABLE IF EXISTS `{!_MYSQL_PREFIX!}_rallye_data`");
+       ADD_SQL("DROP TABLE IF EXISTS `{!_MYSQL_PREFIX!}_rallye_prices`");
+       ADD_SQL("DROP TABLE IF EXISTS `{!_MYSQL_PREFIX!}_rallye_users`");
+       ADD_SQL("CREATE TABLE `{!_MYSQL_PREFIX!}_rallye_data` (
+id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
+admin_id BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
 title VARCHAR(255) NOT NULL DEFAULT '',
 descr LONGBLOB NOT NULL,
 template VARCHAR(255) NOT NULL DEFAULT '',
 title VARCHAR(255) NOT NULL DEFAULT '',
 descr LONGBLOB NOT NULL,
 template VARCHAR(255) NOT NULL DEFAULT '',
-start_time VARCHAR(10) NOT NULL DEFAULT '0',
-end_time VARCHAR(10) NOT NULL DEFAULT '0',
-auto_add_new_user ENUM('Y', 'N') NOT NULL DEFAULT 'Y',
-is_active ENUM('Y', 'N') NOT NULL DEFAULT 'N',
-send_notify ENUM('Y', 'N') NOT NULL DEFAULT 'Y',
-notified ENUM('Y', 'N') NOT NULL DEFAULT 'N',
+start_time VARCHAR(10) NOT NULL DEFAULT 0,
+end_time VARCHAR(10) NOT NULL DEFAULT 0,
+auto_add_new_user ENUM('Y','N') NOT NULL DEFAULT 'Y',
+is_active ENUM('Y','N') NOT NULL DEFAULT 'N',
+send_notify ENUM('Y','N') NOT NULL DEFAULT 'Y',
+notified ENUM('Y','N') NOT NULL DEFAULT 'N',
 KEY (admin_id),
 PRIMARY KEY (id)
 KEY (admin_id),
 PRIMARY KEY (id)
-) TYPE=MyISAM";
-       $SQLs[] = "CREATE TABLE "._MYSQL_PREFIX."_rallye_prices (
-id BIGINT(20) NOT NULL AUTO_INCREMENT,
-rallye_id BIGINT(20) NOT NULL DEFAULT '0',
-price_level BIGINT(20) NOT NULL DEFAULT '0',
-points BIGINT(20) NOT NULL DEFAULT '0',
+) TYPE={!_TABLE_TYPE!}");
+       ADD_SQL("CREATE TABLE `{!_MYSQL_PREFIX!}_rallye_prices` (
+id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
+rallye_id BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
+price_level BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
+points BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
 info LONGBLOB NOT NULL,
 KEY (rallye_id),
 PRIMARY KEY(id)
 info LONGBLOB NOT NULL,
 KEY (rallye_id),
 PRIMARY KEY(id)
-) TYPE=MyISAM";
-       $SQLs[] = "CREATE TABLE "._MYSQL_PREFIX."_rallye_users (
-id BIGINT(20) NOT NULL AUTO_INCREMENT,
-rallye_id BIGINT(20) NOT NULL DEFAULT '0',
-userid BIGINT(20) NOT NULL DEFAULT '0',
-refs BIGINT(20) NOT NULL DEFAULT '0',
+) TYPE={!_TABLE_TYPE!}");
+       ADD_SQL("CREATE TABLE `{!_MYSQL_PREFIX!}_rallye_users` (
+id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
+rallye_id BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
+userid BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
+refs BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
 KEY (rallye_id),
 KEY (userid),
 PRIMARY KEY(id)
 KEY (rallye_id),
 KEY (userid),
 PRIMARY KEY(id)
-) TYPE=MyISAM";
+) TYPE={!_TABLE_TYPE!}");
+
        // Admin menu
        // Admin menu
-       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES('rallye', NULL, 'Rallye-Management', 'Richten Sie neue Ref-Rallyes ein, die zeitgesteuert anfangen und aufhöhren. Dabei wird alles weitere automatisch geregelt.', '9')";
-       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES('rallye', 'add_rallye', 'Neue Rallye hinzufügen', 'Neue Ref-Rallye hinzufügen.', '1')";
-       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES('rallye', 'config_rallye_prices', 'Preise einrichten', 'Richten Sie Preise zu den Rallyes ein.', '2')";
-       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES('rallye', 'list_rallyes', 'Rallyes verwalten', 'Alle bestehenden Ref-Rallyes auflisten, bearbeiten, stoppen, löschen usw.', '3')";
+       ADD_SQL("INSERT INTO `{!_MYSQL_PREFIX!}_admin_menu` (`action`,`what`,`title`,`descr`,`sort`) VALUES ('rallye', NULL, 'Rallye-Management','Richten Sie neue Ref-Rallyes ein, die zeitgesteuert anfangen und aufhöhren. Dabei wird alles weitere automatisch geregelt.','9')");
+       ADD_SQL("INSERT INTO `{!_MYSQL_PREFIX!}_admin_menu` (`action`,`what`,`title`,`descr`,`sort`) VALUES ('rallye','add_rallye','Neue Rallye hinzufügen','Neue Ref-Rallye hinzufügen.','1')");
+       ADD_SQL("INSERT INTO `{!_MYSQL_PREFIX!}_admin_menu` (`action`,`what`,`title`,`descr`,`sort`) VALUES ('rallye','config_rallye_prices','Preise einrichten','Richten Sie Preise zu den Rallyes ein.','2')");
+       ADD_SQL("INSERT INTO `{!_MYSQL_PREFIX!}_admin_menu` (`action`,`what`,`title`,`descr`,`sort`) VALUES ('rallye','list_rallyes','Rallyes verwalten','Alle bestehenden Ref-Rallyes auflisten, bearbeiten, stoppen, löschen usw.','3')");
+
        // Guest menu
        // Guest menu
-       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_guest_menu (action, what, title, visible, locked, sort) VALUES ('main', 'rallyes', 'Ref-Rallyes', 'Y', 'Y', '9')";
+       ADD_SQL("INSERT INTO `{!_MYSQL_PREFIX!}_guest_menu` (`action`,`what`,`title`,`visible`,`locked`,`sort`) VALUES ('main','rallyes','Ref-Rallyes','Y','Y','9')");
+
        // Member menu
        // Member menu
-       $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_member_menu (action, what, title, visible, locked, sort) VALUES('main', 'rallyes', 'Ref-Rallyes', 'Y', 'Y', '9')";
+       ADD_SQL("INSERT INTO `{!_MYSQL_PREFIX!}_member_menu` (`action`,`what`,`title`,`visible`,`locked`,`sort`) VALUES ('main','rallyes','Ref-Rallyes','Y','Y','9')");
        break;
 
 case "remove": // Do stuff when removing extension
        break;
 
 case "remove": // Do stuff when removing extension
-       // SQL commands to run
-       $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_rallye_data";
-       $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_rallye_prices";
-       $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_rallye_users";
-       $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_admin_menu WHERE action='rallye' LIMIT 4";
-       $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_guest_menu WHERE what='rallye' LIMIT 1";
-       $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_member_menu WHERE what='rallye' LIMIT 1";
+       // Drop tables
+       ADD_SQL("DROP TABLE IF EXISTS `{!_MYSQL_PREFIX!}_rallye_data`");
+       ADD_SQL("DROP TABLE IF EXISTS `{!_MYSQL_PREFIX!}_rallye_prices`");
+       ADD_SQL("DROP TABLE IF EXISTS `{!_MYSQL_PREFIX!}_rallye_users`");
+
+       // Remove menus
+       ADD_SQL("DELETE LOW_PRIORITY FROM `{!_MYSQL_PREFIX!}_admin_menu` WHERE `action`='rallye' LIMIT 4");
+       ADD_SQL("DELETE LOW_PRIORITY FROM `{!_MYSQL_PREFIX!}_guest_menu` WHERE `what`='rallyes' LIMIT 1");
+       ADD_SQL("DELETE LOW_PRIORITY FROM `{!_MYSQL_PREFIX!}_member_menu` WHERE `what`='rallyes' LIMIT 1");
+
+       // Unregister filter
+       UNREGISTER_FILTER('extra_autopurge', 'RALLYE_EXTRA_AUTOPURGE', true, $dry_run);
        break;
 
 case "activate": // Do stuff when admin activates this extension
        // SQL commands to run
        break;
 
 case "activate": // Do stuff when admin activates this extension
        // SQL commands to run
-       $SQLs[] = "UPDATE "._MYSQL_PREFIX."_guest_menu SET visible='Y', locked='N' WHERE what='rallyes' LIMIT 1";
-       $SQLs[] = "UPDATE "._MYSQL_PREFIX."_member_menu SET visible='Y', locked='N' WHERE what='rallyes' LIMIT 1";
+       ADD_SQL("UPDATE `{!_MYSQL_PREFIX!}_guest_menu` SET `visible`='Y', `locked`='N' WHERE `what`='rallyes' LIMIT 1");
+       ADD_SQL("UPDATE `{!_MYSQL_PREFIX!}_member_menu` SET `visible`='Y', `locked`='N' WHERE `what`='rallyes' LIMIT 1");
        break;
 
 case "deactivate": // Do stuff when admin deactivates this extension
        // SQL commands to run
        break;
 
 case "deactivate": // Do stuff when admin deactivates this extension
        // SQL commands to run
-       $SQLs[] = "UPDATE "._MYSQL_PREFIX."_guest_menu SET visible='Y', locked='Y' WHERE what='rallyes' LIMIT 1";
-       $SQLs[] = "UPDATE "._MYSQL_PREFIX."_member_menu SET visible='Y', locked='Y' WHERE what='rallyes' LIMIT 1";
+       ADD_SQL("UPDATE `{!_MYSQL_PREFIX!}_guest_menu` SET `visible`='N', `locked`='Y' WHERE `what`='rallyes' LIMIT 1");
+       ADD_SQL("UPDATE `{!_MYSQL_PREFIX!}_member_menu` SET `visible`='N', `locked`='Y' WHERE `what`='rallyes' LIMIT 1");
        break;
 
 case "update": // Update an extension
        switch ($EXT_VER)
        {
        case "0.0.1": // SQL queries for v0.0.1
        break;
 
 case "update": // Update an extension
        switch ($EXT_VER)
        {
        case "0.0.1": // SQL queries for v0.0.1
-               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_rallye_data ADD expired ENUM('Y', 'N') NOT NULL DEFAULT 'N'";
+               ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_rallye_data` ADD expired ENUM('Y','N') NOT NULL DEFAULT 'N'");
 
                // Update notes (these will be set as task text!)
 
                // Update notes (these will be set as task text!)
-               $UPDATE_NOTES = "Ablaufen der Rallyes intergriert.";
+               EXT_SET_UPDATE_NOTES("Ablaufen der Rallyes intergriert.");
                break;
 
        case "0.0.2": // SQL queries for v0.0.2
                break;
 
        case "0.0.2": // SQL queries for v0.0.2
-               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_rallye_users ADD curr_points DOUBLE(23,3) NOT NULL DEFAULT '0.000'";
+               ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_rallye_users` ADD curr_points FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000");
 
                // Update notes (these will be set as task text!)
 
                // Update notes (these will be set as task text!)
-               $UPDATE_NOTES = "Aktueller {!POINTS!}-Stand wird beachtet.";
+               EXT_SET_UPDATE_NOTES("Aktueller {!POINTS!}-Stand wird beachtet.");
                break;
 
        case "0.0.6": // SQL queries for v0.0.6
                // Update notes (these will be set as task text!)
                break;
 
        case "0.0.6": // SQL queries for v0.0.6
                // Update notes (these will be set as task text!)
-               $UPDATE_NOTES = "Fehler <I>Unknown column 'd.useid' in 'on clause'</I> behoben.";
+               EXT_SET_UPDATE_NOTES("Fehler <em>Unknown column 'd.useid' in 'on clause'</em> behoben.");
                break;
 
        case "0.0.7": // SQL queries for v0.0.7
                // Update notes (these will be set as task text!)
                break;
 
        case "0.0.7": // SQL queries for v0.0.7
                // Update notes (these will be set as task text!)
-               $UPDATE_NOTES = "Fehlende Abfrage im Mitlieder-Modul, on Erweiterung auch aktiviert ist.";
+               EXT_SET_UPDATE_NOTES("Fehlende Abfrage im Mitlieder-Modul, on Erweiterung auch aktiviert ist.");
                break;
 
        case "0.0.8": // SQL queries for v0.0.8
                // Update notes (these will be set as task text!)
                break;
 
        case "0.0.8": // SQL queries for v0.0.8
                // Update notes (these will be set as task text!)
-               $UPDATE_NOTES = "Fehler <U>Template nicht gefunden</U> behoben und Admin-Formulare ausgelagert";
+               EXT_SET_UPDATE_NOTES("Fehler <u>Template nicht gefunden</u> behoben und Admin-Formulare ausgelagert");
                break;
 
        case "0.0.9": // SQL queries for v0.0.9
                // Update notes (these will be set as task text!)
                break;
 
        case "0.0.9": // SQL queries for v0.0.9
                // Update notes (these will be set as task text!)
-               $UPDATE_NOTES = "Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist. Und der vorherige Fehler <U>Template nicht gefunden</U> ist endlich beseitigt.";
+               EXT_SET_UPDATE_NOTES("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist. Und der vorherige Fehler <u>Template nicht gefunden</u> ist endlich beseitigt.");
                break;
 
        case "0.1.0": // SQL queries for v0.2.1
                break;
 
        case "0.1.0": // SQL queries for v0.2.1
-               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_rallye_users CHANGE curr_points curr_points DOUBLE(23,5) NOT NULL DEFAULT '0.00000'";
+               ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_rallye_users` CHANGE curr_points curr_points FLOAT(23,5) UNSIGNED NOT NULL DEFAULT 0.00000");
 
                // Update notes (these will be set as task text!)
 
                // Update notes (these will be set as task text!)
-               $UPDATE_NOTES = "5 Nachkommastellen implementiert.";
+               EXT_SET_UPDATE_NOTES("5 Nachkommastellen implementiert.");
                break;
 
        case "0.1.1": // SQL queries for v0.1.1
                // Update notes (these will be set as task text!)
                break;
 
        case "0.1.1": // SQL queries for v0.1.1
                // 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.1.2": // SQL queries for v0.1.2
                // Update notes (these will be set as task text!)
                break;
 
        case "0.1.2": // SQL queries for v0.1.2
                // 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.1.3": // SQL queries for v0.1.3
                // Update notes (these will be set as task text!)
                break;
 
        case "0.1.3": // SQL queries for v0.1.3
                // Update notes (these will be set as task text!)
-               $UPDATE_NOTES = "Anzeigefehler im Gast-/Mitgliedsbereich behoben.";
+               EXT_SET_UPDATE_NOTES("Anzeigefehler im Gast-/Mitgliedsbereich behoben.");
                break;
 
        case "0.1.4": // SQL queries for v0.1.4
                // Update notes (these will be set as task text!)
                break;
 
        case "0.1.4": // SQL queries for v0.1.4
                // Update notes (these will be set as task text!)
-               $UPDATE_NOTES = "Admin-Mails korregiert.";
+               EXT_SET_UPDATE_NOTES("Admin-Mails korregiert.");
                break;
 
        case "0.1.5": // SQL queries for v0.1.5
                // Update notes (these will be set as task text!)
                break;
 
        case "0.1.5": // SQL queries for v0.1.5
                // 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.1.6": // SQL queries for v0.1.6
                // Update notes (these will be set as task text!)
                break;
 
        case "0.1.6": // SQL queries for v0.1.6
                // Update notes (these will be set as task text!)
-               $UPDATE_NOTES = "Seit <A href=\"#\">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.1.7": // SQL queries for v0.1.7
                // Update notes (these will be set as task text!)
                break;
 
        case "0.1.7": // SQL queries for v0.1.7
                // Update notes (these will be set as task text!)
-               $UPDATE_NOTES = "Aktivierte bzw. abgelaufene Rallyes werden nur ausserhalb des CSS-Modus geladen (wenn also nicht css.php aufgerufen wurde)";
+               EXT_SET_UPDATE_NOTES("Aktivierte bzw. abgelaufene Rallyes werden nur ausserhalb des CSS-Modus geladen (wenn also nicht css.php aufgerufen wurde)");
                break;
 
        case "0.1.8": // SQL queries for v0.1.8
                // Update notes (these will be set as task text!)
                break;
 
        case "0.1.8": // SQL queries for v0.1.8
                // Update notes (these will be set as task text!)
-               $UPDATE_NOTES = "Weitere Templates vom Admin-Bereich ausgelagert und Referral-Anazahl in der Mail zur Rallye-Ank&uuml;ndigung repariert.";
+               EXT_SET_UPDATE_NOTES("Weitere Templates vom Admin-Bereich ausgelagert und Referal-Anazahl in der Mail zur Rallye-Ank&uuml;ndigung repariert.");
                break;
 
        case "0.1.9": // SQL queries for v0.1.9
                // Update notes (these will be set as task text!)
                break;
 
        case "0.1.9": // SQL queries for v0.1.9
                // Update notes (these will be set as task text!)
-               $UPDATE_NOTES = "Funktion ADMIN_USER_PROFILE_LINK() mit Verlinkung auf Referral-Liste implementiert.";
+               EXT_SET_UPDATE_NOTES("Funktion ADMIN_USER_PROFILE_LINK() mit Verlinkung auf Referal-Liste implementiert.");
                break;
 
        case "0.2.0": // SQL queries for v0.2.0
                break;
 
        case "0.2.0": // SQL queries for v0.2.0
-               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_rallye_data ADD min_users BIGINT(20) NOT NULL DEFAULT '0'";
-               $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_rallye_data ADD min_prices BIGINT(20) NOT NULL DEFAULT '3'";
+               ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_rallye_data` ADD min_users BIGINT(20) UNSIGNED NOT NULL DEFAULT 0");
+               ADD_SQL("ALTER TABLE `{!_MYSQL_PREFIX!}_rallye_data` ADD min_prices BIGINT(20) UNSIGNED NOT NULL DEFAULT '3'");
 
                // Update notes (these will be set as task text!)
 
                // Update notes (these will be set as task text!)
-               $UPDATE_NOTES = "Ablaufen der Rallyes intergriert. Bauen Sie in Ihr Template <STRONG>templates/de/emails/member/member_rallye_notifty.tpl</STRONG> folgende zwei Zeilen ein:<br />
-<UL>
-  <LI>&#36;DATA&#91;min_users&#93;</LI>
-  <LI>&#36;DATA&#91;min_prices&#93;</LI>
-</UL>
-Zudem sollten Sie mindestens folgende Templates (in <STRONG>templates/".GET_LANGUAGE()."/html/guest/</STRONG> !) aktualisieren:<br />
-<UL>
-  <LI><STRONG>guest_rallye_footer.tpl</STRONG></LI>
-  <LI><STRONG>guest_rallye_header.tpl</STRONG></LI>
-</UL>";
+               EXT_SET_UPDATE_NOTES("Ablaufen der Rallyes intergriert. Bauen Sie in Ihr Template <strong>templates/de/emails/member/member_rallye_notify.tpl</strong> folgende zwei Zeilen ein:<br />
+<ul>
+  <li>&#36;DATA&#91;min_users&#93;</li>
+  <li>&#36;DATA&#91;min_prices&#93;</li>
+</ul>
+Zudem sollten Sie mindestens folgende Templates (in <strong>templates/".GET_LANGUAGE()."/html/guest/</strong> !) aktualisieren:<br />
+<ul>
+  <li><strong>guest_rallye_footer.tpl</strong></li>
+  <li><strong>guest_rallye_header.tpl</strong></li>
+</ul>");
                break;
 
        case "0.2.1": // SQL queries for v0.2.1
                // Update notes (these will be set as task text!)
                break;
 
        case "0.2.1": // SQL queries for v0.2.1
                // 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.2.2": // SQL queries for v0.2.2
                // Update notes (these will be set as task text!)
                break;
 
        case "0.2.2": // SQL queries for v0.2.2
                // Update notes (these will be set as task text!)
-               $UPDATE_NOTES = "Links wegen <STRONG>what=admins_contct</STRONG> ge&auml;ndert.";
+               EXT_SET_UPDATE_NOTES("Links wegen <strong>what=admins_contct</strong> ge&auml;ndert.");
                break;
 
        case "0.2.3": // SQL queries for v0.2.3
                // Update notes (these will be set as task text!)
                break;
 
        case "0.2.3": // SQL queries for v0.2.3
                // Update notes (these will be set as task text!)
-               $UPDATE_NOTES = "HTML-Code ausgelagert in Templates und SQL-Anweisungen abgesichert.";
+               EXT_SET_UPDATE_NOTES("HTML-Code ausgelagert in Templates und SQL-Anweisungen abgesichert.");
                break;
 
        case "0.2.4": // SQL queries for v0.2.4
                // Update notes (these will be set as task text!)
                break;
 
        case "0.2.4": // SQL queries for v0.2.4
                // Update notes (these will be set as task text!)
-               $UPDATE_NOTES = "Abspeichern von Einstellungen repariert.";
+               EXT_SET_UPDATE_NOTES("Abspeichern von Einstellungen repariert.");
                break;
 
        case "0.2.5": // SQL queries for v0.2.5
                // Update notes (these will be set as task text!)
                break;
 
        case "0.2.5": // SQL queries for v0.2.5
                // Update notes (these will be set as task text!)
-               $UPDATE_NOTES = "Men&uuml;punkt &quot;Rallyes verwalten&quot; repariert.";
+               EXT_SET_UPDATE_NOTES("Men&uuml;punkt &quot;Rallyes verwalten&quot; repariert.");
                break;
 
        case "0.2.6": // SQL queries for v0.2.6
                // Update notes (these will be set as task text!)
                break;
 
        case "0.2.6": // SQL queries for v0.2.6
                // Update notes (these will be set as task text!)
-               $UPDATE_NOTES = "Automatisches Starten von Referral-Rallyes repariert.";
+               EXT_SET_UPDATE_NOTES("Automatisches Starten von Referal-Rallyes repariert.");
                break;
 
        case "0.2.7": // SQL queries for v0.2.7
                // Update notes (these will be set as task text!)
                break;
 
        case "0.2.7": // SQL queries for v0.2.7
                // Update notes (these will be set as task text!)
-               $UPDATE_NOTES = "Fatalen Fehler beseitigt.";
+               EXT_SET_UPDATE_NOTES("Fatalen Fehler beseitigt.");
                break;
 
        case "0.2.8": // SQL queries for v0.2.8
                // Update notes (these will be set as task text!)
 
                break;
 
        case "0.2.8": // SQL queries for v0.2.8
                // Update notes (these will be set as task text!)
 
-               $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.2.9": // SQL queries for v0.2.9
                // Update notes (these will be set as task text!)
                break;
 
        case "0.2.9": // SQL queries for v0.2.9
                // Update notes (these will be set as task text!)
-               $UPDATE_NOTES = "Sicherheitsupdate f&uuml;r die Include-Befehle.";
+               EXT_SET_UPDATE_NOTES("Sicherheitsupdate f&uuml;r die Include-Befehle.");
                break;
 
        case "0.3.0": // SQL queries for v0.3.0
                // Update notes (these will be set as task text!)
                break;
 
        case "0.3.0": // SQL queries for v0.3.0
                // Update notes (these will be set as task text!)
-               $UPDATE_NOTES = "if-Anweisungen auf Funktion <STRONG>empty()</STRONG> umgestellt.";
+               EXT_SET_UPDATE_NOTES("if-Anweisungen auf Funktion <strong>empty()</strong> umgestellt.");
                break;
 
        case "0.3.1": // SQL queries for v0.3.1
                // Update notes (these will be set as task text!)
                break;
 
        case "0.3.1": // SQL queries for v0.3.1
                // Update notes (these will be set as task text!)
-               $UPDATE_NOTES = "Erweiterung f&uuml;r automatisch generierte Admin-Kontaktlinks ge&auml;ndert.";
+               EXT_SET_UPDATE_NOTES("Erweiterung f&uuml;r automatisch generierte Admin-Kontaktlinks ge&auml;ndert.");
                break;
 
        case "0.3.2": // SQL queries for v0.3.2
                break;
 
        case "0.3.2": // SQL queries for v0.3.2
-               $SQLs[] = "UPDATE "._MYSQL_PREFIX."_member_menu SET action='rals', sort='1', title='Referral-Rallye' WHERE what='rallyes' LIMIT 1";
+               ADD_SQL("UPDATE `{!_MYSQL_PREFIX!}_member_menu` SET `action`='rals', `sort`='1', `title`='Referal-Rallye' WHERE `what`='rallyes' LIMIT 1");
 
                // Update notes (these will be set as task text!)
 
                // 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.3.3": // SQL queries for v0.3.3
                // Update notes (these will be set as task text!)
                break;
 
        case "0.3.3": // SQL queries for v0.3.3
                // Update notes (these will be set as task text!)
-               $UPDATE_NOTES = "Rallyes werden nun nur dann automatisch beseitigt, wenn die Erweiterung <strong>autopurge</strong> installiert und aktiviert ist.";
+               EXT_SET_UPDATE_NOTES("Rallyes werden nun nur dann automatisch beseitigt, wenn die Erweiterung <strong>autopurge</strong> installiert und aktiviert ist.");
                break;
 
        case "0.3.4": // SQL queries for v0.3.4
                // Update notes (these will be set as task text!)
                break;
 
        case "0.3.4": // SQL queries for v0.3.4
                // Update notes (these will be set as task text!)
-               $UPDATE_NOTES = "Fehlerhinweis bei deaktivierter Erweiterung verbessert.";
+               EXT_SET_UPDATE_NOTES("Fehlerhinweis bei deaktivierter Erweiterung verbessert.");
+               break;
+
+       case "0.3.5": // SQL queries for 0.3.5
+               // This update depends on sql_patches
+               EXT_SET_UPDATE_DEPENDS("sql_patches");
+
+               // Register filter
+               REGISTER_FILTER('extra_autopurge', 'RALLYE_EXTRA_AUTOPURGE', false, true, $dry_run);
+
+               // Update notes (these will be set as task text!)
+               EXT_SET_UPDATE_NOTES("Filter hinzugef&uuml;gt und ist von <strong>sql_patches</strong> abh&auml;ngig.");
                break;
        }
        break;
 
                break;
        }
        break;
 
+case "modify": // When the extension got modified
+       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
        // Do stuff only when not in CSS mode
 default: // Do stuff when extension is loaded
        // Do stuff only when not in CSS mode
-       if (($CSS != "1") && ($CSS != "-1"))
-       {
+       if (($GLOBALS['output_mode'] != "1") && ($GLOBALS['output_mode'] != "-1") && ($GLOBALS['cache_mode'] != "init")) {
                // Get total member count
                $TOTAL = GET_TOTAL_DATA("CONFIRMED", "user_data", "userid", "status", true);
 
                // Get total member count
                $TOTAL = GET_TOTAL_DATA("CONFIRMED", "user_data", "userid", "status", true);
 
@@ -318,7 +338,7 @@ default: // Do stuff when extension is loaded
 
                // Check for new started but not notified rallyes
                $result = SQL_QUERY("SELECT SQL_SMALL_RESULT id, title, start_time, end_time, send_notify".$ADD1."
 
                // Check for new started but not notified rallyes
                $result = SQL_QUERY("SELECT SQL_SMALL_RESULT id, title, start_time, end_time, send_notify".$ADD1."
-FROM "._MYSQL_PREFIX."_rallye_data
+FROM `{!_MYSQL_PREFIX!}_rallye_data`
 WHERE is_active='Y' AND notified='N' AND expired='N' AND start_time <= UNIX_TIMESTAMP() AND end_time > UNIX_TIMESTAMP()
 LIMIT 1", __FILE__, __LINE__);
                if (SQL_NUMROWS($result) == 1) {
 WHERE is_active='Y' AND notified='N' AND expired='N' AND start_time <= UNIX_TIMESTAMP() AND end_time > UNIX_TIMESTAMP()
 LIMIT 1", __FILE__, __LINE__);
                if (SQL_NUMROWS($result) == 1) {
@@ -331,26 +351,19 @@ LIMIT 1", __FILE__, __LINE__);
 
                // Check for expired rallyes
                $result = SQL_QUERY("SELECT SQL_SMALL_RESULT d.id, d.title, d.start_time, d.end_time, d.send_notify".$ADD2."
 
                // Check for expired rallyes
                $result = SQL_QUERY("SELECT SQL_SMALL_RESULT d.id, d.title, d.start_time, d.end_time, d.send_notify".$ADD2."
-FROM "._MYSQL_PREFIX."_rallye_data AS d
+FROM `{!_MYSQL_PREFIX!}_rallye_data` AS d
 WHERE d.is_active='Y' AND d.notified='Y' AND d.expired='N' AND (d.end_time <= UNIX_TIMESTAMP()".$OR.")
 LIMIT 1", __FILE__, __LINE__);
 WHERE d.is_active='Y' AND d.notified='Y' AND d.expired='N' AND (d.end_time <= UNIX_TIMESTAMP()".$OR.")
 LIMIT 1", __FILE__, __LINE__);
-               if ((SQL_NUMROWS($result) == 1) && (EXT_IS_ACTIVE("autopurge")))
-               {
+               if ((SQL_NUMROWS($result) == 1) && (EXT_IS_ACTIVE("autopurge"))) {
                        // End rallye here...
                        RALLYE_EXPIRE_RALLYES($result);
                        // End rallye here...
                        RALLYE_EXPIRE_RALLYES($result);
-               }
+               } // END - if
 
                // Free memory
                SQL_FREERESULT($result);
 
                // Free memory
                SQL_FREERESULT($result);
-       }
+       } // END - if
        break;
 }
 
        break;
 }
 
-// Language file prefix
-$EXT_LANG_PREFIX = "rallye";
-
-// Extension is always active?
-$EXT_ALWAYS_ACTIVE = "N";
-
 //
 ?>
 //
 ?>