Changeset 397

Show
Ignore:
Timestamp:
06/29/09 04:02:35 (11 years ago)
Author:
kovell
Message:

Fixes: autoupgrade works, problem with db.php includes removed. Admin cache menu now has option to clear caches. Install hides passwords

Location:
dev
Files:
7 modified

Legend:

Unmodified
Added
Removed
  • dev/common/admin/option_acache.php

    r396 r397  
    44* look here for some examples. 
    55*/ 
    6  
    7 options::cat('Advanced', 'Cache', 'Cache Control'); 
     6options::cat('Advanced', 'Cache', 'Page Cache'); 
    87options::fadd('Caching enabled', 'cache_enabled', 'checkbox'); 
    98options::fadd('Cache lifetime (min)', 'cache_time', 'edit:size:4'); 
     
    3332options::fadd('Reinforcement end chance (1/x)', 'reinforced_rf_prob', 'edit:size:4'); 
    3433 
     34options::cat('Advanced', 'Cache', 'Clear Caches'); 
     35options::fadd('Page Cache', 'none', 'custom', array('admin_acache', 'optionClearPage'), array('admin_acache', 'clearCaches')); 
     36options::fadd('Template Cache', 'none', 'custom', array('admin_acache', 'optionClearTemplate'), array('admin_acache', 'clearCaches')); 
     37//options::fadd('Mail Cache', 'none', 'custom', array('admin_acache', 'optionClearMail'), array('admin_acache', 'clearCaches')); 
     38options::fadd('SQL Query Cache', 'none', 'custom', array('admin_acache', 'optionClearSQL'), array('admin_acache', 'clearCaches')); 
     39options::fadd('All Caches', 'none', 'custom', array('admin_acache', 'optionClearAll'), array('admin_acache', 'clearCaches')); 
     40 
    3541class admin_acache 
    3642{ 
     
    5157    function getKillmails() 
    5258    { 
    53         $count = 0; 
    54         if (config::get('km_cache_dir')) 
    55         { 
    56                 $dir   = config::get('km_cache_dir'); 
    57                 if(is_dir($dir))  
    58                 {  
    59                         if($handle = opendir($dir))  
    60                         {  
    61                                 while(($file = readdir($handle)) !== false)  
     59                $count = 0; 
     60                if (config::get('km_cache_dir')) 
     61                { 
     62                        $dir   = config::get('km_cache_dir'); 
     63                        if(is_dir($dir)) 
     64                        { 
     65                                if($handle = opendir($dir)) 
    6266                                { 
    63                                         if (!is_dir($file)) $count++;  
     67                                        while(($file = readdir($handle)) !== false) 
     68                                        { 
     69                                                if (!is_dir($file)) $count++; 
     70                                        } 
     71                                        closedir($handle); 
    6472                                } 
    65                                 closedir($handle); 
    6673                        } 
    6774                } 
    68         } 
    69         return $count; 
     75                return $count; 
    7076    } 
    7177    function clearQCache() 
    7278    { 
    73                     $dir = opendir(KB_CACHEDIR); 
    74                     while ($line = readdir($dir)) 
    75                     { 
    76                         if (strstr($line, 'qcache_qry') !== false) 
    77                         { 
    78                             @unlink(KB_CACHEDIR.'/'.$line); 
    79                         } 
    80                         elseif (strstr($line, 'qcache_tbl') !== false) 
    81                         { 
    82                             @unlink(KB_CACHEDIR.'/'.$line); 
    83                         } 
    84                     } 
     79                $dir = opendir(KB_CACHEDIR); 
     80                while ($line = readdir($dir)) 
     81                { 
     82                        if (strstr($line, 'qcache_qry') !== false) 
     83                        { 
     84                                @unlink(KB_CACHEDIR.'/'.$line); 
     85                        } 
     86                        elseif (strstr($line, 'qcache_tbl') !== false) 
     87                        { 
     88                                @unlink(KB_CACHEDIR.'/'.$line); 
     89                        } 
     90                } 
    8591    } 
    8692    function setNotReinforced() 
     
    8894            config::set('is_reinforced', '0'); 
    8995    } 
     96        function optionClearPage() 
     97        { 
     98                return '<input type="checkbox" name="option[clean_page]">Clear cache ?'; 
     99        } 
     100        function optionClearMail() 
     101        { 
     102                return '<input type="checkbox" name="option[clean_mail]">Clear cache ?'; 
     103        } 
     104        function optionClearSQL() 
     105        { 
     106                return '<input type="checkbox" name="option[clean_sql]">Clear cache ?'; 
     107        } 
     108        function optionClearTemplate() 
     109        { 
     110                return '<input type="checkbox" name="option[clean_template]">Clear cache ?'; 
     111        } 
     112        function optionClearAll() 
     113        { 
     114                return '<input type="checkbox" name="option[clean_all]">Clear cache ?'; 
     115        } 
     116        function clearCaches() 
     117        { 
     118        if ($_POST['option']['clean_page'] == 'on') 
     119        { 
     120                        admin_acache::removeOld(0, KB_CACHEDIR.'/'.KB_SITE, false); 
     121                        $_POST['option']['clean_page'] = 'off'; 
     122        } 
     123        if ($_POST['option']['clean_template'] == 'on') 
     124        {//hardcoded in index.php 
     125                        admin_acache::removeOld(0, 'cache/templates_c', false); 
     126                        $_POST['option']['clean_template'] == 'off'; 
     127        } 
     128        if ($_POST['option']['clean_mail'] == 'on') 
     129        { 
     130                        admin_acache::removeOld(0, config::get('km_cache_dir'), false); 
     131                        $_POST['option']['clean_mail'] == 'off'; 
     132        } 
     133        if ($_POST['option']['clean_sql'] == 'on') 
     134        { 
     135                        admin_acache::clearQCache(); 
     136                        $_POST['option']['clean_sql'] == 'off'; 
     137        } 
     138        if ($_POST['option']['clean_all'] == 'on') 
     139        { 
     140                        admin_acache::removeOld(0, KB_CACHEDIR.'/'.KB_SITE, false); 
     141                        admin_acache::removeOld(0, 'cache/templates_c', false); 
     142                        admin_acache::removeOld(0, config::get('km_cache_dir'), false); 
     143                        admin_acache::clearQCache(); 
     144                        admin_acache::removeOld(0, 'cache/portraits', false); 
     145                        admin_acache::removeOld(0, 'cache/data', false); 
     146                        admin_acache::removeOld(0, 'cache/map', false); 
     147                        admin_acache::removeOld(0, 'cache/api', false); 
     148                        admin_acache::removeOld(0, 'cache/corp', false); 
     149                        $_POST['option']['clean_all'] == 'off'; 
     150        } 
     151                return; 
     152        } 
     153        function removeOld($hours, $dir, $recurse = false) 
     154        { 
     155                if(!session::isAdmin()) return false; 
     156                if(strpos($dir, '.') !== false) return false; 
     157                //$dir = KB_CACHEDIR.'/'.$dir; 
     158                if(!is_dir($dir)) return false; 
     159                if(substr($dir,-1) != '/') $dir = $dir.'/'; 
     160                $seconds = $hours*60*60; 
     161                $files = scandir($dir); 
     162 
     163                foreach ($files as $num => $fname) 
     164                { 
     165                        if (file_exists("{$dir}{$fname}") && !is_dir("{$dir}{$fname}") && substr($fname,0,1) != "." && ((time() - filemtime("{$dir}{$fname}")) > $seconds)) 
     166                        {  
     167                                $mod_time = filemtime("{$dir}{$fname}"); 
     168                                if (unlink("{$dir}{$fname}")) $del = $del + 1; 
     169                        } 
     170                        if ($recurse && file_exists("{$dir}{$fname}") && is_dir("{$dir}{$fname}") 
     171                                 && substr($fname,0,1) != "." && $fname !== ".." ) 
     172                        { 
     173                                $del = $del + admin_acache::remove_old($hours, $dir.$fname."/"); 
     174                        } 
     175                } 
     176                return $del; 
     177        } 
    90178} 
    91179?> 
  • dev/common/includes/autoupgrade.php

    r396 r397  
    239239                } 
    240240                // Add isk loss column to kb3_kills 
     241                $qry->execute("SHOW COLUMNS FROM kb3_kills LIKE 'kll_isk_loss'"); 
    241242                $sql = "ALTER TABLE `kb3_kills` ADD `kll_isk_loss` FLOAT NOT NULL DEFAULT '0'"; 
    242                 $qry->execute($sql); 
     243                if(!$qry->recordCount()) $qry->execute($sql); 
    243244                // Update price with items destroyed and ship value, excluding 
    244245                // blueprints since default cost is for BPO and BPC looks identical 
    245                 $sql = "UPDATE kb3_kills 
     246                $sql = "CREATE TABLE IF NOT EXISTS `tmp_pricing` ( 
     247                  `kll_id` int(11) NOT NULL DEFAULT '0', 
     248                  `ship` float NOT NULL DEFAULT '0', 
     249                  `destroyed` float NOT NULL DEFAULT '0', 
     250                  `dropped` float NOT NULL DEFAULT '0', 
     251                  PRIMARY KEY (`kll_id`), 
     252                  KEY `ship` (`ship`), 
     253                  KEY `destroyed` (`destroyed`), 
     254                  KEY `dropped` (`dropped`) 
     255                ) ENGINE=MyISAM"; 
     256                $qry->execute($sql); 
     257                $qry->execute('SELECT * FROM tmp_pricing limit 1'); 
     258                if(!$qry->recordCount()) $qry->execute("INSERT INTO tmp_pricing select kll_id,0,0,0 FROM kb3_kills"); 
     259                $sql = "update tmp_pricing inner join kb3_kills on kb3_kills.kll_id = tmp_pricing.kll_id 
    246260                        INNER JOIN kb3_ships ON kb3_ships.shp_id = kll_ship_id 
    247261                        LEFT JOIN kb3_ships_values ON kb3_ships_values.shp_id = kll_ship_id 
    248                                 set kll_isk_loss = if(isnull(shp_value),shp_baseprice,shp_value)"; 
    249                 $qry->execute($sql); 
    250                 $sql = "UPDATE kb3_kills INNER JOIN (SELECT itd_kll_id, 
     262                                set ship = if(isnull(shp_value),shp_baseprice,shp_value) 
     263                        where ship = 0"; 
     264                $qry->execute($sql); 
     265                $sql = "UPDATE tmp_pricing 
     266                        INNER JOIN (SELECT itd_kll_id, 
    251267                        sum(if(typeName LIKE '%Blueprint%',0,if(isnull(itd_quantity), 
    252268                        0,itd_quantity * if(price = 0 OR isnull(price),basePrice,price)))) 
     
    256272                        LEFT JOIN kb3_invtypes ON itd_itm_id = kb3_invtypes.typeID 
    257273                        GROUP BY itd_kll_id) cost on kll_id = itd_kll_id 
    258                         SET kll_isk_loss = kll_isk_loss + killcost"; 
     274                        SET destroyed =  killcost 
     275                        WHERE destroyed = 0"; 
    259276                $qry->execute($sql); 
    260277                if(config::get(kd_droptototal)) 
    261                         $sql = "UPDATE kb3_kills INNER JOIN (SELECT itd_kll_id, 
    262                                 sum(if(typeName LIKE '%Blueprint%',0,if(isnull(itd_quantity), 
    263                                 0,itd_quantity * if(price = 0 OR isnull(price),basePrice,price)))) 
    264                                 AS killcost 
    265                                 FROM kb3_items_dropped 
    266                                 LEFT JOIN kb3_item_price ON kb3_item_price.typeID = itd_itm_id 
    267                                 LEFT JOIN kb3_invtypes ON itd_itm_id = kb3_invtypes.typeID 
    268                                 GROUP BY itd_kll_id) cost on kll_id = itd_kll_id 
    269                                 SET kll_isk_loss = kll_isk_loss + killcost"; 
    270                 $qry->execute($sql); 
    271  
     278                        $sql = "UPDATE tmp_pricing 
     279                        INNER JOIN (SELECT itd_kll_id, 
     280                        sum(if(typeName LIKE '%Blueprint%',0,if(isnull(itd_quantity), 
     281                        0,itd_quantity * if(price = 0 OR isnull(price),basePrice,price)))) 
     282                        AS killcost 
     283                        FROM kb3_items_dropped 
     284                        LEFT JOIN kb3_item_price ON kb3_item_price.typeID = itd_itm_id 
     285                        LEFT JOIN kb3_invtypes ON itd_itm_id = kb3_invtypes.typeID 
     286                        GROUP BY itd_kll_id) cost on kll_id = itd_kll_id 
     287                        SET dropped =  killcost 
     288                        WHERE dropped = 0"; 
     289                $qry->execute($sql); 
     290                $qry->execute('UPDATE kb3_kills inner join tmp_pricing 
     291                        ON kb3_kills.kll_id = tmp_pricing.kll_id SET kll_isk_loss = ship + destroyed + dropped'); 
     292                $qry->execute('DROP TABLE tmp_pricing'); 
    272293                $qry->execute("SHOW COLUMNS FROM kb3_kills LIKE 'kll_fb_crp_id'"); 
    273294                if($qry->recordCount()) $qry->execute("ALTER TABLE `kb3_kills` DROP `kll_fb_crp_id`"); 
     
    321342 
    322343                // Add subsystem slot 
    323                 $qry->execute("SELECT 1 FROM kb3_inv_detail WHERE itt_slot = 7"); 
     344                $qry->execute("SELECT 1 FROM kb3_item_locations WHERE itl_id = 7"); 
    324345                if(!$qry->recordCount()) 
    325346                { 
  • dev/common/includes/class.db.php

    r391 r397  
    11<?php 
    2 require_once('db.php'); 
    32 
    43class DBConnection 
  • dev/common/includes/globals.php

    r396 r397  
    77else 
    88{ 
    9         $svn_rev = '396'; 
     9        $svn_rev = '397'; 
    1010} 
    1111define('SVN_REV', $svn_rev); 
  • dev/install/config.data

    r376 r397  
    5858cfg_qcache      0 
    5959DBUpdate        007 
     60cache_update    * 
     61cache_time      10 
  • dev/install/install_step3.php

    r376 r397  
    3535<tr><td width="120"><b>MySQL Host:</b></td><td><input type=text name=host id=host size=20 maxlength=80 value="<?php echo $host; ?>"></td></tr> 
    3636<tr><td width="120"><b>User:</b></td><td><input type=text name=user id=user size=20 maxlength=80 value="<?php echo $_SESSION['sql']['user']; ?>"></td></tr> 
    37 <tr><td width="120"><b>Password:</b></td><td><input type=text name=dbpass id=pass size=20 maxlength=80 value="<?php echo $_SESSION['sql']['pass']; ?>"></td></tr> 
     37<tr><td width="120"><b>Password:</b></td><td><input type=password name=dbpass id=pass size=20 maxlength=80 value="<?php echo $_SESSION['sql']['pass']; ?>"></td></tr> 
    3838<tr><td width="120"><b>Database:</b></td><td><input type=text name=db id=db size=20 maxlength=80 value="<?php echo $_SESSION['sql']['db']; ?>"></td></tr> 
    3939<tr><td width="120"><b>Engine:</b></td><td><input type=radio name=engine id=engine value="InnoDB"  <?php if ($_SESSION['sql']['engine'] != "MyISAM") echo "CHECKED"; ?>> InnoDB <input <?php if ($_SESSION['sql']['engine'] == "MyISAM") echo "CHECKED"; ?> type=radio name=engine id=engine value="MyISAM">MyISAM</tr> 
  • dev/install/install_step6.php

    r370 r397  
    7272{ 
    7373?> 
    74 <tr><td width="120"><b><?php echo $set['descr']; ?></b></td><td><input type=text name=set[<?php echo $set['name']; ?>] size=60 maxlength=80 value="<?php echo $_SESSION['sett'][$set['name']]; ?>"></td></tr> 
     74<tr><td width="120"><b><?php echo $set['descr']; ?></b></td><td><input type=<?php  
     75        if($set[name] == 'adminpw') echo "password"; else echo "text" 
     76        ?> name=set[<?php echo $set['name']; ?>] size=60 maxlength=80 value="<?php echo $_SESSION['sett'][$set['name']]; ?>"></td></tr> 
    7577<?php 
    7678}