************************************************************************/
// 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
-$EXT_VERSION = "0.3.4";
+$EXT_VERSION = "0.3.5";
// Auto-set extension version
if (empty($EXT_VER)) $EXT_VER = $EXT_VERSION;
// 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_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)
{
-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[] = "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',
-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',
+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 '',
+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)
) 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',
-info longblob not null,
+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)
) 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',
+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)
) TYPE=MyISAM";
+
// 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')";
+ $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')";
+
// Guest menu
- $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_guest_menu (action, what, title, visible, locked, sort) VALUES ('main', 'rallyes', 'Ref-Rallyes', 'Y', 'Y', '9')";
+ $SQLs[] = "INSERT INTO `"._MYSQL_PREFIX."_guest_menu` (`action`,`what`,`title`,`visible`,`locked`,`sort`) VALUES ('main','rallyes','Ref-Rallyes','Y','Y','9')";
+
// Member menu
- $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_member_menu (action, what, title, visible, locked, sort) VALUES('main', 'rallyes', 'Ref-Rallyes', 'Y', 'Y', '9')";
+ $SQLs[] = "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
- // SQL commands to run
+ // Drop tables
$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";
+
+ // Remove menus
+ $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='rallyes' LIMIT 1";
+ $SQLs[] = "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
- $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";
+ $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";
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";
+ $SQLs[] = "UPDATE `"._MYSQL_PREFIX."_guest_menu` SET visible='N', locked='Y' WHERE what='rallyes' LIMIT 1";
+ $SQLs[] = "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
- $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_rallye_data ADD expired enum('Y', 'N') not null default 'N'";
+ $SQLs[] = "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 = "Ablaufen der Rallyes intergriert.";
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'";
+ $SQLs[] = "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 = "Aktueller {!POINTS!}-Stand wird beachtet.";
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'";
+ $SQLs[] = "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 = "5 Nachkommastellen implementiert.";
case "0.1.6": // SQL queries for v0.1.6
// 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> überflüssige HTML-Tags entfernt.";
+ $UPDATE_NOTES = "Seit <A href=\"#\">Patch 340</A> überflüssige HTML-Tags entfernt.";
break;
case "0.1.7": // SQL queries for v0.1.7
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ündigung repariert.";
+ $UPDATE_NOTES = "Weitere Templates vom Admin-Bereich ausgelagert und Referal-Anazahl in der Mail zur Rallye-Ankündigung repariert.";
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.";
+ $UPDATE_NOTES = "Funktion ADMIN_USER_PROFILE_LINK() mit Verlinkung auf Referal-Liste implementiert.";
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'";
+ $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_rallye_data ADD min_users BIGINT(20) UNSIGNED NOT NULL DEFAULT 0";
+ $SQLs[] = "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 = "Ablaufen der Rallyes intergriert. Bauen Sie in Ihr Template <STRONG>templates/de/emails/member/member_rallye_notifty.tpl</STRONG> folgende zwei Zeilen ein:<br />
+ $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>$DATA[min_users]</LI>
<LI>$DATA[min_prices]</LI>
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.";
+ $UPDATE_NOTES = "Automatisches Starten von Referal-Rallyes repariert.";
break;
case "0.2.7": // SQL queries for v0.2.7
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";
+ $SQLs[] = "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 = "Mitgliedsmenü komplett umgebaut.";
// Update notes (these will be set as task text!)
$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_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!)
+ $UPDATE_NOTES = "Filter hinzugefügt und ist von <strong>sql_patches</strong> abhängig.";
+ 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
// Do stuff only when not in CSS mode
- if (($CSS != "1") && ($CSS != "-1"))
- {
+ if (($CSS != "1") && ($CSS != "-1") && ($cacheMode != "init")) {
// Get total member count
$TOTAL = GET_TOTAL_DATA("CONFIRMED", "user_data", "userid", "status", true);
// Add more data on higher versions
$ADD1 = ""; $ADD2 = ""; $OR = "";
- if (GET_EXT_VERSION("rallye") >= "0.2.0")
- {
+ if (GET_EXT_VERSION("rallye") >= "0.2.0") {
$ADD1 = ", min_users, min_prices";
$ADD2 = ", d.min_users, d.min_prices";
$OR = " OR (d.min_users <= ".$TOTAL." AND d.min_users > 0)";
- }
+ } // END - if
// 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
-WHERE is_active='Y' AND notified='N' AND expired='N' AND start_time <= ".time()." AND end_time > ".time()."
+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)
- {
+ if (SQL_NUMROWS($result) == 1) {
// Start rallye
RALLYE_AUTOSTART_RALLYES($result);
- }
+ } // END - if
// Free memory
SQL_FREERESULT($result);
// 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
-WHERE d.is_active='Y' AND d.notified='Y' AND d.expired='N' AND (d.end_time <= ".time()."".$OR.")
+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 - if
// Free memory
SQL_FREERESULT($result);
- }
+ } // END - if
break;
}
-// Language file prefix
-$EXT_LANG_PREFIX = "rallye";
-
-// Extension is always active?
-$EXT_ALWAYS_ACTIVE = "N";
-
//
?>