]> git.mxchange.org Git - mailer.git/blobdiff - inc/extensions/ext-sql_patches.php
Surfbar now has admin menu (dummy extension!), menu system rebuilded for unique key...
[mailer.git] / inc / extensions / ext-sql_patches.php
index c2c69b44947a4548f5cbba3eb7d3a54d7b3701c0..6f7696923a5565b283597786ec52bf3d7632ef0d 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.1";
+$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", "0.4.1");
+$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,18 @@ 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";
+(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 7";
        $SQLs[] = "UPDATE "._MYSQL_PREFIX."_member_menu SET action='main' WHERE
 action='stats' OR
 action='extras' OR
@@ -477,7 +478,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,7 +509,7 @@ 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.";
@@ -521,99 +522,97 @@ PRIMARY KEY (id)
                // 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']        = "";
-               $CONFIG['show_timings']      = $DUMMY['show_timings'];
+       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;
 }