Вход Регистрация
Файл: adultscript-2.0.3-pro/files/admin/modules/tools/components/database.php
Строк: 38
<?php
defined
('_VALID') or die('Restricted Accesss!');
class 
VComponent_Admin_tools_database
{
    private 
$db;
    public function 
__construct()
    {
        
$this->db VF::factory('database');
    }
    
    public function 
render()
    {
        
$errors        = array();
        
$messages    = array();
        
$warnings    = array();
        
        if (isset(
$_POST['submit-database'])) {
            
$table        VF::factory('filter')->get('table');
            
$optimize    trim($_POST['optimize']);
            
            if (!empty(
$table)) {
                if (!
VValid::alunderscore($table)) {
                    
$errors[]    = 'Table name can contain only letters, numbers and underscore!';
                } else {
                    if (
$table == 'all') {
                        
$tables    $this->get_tables();
                        foreach (
$tables as $db_table) {
                            
$this->repair_table($db_table);
                        }
                    } else {
                        
$this->repair_table($table);
                    }
                    
                    
$messages[]    = 'Table(s) repaired!';
                }
            }
            
            if (!empty(
$optimize)) {
                if (
$optimize == 'yes') {
                    
$tables    $this->get_tables();
                    foreach (
$tables as $db_table) {
                        
$this->optimize_table($db_table);
                    }
                    
                    
$messages[] = 'Database tables optimized!';
                } elseif (
$optimize == 'table') {
                    if (
$table == 'all') {
                        
$tables    $this->get_tables();
                        foreach (
$tables as $db_table) {
                            
$this->optimize_table($db_table);
                        }
                    
                        
$messages[] = 'Database tables optimized!';
                    } elseif (!empty(
$table) && !$errors) {
                        
$this->optimize_table($table);
                        
$messages[] = 'Database table optimized!';
                    } else {
                        
$errors[]    = 'Table is empty or not valid!';
                    }
                }
            }
        }
    
        
$tpl VF::factory('template');
        
$tpl->menu             'main';
        
$tpl->submenu        'tools';
        
$tpl->meta_title    'Admin::Tools::Database';
        
$tpl->errors        $errors;
        
$tpl->messages        $messages;
        
$tpl->warnings        $warnings;
        
$tpl->load(array('header''tools_database''footer'));
        
$tpl->display();
    }
    
    private function 
repair_table($table)
    {
        
$this->db->query("REPAIR TABLE #__".$this->db->escape($table));
    }
    
    private function 
get_tables()
    {
        
$tables    = array();
        
$rows    $this->db->get_rows("SHOW TABLES");
        foreach (
$rows as $row) {
            
$tables[]    = $row['0'];
        }
        
        return 
$tables;
    }
    
    private function 
optimize_table($table)
    {
        
$this->db->query("OPTIMIZE TABLE #__".$this->db->escape($table));
    }
}
Онлайн: 1
Реклама