Changeset 2312

Show
Ignore:
Timestamp:
12/18/10 11:28:20 (17 months ago)
Author:
petsagouris
Message:

[Branch 1.5] Assigned the functionality of database maintenance to the Database class and the AdminPages class, it was in Maintenance class.

Location:
branches/1.5/libs
Files:
3 modified

Legend:

Unmodified
Added
Removed
  • branches/1.5/libs/AdminPages.php

    r2308 r2312  
    11<?php 
     2 
    23/** 
    34 * Functions for Admin pages, e.g. settings, maintenance, blocked list... 
     
    313314                                break; 
    314315                        case 'optimize': 
    315                                 $h->optimizeTables(); 
     316                                $h->db->optimizeTables(); 
     317                                $h->message = $h->lang['admin_maintenance_optimize_success']; 
     318                                $h->messageType = 'green'; 
    316319                                break; 
    317320                        case 'empty': 
    318                                 $h->emptyTable($h->cage->get->testAlnumLines('table')); 
     321                                $h->db->emptyTable($h->cage->get->testAlnumLines('table')); 
     322                                $h->message = $h->lang['admin_maintenance_table_emptied']; 
     323                                $h->messageType = 'green'; 
    319324                                break; 
    320325                        case 'drop': 
    321                                 $h->dropTable($h->cage->get->testAlnumLines('table')); 
     326                                $h->db->dropTable($h->cage->get->testAlnumLines('table')); 
     327                                $h->message = $h->lang['admin_maintenance_table_deleted']; 
     328                                $h->messageType = 'green'; 
    322329                                break; 
    323330                        case 'remove_settings': 
     
    374381                if ($exclude_tables) { 
    375382                        $exclude = array( 
    376                                 DB_PREFIX . 'settings', 
    377                                 DB_PREFIX . 'users', 
    378                                 DB_PREFIX . 'usermeta', 
    379                                 DB_PREFIX . 'categories', 
    380                                 DB_PREFIX . 'comments', 
    381                                 DB_PREFIX . 'miscdata', 
    382                                 DB_PREFIX . 'posts', 
    383                                 DB_PREFIX . 'postvotes', 
    384                                 DB_PREFIX . 'tags', 
    385                                 DB_PREFIX . 'widgets', 
     383                                DB_PREFIX.'settings', 
     384                                DB_PREFIX.'users', 
     385                                DB_PREFIX.'usermeta', 
     386                                DB_PREFIX.'categories', 
     387                                DB_PREFIX.'comments', 
     388                                DB_PREFIX.'miscdata', 
     389                                DB_PREFIX.'posts', 
     390                                DB_PREFIX.'postvotes', 
     391                                DB_PREFIX.'tags', 
     392                                DB_PREFIX.'widgets', 
    386393                        ); 
    387394                } 
     
    404411        } 
    405412 
    406         /************************************************************** 
     413        /*       * ************************************************************ 
    407414         * 
    408415         *  BLOCKED PAGE 
    409416         * 
    410          *************************************************************/ 
     417         * *********************************************************** */ 
    411418 
    412419        /** 
  • branches/1.5/libs/Database.php

    r2302 r2312  
    367367 
    368368        /** 
     369         * Optimize all database tables 
     370         */ 
     371        public function optimizeTables() 
     372        { 
     373                foreach ($this->get_col("SHOW TABLES", 0) as $table_name) { 
     374                        $this->query("OPTIMIZE TABLE ".$table_name); 
     375                } 
     376        } 
     377 
     378        /** 
     379         * Empty plugin database table 
     380         * 
     381         * @param string $table_name - table to empty 
     382         * @param string $msg - show "emptied" message or not 
     383         */ 
     384        public function emptyTable($table_name) 
     385        { 
     386                $this->query("DELETE FROM ".$table_name); 
     387        } 
     388 
     389        /** 
     390         * Delete plugin database table 
     391         * 
     392         * @param string $table_name - table to drop 
     393         */ 
     394        public function dropTable($table_name) 
     395        { 
     396                $this->query("DROP TABLE ".$table_name); 
     397        } 
     398 
     399        /** 
    369400         * Store a result to the cache 
    370401         * 
  • branches/1.5/libs/Maintenance.php

    r2292 r2312  
    140140 
    141141        /** 
    142          * Optimize all database tables 
    143          */ 
    144         public function optimizeTables($h) 
    145         { 
    146                 $h->db->selectDB(DB_NAME); 
    147  
    148                 foreach ($h->db->get_col("SHOW TABLES", 0) as $table_name) { 
    149                         $h->db->query("OPTIMIZE TABLE ".$table_name); 
    150                 } 
    151  
    152                 $h->message = $h->lang['admin_maintenance_optimize_success']; 
    153                 $h->messageType = 'green'; 
    154         } 
    155  
    156         /** 
    157          * Empty plugin database table 
    158          * 
    159          * @param string $table_name - table to empty 
    160          * @param string $msg - show "emptied" message or not 
    161          */ 
    162         public function emptyTable($h, $table_name, $msg = true) 
    163         { 
    164                 $h->db->query("DELETE FROM ".$table_name); 
    165  
    166                 if ($msg) { 
    167                         $h->message = $h->lang['admin_maintenance_table_emptied']; 
    168                         $h->messageType = 'green'; 
    169                 } 
    170         } 
    171  
    172         /** 
    173          * Delete plugin database table 
    174          * 
    175          * @param string $table_name - table to drop 
    176          */ 
    177         public function dropTable($h, $table_name, $msg = true) 
    178         { 
    179                 $h->db->query("DROP TABLE ".$table_name); 
    180  
    181                 if ($msg) { 
    182                         $h->message = $h->lang['admin_maintenance_table_deleted']; 
    183                         $h->messageType = 'green'; 
    184                 } 
    185         } 
    186  
    187         /** 
    188142         * Open or close the site for maintenance 
    189143         * 
    190          * @param object $h 
     144         * @param Hotaru $h 
    191145         * @param string $switch - 'open' or 'close' 
    192146         */ 
     
    195149                if ($switch == 'open') { 
    196150                        // open 
    197                         $sql = "UPDATE ".TABLE_SETTINGS." SET settings_value = %s WHERE settings_name = %s"; 
    198                         $h->db->query($h->db->prepare($sql, 'true', 'SITE_OPEN')); 
     151                        $h->db->query("UPDATE ".TABLE_SETTINGS." SET settings_value = 'true' WHERE settings_name = 'SITE_OPEN'"); 
    199152                        $h->message = $h->lang['admin_maintenance_site_opened']; 
    200153                        $h->messageType = 'green'; 
    201154                } else { 
    202155                        //close 
    203                         $sql = "UPDATE ".TABLE_SETTINGS." SET settings_value = %s WHERE settings_name = %s"; 
    204                         $h->db->query($h->db->prepare($sql, 'false', 'SITE_OPEN')); 
     156                        $h->db->query("UPDATE ".TABLE_SETTINGS." SET settings_value = 'false' WHERE settings_name = 'SITE_OPEN'"); 
    205157                        $h->message = $h->lang['admin_maintenance_site_closed']; 
    206158                        $h->messageType = 'green'; 
     
    215167        public function siteClosed($h, $lang) 
    216168        { 
     169 
    217170                // site closed and access not granted 
    218                 echo "<HTML id='site_closed_body'>\n<HEAD>\n"; 
     171                echo '<html><head>'; 
    219172 
    220173                // include current theme style and default style 
    221174                if (file_exists(BASE.'content/themes/'.$h->pageHandling->default.'css/style.css')) { 
    222                         echo "<link rel='stylesheet' href='".SITEURL."content/themes/".$h->pageHandling->default."css/style.css' type='text/css'>\n"; 
     175                        echo '<link rel="stylesheet" href="'.SITEURL.'content/themes/'.$h->pageHandling->default.'css/style.css" type="text/css">'; 
    223176                } 
    224177                if (file_exists(BASE.'content/themes/'.THEME.'css/style.css')) { 
    225                         echo "<link rel='stylesheet' href='".SITEURL."content/themes/".THEME."css/style.css' type='text/css'>\n"; 
    226                 } 
    227                 echo "</HEAD>\n<BODY>\n"; 
    228                 echo "<div id='site_closed'>\n"; 
     178                        echo '<link rel="stylesheet" href="'.SITEURL.'content/themes/'.THEME.'css/style.css" type="text/css">\n'; 
     179                } 
     180                echo '</head><body>'; 
     181                echo '<div id="site_closed">'; 
    229182 
    230183                // show custom maintenance page if one exists: 
     
    233186                } else { 
    234187                        // show default maintenance page: 
    235                         echo $lang['main_hotaru_site_closed']; 
    236                         echo "<br /><span id='site_closed_admin_link'>[<a href='".SITEURL."admin_index.php?page=admin_login'>Admin Login</a>]</span>"; 
    237                 } 
    238  
    239                 echo "\n</div>\n</BODY>\n</HTML>\n"; 
     188                        echo $lang['main_hotaru_site_closed'].'<br /><span id="site_closed_admin_link">[<a href="'.SITEURL.'admin_index.php?page=admin_login">Admin Login</a>]</span>'; 
     189                } 
     190                echo '</div></body></html>'; 
    240191 
    241192                die(); 
     
    249200        { 
    250201                // get announcement from database 
    251                 $sql = "SELECT miscdata_value FROM ".TABLE_MISCDATA." WHERE miscdata_key = %s"; 
    252                 $query = $h->db->prepare($sql, 'site_announcement'); 
     202                $query = "SELECT miscdata_value FROM ".TABLE_MISCDATA." WHERE miscdata_key = 'site_announcement'"; 
    253203 
    254204                if ($h->pageName != 'maintenance') { 
     
    265215                if ($result) { 
    266216                        $result = unserialize($result); 
    267                         $h->vars['admin_announcement'] = urldecode($result['announcement']); 
     217                        $h->vars['admin_announcement'] = $result['announcement']; 
    268218                        $h->vars['admin_announcement_enabled'] = $result['enabled']; 
    269219                } else { 
    270                         $h->vars['admin_announcement'] = ""; 
    271                         $h->vars['admin_announcement_enabled'] = ""; 
     220                        $h->vars['admin_announcement'] = ''; 
     221                        $h->vars['admin_announcement_enabled'] = ''; 
    272222                } 
    273223        } 
     
    282232                $allowable_tags = "<div><p><span><b><i><u><a><img><blockquote><del><br>"; 
    283233                $h->vars['admin_announcement'] = sanitize($h->cage->get->getHtmLawed('announcement_text'), 'tags', $allowable_tags); 
    284                 if ($h->cage->get->keyExists('announcement_enabled')) { 
    285                         $h->vars['admin_announcement_enabled'] = "checked"; 
    286                 } else { 
    287                         $h->vars['admin_announcement_enabled'] = ""; 
    288                 } 
     234                $h->vars['admin_announcement_enabled'] = ($h->cage->get->keyExists('announcement_enabled')) ? 'checked' : ''; 
    289235 
    290236                // prepare annoucment for database entry: 
    291                 $value = array('announcement' => urlencode($h->vars['admin_announcement']), 'enabled' => $h->vars['admin_announcement_enabled']); 
    292                 $value = serialize($value); 
     237                $value = serialize(array('announcement' => $h->vars['admin_announcement'],'enabled' => $h->vars['admin_announcement_enabled'])); 
    293238 
    294239                // update existing db record 
    295                 $sql = "UPDATE ".TABLE_MISCDATA." SET miscdata_value = %s, miscdata_updateby = %d WHERE miscdata_key = %s"; 
    296                 $h->db->query($h->db->prepare($sql, $value, $h->currentUser->id, 'site_announcement')); 
     240                $sql = "UPDATE ".TABLE_MISCDATA." SET miscdata_value = %s, miscdata_updateby = %d WHERE miscdata_key = 'site_announcement'"; 
     241                $h->db->query($h->db->prepare($sql, $value, $h->currentUser->id)); 
    297242 
    298243                // clear the database cache: 
     
    313258        { 
    314259                $files = array(); 
    315                 $exceptions = array('.svn', '.', '..', 'placeholder.txt'); 
    316                 $exceptions = array_merge($exceptions, $exclude); 
    317  
    318                 $handle = opendir($dir); 
    319  
    320                 while (($file = readdir($handle)) !== false) { 
    321                         if (!in_array($file, $exceptions)) { 
    322                                 array_push($files, $file); 
     260                $exceptions = array_merge(array('.svn', '.', '..', 'placeholder.txt'), $exclude); 
     261 
     262                foreach (new DirectoryIterator($dir) as $file) { 
     263                        if ($file->isDot() || in_array($file->getFilename(), $exceptions)) { 
     264                                continue; 
    323265                        } 
    324                 } 
    325                 closedir($handle); 
     266                        $files[] = $file; 
     267                } 
    326268 
    327269                if ($files) { 
    328270                        return $files; 
    329271                } 
    330                 return false; 
     272 
     273                return FALSE; 
    331274        } 
    332275