]> git.mxchange.org Git - mailer.git/blobdiff - inc/extensions/ext-sql_patches.php
Removal of sql_patches should now remove what=stats2 in member menu
[mailer.git] / inc / extensions / ext-sql_patches.php
index b9feccd1c3536b4e2c2403d9316d327b91911e62..e71bf2c68a5cb1fb11c78f2f83fb486f72da055a 100644 (file)
  ************************************************************************/
 
 // Some security stuff...
-if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF'])))
-{
+if ((ereg(basename(__FILE__), $_SERVER['PHP_SELF']))) {
        $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
        require($INC);
 }
 
 // Version number
-$EXT_VERSION = "0.4.0";
+$EXT_VERSION = "0.4.4";
 
 // Auto-set extension version
 if (!isset($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", "0.3.5", "0.3.6", "0.3.7", "0.3.8", "0.3.9", "0.4.0");
+$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", "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");
 
 switch ($EXT_LOAD_MODE)
 {
@@ -65,16 +64,19 @@ what='config_refid' OR
 what='config_title' OR
 what='sub_points' OR
 what='config_admin' OR
-what='list_norefs' LIMIT 12";
+what='config_proxy' OR
+what='list_norefs'
+LIMIT 13";
        $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_themes";
        $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_guest_menu WHERE action='themes' LIMIT 1";
        $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_member_menu WHERE
 action='themes' OR
 what='themes' OR
-(action='stats' AND what='') OR
-(action='extras' AND what='') OR
-(action='rals' AND what='') OR
-(action='account' AND what='') LIMIT 7";
+what='stats2' OR
+(action='stats' AND (what='' OR what IS NULL)) OR
+(action='extras' AND (what='' OR what IS NULL)) OR
+(action='rals' AND (what='' OR what IS NULL)) OR
+(action='account' AND (what='' OR what IS NULL)) LIMIT 8";
        $SQLs[] = "UPDATE "._MYSQL_PREFIX."_member_menu SET action='main' WHERE
 action='stats' OR
 action='extras' OR
@@ -163,7 +165,7 @@ case "update": // Update an extension
                $UPDATE_NOTES = "Unbestätigte Maillinks können unter Email-Management -> Unbest. Mails auflisten aufgelistet werden.";
                break;
 
-       case "0.1.0": // SQL queries for v0.1.0
+       case "0.1.0": // SQL queries for v0.2.1
                $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD reg_points_mode enum('ref', 'direct') not null default 'ref'";
 
                // Update notes (these will be set as task text!)
@@ -197,11 +199,11 @@ case "update": // Update an extension
        case "0.1.4": // SQL queries for v0.1.4
                $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD default_theme varchar(255) not null default '".GET_CURR_THEME()."'";
                $SQLs[] = "DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_admin_menu WHERE action='theme' LIMIT 3";
-               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES ('theme', '', 'Themes', 'Verwalten Sie hier alle Designs (Themes) Ihres Mailtausch-Scriptes.', 8)";
+               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES ('theme', NULL, 'Themes', 'Verwalten Sie hier alle Designs (Themes) Ihres Mailtausch-Scriptes.', 8)";
                $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES ('theme', 'theme_import', 'Importieren', 'Es wird das Verzeichnis "theme" nach neuen Ordnern durchsucht und anschliessend in die Datenbank gesperrt aufgenommen.', 1)";
                $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES ('theme', 'theme_edit', 'Modifizieren', 'Ändern Sie Titel, Freigaben usw. an den Themes. Sie können bis auf das Standart-Theme "default" auch Themes aus der Datenbank entfernen. Vorher sollten Sie es jedoch vom Server löschen, damit es niht erneut importiert werden kann.', 2)";
-               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_guest_menu (action, what, title, sort, visible, locked) VALUES ('themes', '', 'Design-Auswahl', 4, 'Y', 'N')";
-               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_member_menu (action, what, title, sort, visible, locked) VALUES ('themes', '', 'Design-Auswahl', 3, 'Y', 'N')";
+               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_guest_menu (action, what, title, sort, visible, locked) VALUES ('themes', NULL, 'Design-Auswahl', 4, 'Y', 'N')";
+               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_member_menu (action, what, title, sort, visible, locked) VALUES ('themes', NULL, 'Design-Auswahl', 3, 'Y', 'N')";
                $SQLs[] = "DROP TABLE IF EXISTS "._MYSQL_PREFIX."_themes";
                $SQLs[] = "CREATE TABLE "._MYSQL_PREFIX."_themes (
 id bigint(20) not null auto_increment,
@@ -454,11 +456,11 @@ PRIMARY KEY (id)
 
        case "0.3.5": // SQL queries for v0.3.5
                // List accounts with no referral
-               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_member_menu (action, what, title, sort, visible, locked) VALUES ('stats', '', 'Statistiken', 4, 'Y', 'N')";
+               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_member_menu (action, what, title, sort, visible, locked) VALUES ('stats', NULL, 'Statistiken', 4, 'Y', 'N')";
                $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_member_menu (action, what, title, sort, visible, locked) VALUES ('stats', 'stats2', 'Framekiller-Mails', 2, 'Y', 'N')";
-               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_member_menu (action, what, title, sort, visible, locked) VALUES ('extras', '', 'Extras', 5, 'Y', 'N')";
-               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_member_menu (action, what, title, sort, visible, locked) VALUES ('rals', '', 'Rallyes', 6, 'Y', 'N')";
-               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_member_menu (action, what, title, sort, visible, locked) VALUES ('account', '', 'Ihr Account', 7, 'Y', 'N')";
+               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_member_menu (action, what, title, sort, visible, locked) VALUES ('extras', NULL, 'Extras', 5, 'Y', 'N')";
+               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_member_menu (action, what, title, sort, visible, locked) VALUES ('rals', NULL, 'Rallyes', 6, 'Y', 'N')";
+               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_member_menu (action, what, title, sort, visible, locked) VALUES ('account', NULL, 'Ihr Account', 7, 'Y', 'N')";
                $SQLs[] = "UPDATE "._MYSQL_PREFIX."_member_menu SET sort='8' WHERE action='themes' LIMIT 1";
                $SQLs[] = "UPDATE "._MYSQL_PREFIX."_member_menu SET action='stats', sort='1', title='Klick-Mails' WHERE what='stats' LIMIT 1";
                $SQLs[] = "UPDATE "._MYSQL_PREFIX."_member_menu SET action='account', sort='1', title='Designs' WHERE what='themes' LIMIT 1";
@@ -477,7 +479,7 @@ PRIMARY KEY (id)
                $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD rand_no bigint(20) not null default '0'";
                $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD file_hash varchar(255) not null default ''";
                $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_config ADD master_salt varchar(255) not null default ''";
-               $SQLs[] = "UPDATE "._MYSQL_PREFIX."_config SET rand_no=(ROUND(RAND() * 99999) + 100000) WHERE config='0' LIMIT 1";
+               $SQLs[] = "UPDATE "._MYSQL_PREFIX."_config SET rand_no=(ROUND(RAND() * 99999) + 100000) WHERE config=0 LIMIT 1";
                $SQLs[] = "ALTER TABLE "._MYSQL_PREFIX."_mod_reg ADD has_menu enum('Y', 'N') NOT NULL default 'N'";
                $SQLs[] = "UPDATE "._MYSQL_PREFIX."_mod_reg SET has_menu='Y' WHERE module='admin' OR module='index' OR module='login' LIMIT 3";
 
@@ -508,103 +510,110 @@ PRIMARY KEY (id)
                break;
 
        case "0.4.0": // SQL queries for v0.4.0
-               $SQLs[] = "UPDATE "._MYSQL_PREFIX."_admin_menu SET title = 'Email-Management' WHERE action = 'email' AND what='' LIMIT 1";
+               $SQLs[] = "UPDATE "._MYSQL_PREFIX."_admin_menu SET title = 'Email-Management' WHERE action = 'email' AND (what='' OR what IS NULL) LIMIT 1";
 
                // Update notes (these will be set as task text!)
                $UPDATE_NOTES = "Email-Verwaltung nach Email-Management umbenannt.";
                break;
+
+       case "0.4.1": // SQL queries for v0.4.1
+               $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_user_data` DROP INDEX `status` , ADD INDEX `status` ( `status` , `max_mails` )";
+               $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_config` ADD `show_timings` ENUM ('Y','N') NOT NULL DEFAULT 'Y'";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Tabellen-Schlüssel neu gesetzt und Parsing-Zeit im Footer eingeblendet.";
+               break;
+
+       case "0.4.2": // SQL queries for v0.4.2
+               $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_online` ADD INDEX `admin_member` (`is_admin`, `is_member`)";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Neuen Schlüssel zur Online-Tabelle hinzugefügt.";
+               break;
+
+       case "0.4.3": // SQL queries for v0.4.3
+               $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_config` ADD `proxy_host` VARCHAR(255) NOT NULL DEFAULT ''";
+               $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_config` ADD `proxy_port` INT(5) NOT NULL DEFAULT '0'";
+               $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_config` ADD `proxy_username` VARCHAR(255) NOT NULL DEFAULT ''";
+               $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_config` ADD `proxy_password` VARCHAR(255) NOT NULL DEFAULT ''";
+               $SQLs[] = "INSERT INTO "._MYSQL_PREFIX."_admin_menu (action, what, title, descr, sort) VALUES ('setup', 'config_proxy', 'Proxy-Einstellungen', 'Sollte Ihr Webserver sich hinter einem Proxy befinden, so können Sie hier MXChange so konfigurieren, dass es Updates durch diesen hindurch sucht!', 15)";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Proxy-Einstellungen hinzugefügt.";
+               break;
+
+       case "0.4.4": // SQL queries for v0.4.4
+               $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_admin_menu` CHANGE `what` `what` VARCHAR(255) NULL DEFAULT NULL";
+               $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_guest_menu` CHANGE `what` `what` VARCHAR(255) NULL DEFAULT NULL";
+               $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_member_menu` CHANGE `what` `what` VARCHAR(255) NULL DEFAULT NULL";
+               $SQLs[] = "UPDATE "._MYSQL_PREFIX."_admin_menu SET what=NULL WHERE what=''";
+               $SQLs[] = "UPDATE "._MYSQL_PREFIX."_guest_menu SET what=NULL WHERE what=''";
+               $SQLs[] = "UPDATE "._MYSQL_PREFIX."_member_menu SET what=NULL WHERE what=''";
+               $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_admin_menu` DROP INDEX `what`, ADD UNIQUE (`what`)";
+               $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_guest_menu` DROP INDEX `what`, ADD UNIQUE (`what`)";
+               $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_member_menu` ADD INDEX `action` (`action`)";
+               $SQLs[] = "ALTER TABLE `"._MYSQL_PREFIX."_member_menu` DROP INDEX `what`, ADD UNIQUE (`what`)";
+
+               // Update notes (these will be set as task text!)
+               $UPDATE_NOTES = "Schlüssel in Admin-, Gast- und Mitgliedsmenü verbessert.";
+               break;
        }
        break;
 
 default: // Do stuff when extension is loaded
-       $DUMMY = LOAD_CONFIG("0");
+       $dummy = LOAD_CONFIG();
 
        // When the sql_patches is not installed we cannot load it's configuration... *sigh*
-       if (GET_EXT_VERSION("sql_patches") != "") {
-               $CONFIG['ext_autopurge']     = $DUMMY['ext_autopurge'];
-               $CONFIG['mails_page']        = $DUMMY['mails_page'];
-               $CONFIG['index_home']        = $DUMMY['index_home'];
-               $CONFIG['verbose_sql']       = $DUMMY['verbose_sql'];
-               $CONFIG['middot']            = $DUMMY['menu_blur_spacer'];
-               $CONFIG['reg_points_mode']   = $DUMMY['reg_points_mode'];
-               $CONFIG['index_delay']       = $DUMMY['index_delay'];
-               $CONFIG['index_cookie']      = $DUMMY['index_cookie'];
-               $CONFIG['def_refid']         = $DUMMY['def_refid'];
-               $CONFIG['refid_target']      = $DUMMY['refid_target'];
-               $CONFIG['default_theme']     = $DUMMY['default_theme'];
-               $CONFIG['title_decoration']  = $DUMMY['enable_title_deco'];
-               $CONFIG['title_mod_show']    = $DUMMY['enable_mod_title'];
-               $CONFIG['title_what_show']   = $DUMMY['enable_what_title'];
-               $CONFIG['title_left']        = $DUMMY['title_left'];
-               $CONFIG['title_middle']      = $DUMMY['title_middle'];
-               $CONFIG['title_right']       = $DUMMY['title_right'];
-               $CONFIG['mad_counter']       = $DUMMY['mad_count'];
-               $CONFIG['last_mad']          = $DUMMY['mad_timestamp'];
-               $CONFIG['css_php']           = $DUMMY['css_php'];
-               $CONFIG['guest_menu']        = $DUMMY['guest_menu'];
-               $CONFIG['member_menu']       = $DUMMY['member_menu'];
-               $CONFIG['youre_here']        = $DUMMY['youre_here'];
-               $CONFIG['img_type']          = $DUMMY['img_type'];
-               $CONFIG['stats_limit']       = $DUMMY['stats_limit'];
-               $CONFIG['admin_menu']        = $DUMMY['admin_menu'];
-               $CONFIG['admin_menu_sorter'] = $DUMMY['admin_menu_sorter'];
-               $CONFIG['salt_length']       = $DUMMY['salt_length'];
-               $CONFIG['pass_scramble']     = trim($DUMMY['pass_scramble']);
-               $CONFIG['file_hash']         = trim($DUMMY['file_hash']);
-               $CONFIG['master_salt']       = trim($DUMMY['master_salt']);
-               $CONFIG['secret_key']        = "";
+       if (GET_EXT_VERSION("sql_patches") != '') {
+               $_CONFIG['secret_key']        = "";
+               //die("<pre>".print_r($dummy, true)."</pre>");
+               $_CONFIG = array_merge($_CONFIG, $dummy);
 
                // Read key from secret file
-               if ((empty($CONFIG['file_hash'])) || (empty($CONFIG['master_salt'])) || (empty($CONFIG['pass_scramble'])))
-               {
+               if ((empty($_CONFIG['file_hash'])) || (empty($_CONFIG['master_salt'])) || (empty($_CONFIG['pass_scramble']))) {
                        // Maybe need setup of secret key!
                        require_once(PATH."inc/gen_sql_patches.php");
 
-                       if (GET_EXT_VERSION("cache") >= "0.1.2")
-                       {
+                       if (GET_EXT_VERSION("cache") >= "0.1.2") {
                                // Remove extensions and mod_reg cache file
                                require_once(PATH."inc/libs/cache_functions.php");
                                require_once(PATH."inc/extensions/ext-cache.php");
-                               if ($CACHE->cache_file("extensions", true)) $CACHE->cache_destroy();
-                               if ($CACHE->cache_file("mod_reg", true)) $CACHE->cache_destroy();
+                               if ($cacheInstance->cache_file("extensions", true)) $cacheInstance->cache_destroy();
+                               if ($cacheInstance->cache_file("mod_reg", true)) $cacheInstance->cache_destroy();
                        }
                }
 
                // Test again
-               if ((!empty($CONFIG['file_hash'])) && (!empty($CONFIG['master_salt'])) && (!empty($CONFIG['pass_scramble'])))
-               {
+               if ((!empty($_CONFIG['file_hash'])) && (!empty($_CONFIG['master_salt'])) && (!empty($_CONFIG['pass_scramble']))) {
                        // File hash fas generated so we can also file the secret file... hopefully.
-                       if ((file_exists(PATH."inc/.secret/.".$CONFIG['file_hash'])) && (is_readable(PATH."inc/.secret/.".$CONFIG['file_hash'])))
-                       {
-                               $CONFIG['secret_key'] = implode("", file(PATH."inc/.secret/.".$CONFIG['file_hash']));
-                       }
-                        else
-                       {
+                       if ((file_exists(PATH."inc/.secret/.".$_CONFIG['file_hash'])) && (is_readable(PATH."inc/.secret/.".$_CONFIG['file_hash']))) {
+                               $_CONFIG['secret_key'] = implode("", file(PATH."inc/.secret/.".$_CONFIG['file_hash']));
+                       } else {
                                // Cannot read secret file!
-                               die("Cannot read secret file!");
+                               mxchange_die("Cannot read secret file!");
                        }
                }
 
                // Transfer words/numbers to constants
-               define('POINTS'  , $DUMMY['points_word']);
-               define('MT_WORD' , $DUMMY['mt_word']);
-               define('MT_WORD2', $DUMMY['mt_word2']);
-               define('MT_WORD3', $DUMMY['mt_word3']);
-               define('_MAX'    , $DUMMY['rand_no']);
+               define('POINTS'  , $dummy['points_word']);
+               define('MT_WORD' , $dummy['mt_word']);
+               define('MT_WORD2', $dummy['mt_word2']);
+               define('MT_WORD3', $dummy['mt_word3']);
+               define('_MAX'    , $dummy['rand_no']);
        } else {
                // Set some lame ;-) default settings
-               $CONFIG['def_refid'] = 0;
-               $CONFIG['title_decoration'] = 'N';
-               $CONFIG['title_mod_show']   = 'Y';
-               $CONFIG['title_middle']     = "-";
-               //$CONFIG['verbose_sql']      = 'N';
+               $_CONFIG['def_refid'] = 0;
+               $_CONFIG['enable_title_deco'] = 'N';
+               $_CONFIG['title_mod_show']    = 'Y';
+               $_CONFIG['title_middle']      = "-";
+               //$_CONFIG['verbose_sql']       = 'N';
                define('MT_WORD' , DEFAULT_MT_WORD );
                define('MT_WORD2', DEFAULT_MT_WORD2);
                define('POINTS'  , DEFAULT_POINTS);
        }
 
        // Remove dummy config array
-       unset($DUMMY);
+       unset($dummy);
        break;
 }