Вход Регистрация
Файл: admin/support/toolbar_sql.php
Строк: 425
<?php
switch($act):

//По умолчанию получаем данные ниже
default:
     echo 
'<div class="widget">
                <ul class="cards list-group not-bottom no-sides">
                    <li class="list-group-item">
                        <i class="fa-2x padding-top-small padding-bottom padding-right-small fa fa-laptop pull-left text-info"></i>
                        <a href="index.php?do=sql&act=overview"><h4>'
.Lang::__('Инструмент Управления').'</h4></a>
                        <p class="info small">Инфорамация о SHCMS Engine и о ваших данных</p>
                    </li>   
                    <li class="list-group-item">
                        <i class="fa-2x padding-top-small padding-bottom padding-right-small fa fa-heart-o pull-left text-info"></i>
                        <a href="index.php?do=sql&act=info_server"><h4>'
.Lang::__('Состояние сервера').'</h4></a>
                        <p class="info small">Легкое управление базой данных</p>
                    </li> 
                    <li class="list-group-item">
                        <i class="fa-2x padding-top-small padding-bottom padding-right-small fa fa-key pull-left text-info"></i>
                        <a href="index.php?do=sql&act=value_system"><h4>'
.Lang::__('Системные значение').'</h4></a>
                        <p class="info small">Легкое управление базой данных</p>
                    </li> 
                    <li class="list-group-item">
                        <i class="fa-2x padding-top-small padding-bottom padding-right-small fa fa-hdd-o pull-left text-info"></i>
                        <a href="index.php?do=sql&act=backup"><h4>'
.Lang::__('Резервирование базы данных').'</h4></a>
                        <p class="info small">Легкое управление базой данных</p>
                    </li>                     
                </ul>
            </div>'
;
            
                
break;
        
        
//Выводим все таблицы которые находятся в базе и управлять ими!)    
case 'overview':

    
$result $db->query("SHOW TABLES");
                
    if (!
$result) {
            echo 
Lang::__('Ошибка базы, не удалось получить список таблиц').'<br/>';
            echo 
Lang::__('Ошибка MySQL:'). $db->error_sql();
            exit;
        }

            
//Вывод всех таблиц
            
echo '<div style="text-align:right;">';
            echo 
'<h3>'.Lang::__('Всего таблиц в базе: ').$db->num_rows($result).'</h3>';
            echo 
'<div class="row"></div>';

        
$sql_show = new sql_show();

            if (!empty(
$_POST)) {
                foreach (
$_POST as $table => $val) {
                    if (!
$val)
                        continue;
                            if (
in_array($table$sql_show->sql_show)) {
                                if (!empty(
$_POST['table_sql'])) {
                                    
$sql_show->save_data(.'engine/sql/'$table '.sql'$table);
                                }
                            }
                }

                if (!empty(
$_POST['table_sql'])) {
                   echo 
engine::success(Lang::__('База была успешно экспортирована в папку engine/sql/'));
                   echo 
'</div>';
                   echo 
engine::home(array(Lang::__('Назад'),'index.php?do=sql&act=overview'));
                   exit;
                }
        }
                    
    echo 
"<table class='table table-bordered'>"
    echo 
"<thead><tr>
            <th>#</th>
        <th>"
.Lang::__('Таблица')." </th> 
            <th>"
.Lang::__('Полей')."</th> 
            <th>"
.Lang::__('Строк')."</th>         
            <th>"
.Lang::__('Размер')."</th>                             
        <th>"
.Lang::__('Экспорт')."</th>  
    </tr></thead>"
;
    
    
// Вывод ........
    
    
echo '<tbody>';
    
$num 0;
    while (
$row $db->get_array($result)) {
        echo 
'<tr>';
        
$num++;
                
$show $db->get_array($db->query("SHOW TABLE STATUS FROM `".DBNAME."` WHERE `name` = '{$row[0]}'"));
        
$total engine::filesize($show[Data_length]+$show[Index_length]);
                    echo 
'<td style="text-align:left;"><b>'.$num.'</b></td>';                
            echo 
"<td style='text-align:center;'><a href='index.php?do=sql&act=viewsql&table={$row[0]}'>{$row[0]}</a></td>";     
                    echo 
"<td style='text-align:center;'>".$db->num_rows($db->query("SHOW COLUMNS FROM `{$row[0]}`"))."</td>";
            echo 
"<td style='text-align:center;'>".$show['Rows']."</td>";
                    echo 
"<td style='text-align:center;'>";
            echo 
$total;
            echo 
"</td>";
            echo 
"<td style='text-align:center;'>";
                    
            
//Форма
            
$form = new form('index.php?do=sql&act=overview');
            
$form->text('<input type="checkbox" id="'.$row[0].'" name="'.$row[0].'" checked hidden>');
            
$form->submit(Lang::__('Экспорт'),'table_sql',false,'btn btn-default');
            
$form->display();
                
                    echo 
'</td>';    
        echo 
'</tr>';
    }        
    echo 
"</tbody></table>";         

    echo 
engine::home(array(Lang::__('Назад'),'index.php?do=sql'));

break;
        
        
////// Получение всех полей таблицы и дополнительные разделы
        
case 'viewsql':
            
    
$name_sql engine::proc_name($_GET['table']);
   
    echo 
'<ul class="nav nav-tabs">
          <li class="active"><a href="#tab_a" data-toggle="tab">Статистика</a></li>
          <li><a href="#tab_b" data-toggle="tab">Информация</a></li>
        </ul>'
;
    
    echo 
'<div class="tab-content">
        <div class="tab-pane active fade in" id="tab_a">'
;
    
echo 
'<div id="three-summaries" class="row">
    <div class="col-md-5 block">
    <div class="panel panel-default">
        <div class="panel-heading">Разделы</div>
               <ul class="cards list-group not-bottom no-sides">
               
                    <li class="list-group-item">
                        <i class="fa-2x padding-top-small padding-bottom padding-right-small fa fa-fire pull-left text-info"></i>
                        <a href="index.php?do=sql&act=optimize&table='
.$name_sql.'"><h4>Оптимизация</h4></a>
                        <p class="info small">Оптимизируем таблицу</p>
                    </li>
                    
                   <li class="list-group-item">
                        <i class="fa-2x padding-top-small padding-bottom padding-right-small fa fa-cogs pull-left text-info"></i>
                        <a href="index.php?do=sql&act=repair&table='
.$name_sql.'"><h4>Ремонт</h4></a>
                        <p class="info small">Чиним таблицу если повреждена</p>
                    </li>
                    
                   <li class="list-group-item">
                        <i class="fa-2x padding-top-small padding-bottom padding-right-small fa fa-circle-o-notch pull-left text-info"></i>
                        <a href="index.php?do=sql&act=analiz&table='
.$name_sql.'"><h4>Анализ</h4></a>
                       <p class="info small">Анализируем таблицу</p>
                    </li>   
                    
                   <li class="list-group-item">
                        <i class="fa-2x padding-top-small padding-bottom padding-right-small fa fa-exclamation-triangle pull-left text-info"></i>
                        <a href="index.php?do=sql&act=view_table&table='
.$name_sql.'"><h4>Проверка</h4></a>
                        <p class="info small">Обычная проверка таблицы</p>
                    </li>  
                    
                   <li class="list-group-item">
                        <i class="fa-2x padding-top-small padding-bottom padding-right-small fa fa-bar-chart-o pull-left text-info"></i>
                        <a href="index.php?do=sql&act=table_creact&table='
.$name_sql.'"><h4>Структура</h4></a>
                       <p class="info small">Смотрим структуру таблицы</p>
                    </li>   
                    
                </ul>
    </div></div>
    
    <div class="col-md-7">'
;
        echo 
'<div class="panel panel-default">
        <div class="panel-heading"> '
.Lang::__('Поля').' <b>'.$name_sql.'</b></div>
                    <table class="table table-bordered table-first-column-check table-hover">
                        <thead>
                            <tr>
                              <th class="col-md-1">'
.Lang::__('Имя').'</th>
                              <th class="col-md-2">'
.Lang::__('Тип').'</th>
                              <th class="col-md-8">'
.Lang::__('Null').'</th>
                              <th class="col-md-3">'
.Lang::__('Default').'</th>
                            </tr>
                        </thead>
                        <tbody>'
;
                    
$result $db->query("SHOW COLUMNS FROM `".$name_sql."`");
            while (
$row $db->get_array($result)) {
                    
$null = array('NO' => '<i>Нет</i>','YES' => 'Да');
                                    
                            echo
'<tr>
                              <td style="text-align:center;">'
.$row['Field'].'</td>
                              <td style="text-align:center;">'
.$row['Type'].'</td>
                              <td style="text-align:center;">'
.$null[$row['Null']].'</td>
                              <td style="text-align:center;">'
.$row['Default'].'</td>
                            </tr>'
;
                        }   
                        
                    echo 
'</tbody></table></div>';
        echo 
'<div class="panel panel-default">
        <div class="panel-heading">'
.Lang::__('Индексы').' <b>'.$name_sql.'</b></div>
                    <table class="table table-bordered table-first-column-check table-hover">
                        <thead>
                            <tr>
                              <th class="col-md-1">'
.Lang::__('Имя').'</th>
                              <th class="col-md-2">'
.Lang::__('Тип').'</th>
                              <th class="col-md-8">'
.Lang::__('Уникальный').'</th>
                              <th class="col-md-3">'
.Lang::__('Столбец').'</th>
                              <th class="col-md-4">'
.Lang::__('Элементы').'</th>
                            </tr>
                        </thead>
                        <tbody>'
;
                    
$result_in $db->query("SHOW INDEX FROM `".$name_sql."`");
            while (
$row_in $db->get_array($result_in)) {
                            
$non = array(=> 'Да'=> 'Нет');
                                    
                            echo
'<tr>
                              <td style="text-align:center;"><b>'
.$row_in['Key_name'].'</b></td>
                              <td style="text-align:center;">'
.$row_in['Index_type'].'</td>
                              <td style="text-align:center;">'
.$non[$row_in['Non_unique']].'</td>
                              <td style="text-align:center;">'
.$row_in['Column_name'].'</td>
                              <td style="text-align:center;">'
.$row_in['Cardinality'].'</td>
                            </tr>'
;
                        }   
                        
                    echo 
'</tbody></table></div>';                    
                    
                echo 
'</div> </div>';
                
        echo 
'</div><div class="tab-pane fade in" id="tab_b">';
        echo 
'<div class="form-horizontal">';
                        
                
$info_show $db->get_array($db->query("SHOW TABLE STATUS FROM `".DBNAME."` WHERE `name` = '{$name_sql}'"));
        
//Переписка английские значение на русские
                
$format = array('Dynamic' => 'Динамический','Static' => 'Статический'); 
     
    
//Используемое пространство            
    
echo '<br/><center style="padding-bottom: 5px;"><b>Используемое пространство</b></center>';
    
    
//Размер данных
    
echo '<div class="row"></div><div class="form-group">';
    echo 
'<label for="inputEmail3" class="col-sm-2 control-label col-font-2"><b>'.Lang::__('Данные').'</b></label>';
    echo 
'<div class="col-sm-10">'.engine::filesize($info_show['Data_length']).'</div></div>';
    
    
//Индексация
    
echo '<div class="form-group">';
    echo 
'<label for="inputEmail3" class="col-sm-2 control-label col-font-2"><b>'.Lang::__('Индекс').'</b></label>';
    echo 
'<div class="col-sm-10">'.engine::filesize($info_show['Index_length']).'</div></div>'

    
//Общий размер
    
echo '<div class="form-group">';
    echo 
'<label for="inputEmail3" class="col-sm-2 control-label col-font-2"><b>'.Lang::__('Всего').'</b></label>';
    echo 
'<div class="col-sm-10">'.engine::filesize($info_show['Data_length']+$info_show['Index_length']).'</div></div>';     

        
//Статистика определенных строк
    
echo '<div class="row"></div><center style="padding-bottom: 5px;"><b>Статистика строк</b></center>';

    
//Формат таблицы    
    
echo '<div class="row"></div><div class="form-group">';
    echo 
'<label for="inputEmail3" class="col-sm-2 control-label col-font-2"><b>'.Lang::__('Формат').'</b></label>';
    echo 
'<div class="col-sm-10">'.$format[$info_show['Row_format']].'</div></div>';  
    
    
//Кодировка таблицы
    
echo '<div class="form-group">';
    echo 
'<label for="inputEmail3" class="col-sm-2 control-label col-font-2"><b>'.Lang::__('Сравнение').'</b></label>';
    echo 
'<div class="col-sm-10">'.$info_show['Collation'].'</div></div>';  
    
    
//Кол. строк
    
echo '<div class="form-group">';
    echo 
'<label for="inputEmail3" class="col-sm-2 control-label col-font-2"><b>'.Lang::__('Строки').'</b></label>';
    echo 
'<div class="col-sm-10">'.$info_show['Rows'].'</div></div>';  
    
    
//Длина строки
    
echo '<div class="form-group">';
    echo 
'<label for="inputEmail3" class="col-sm-2 control-label col-font-2"><b>'.Lang::__('Длина строки').'</b></label>';
    echo 
'<div class="col-sm-10">'.engine::filesize($info_show['Avg_row_length']).'</div></div>';  
    
    
//Следующий индекс
    
echo '<div class="form-group">';
    echo 
'<label for="inputEmail3" class="col-sm-2 control-label col-font-2"><b>'.Lang::__('След. индекс').'</b></label>';
    echo 
'<div class="col-sm-10">'.$info_show['Auto_increment'].'</div></div>';  
    
    
//Время Создание
    
echo '<div class="form-group">';
    echo 
'<label for="inputEmail3" class="col-sm-2 control-label col-font-2"><b>'.Lang::__('Создание').'</b></label>';
    echo 
'<div class="col-sm-10">'.$info_show['Create_time'].'</div></div>';  
    
    
//Последнее обновление
    
echo '<div class="form-group">';
    echo 
'<label for="inputEmail3" class="col-sm-2 control-label col-font-2"><b>'.Lang::__('Посл. обновление').'</b></label>';
    echo 
'<div class="col-sm-10">'.$info_show['Update_time'].'</div></div>'
    
    
//Описание таблицы
    
echo '<div class="form-group">';
    echo 
'<label for="inputEmail3" class="col-sm-2 control-label col-font-2"><b>'.Lang::__('Комментария').'</b></label>';
    echo 
'<div class="col-sm-10">'.$info_show['Comment'].'</div></div>';     
                
echo 
'</div>';        
                                    
    echo 
'</div> </div>';
        
break;        
        

//Оптимизация таблицы
case 'optimize':
                
    
$table filter_input(INPUT_GET,'table',FILTER_SANITIZE_STRING);        
    
    echo 
"<table style='text-shadow: 0px 0px 0px #fff;' class='little-table' cellspacing='0'>"
    echo 
"<tr>
    <th>"
.Lang::__('Таблица')." </th> 
        <th>"
.Lang::__('Op')."</th> 
        <th>"
.Lang::__('Тип')."</th>         
        <th>"
.Lang::__('Текст')."</th>                             
    </tr>"
;                
                                    
    
$optimize $db->query("OPTIMIZE TABLE  `{$table}`");
        while(
$optim $db->get_array($optimize)) {
                echo 
'<tr class="even">';                 
            
                    echo 
'<td><b>'.$optim['Table'].'</b></td>';
            echo 
'<td>'.$optim['Op'].'</td>';
            echo 
'<td>'.$optim['Msg_type'].'</td>';
                echo 
'<td>'.$optim['Msg_text'].'</td>';
                                    
        echo 
'</tr>';
        }
                        
    echo 
"</table>";    

    echo 
engine::home(array(Lang::__('Назад'),'index.php?do=sql&act=viewsql&table='.$table.''));

break;
        
        
//Ремонт таблицы
case 'repair':

    
$table filter_input(INPUT_GET,'table',FILTER_SANITIZE_STRING);       
    
        echo 
"<table style='text-shadow: 0px 0px 0px #fff;' class='little-table' cellspacing='0'>"
            echo 
"<tr>
        <th>"
.Lang::__('Таблица')." </th> 
                <th>"
.Lang::__('Op')."</th> 
                <th>"
.Lang::__('Тип')."</th>         
                <th>"
.Lang::__('Текст')."</th>                             
        </tr>"
;                
            
            
$repaire $db->query("REPAIR TABLE  `{$table}`");
        while(
$repair $db->get_array($repaire)) {
                    echo 
'<tr class="even">';    
                    
            echo 
'<td><b>'.$repair['Table'].'</b></td>';
            echo 
'<td>'.$repair['Op'].'</td>';
            echo 
'<td>'.$repair['Msg_type'].'</td>';
            echo 
'<td>'.$repair['Msg_text'].'</td>';
                        
            echo 
'</tr>';
            }
                        
        echo 
"</table>";    
                
        echo 
engine::home(array(Lang::__('Назад'),'index.php?do=sql&act=viewsql&table='.$table.''));
        
break;
        
        
//Анализируем таблицы
case 'analiz':

    
$table filter_input(INPUT_GET,'table',FILTER_SANITIZE_STRING);
                
    echo 
"<table style='text-shadow: 0px 0px 0px #fff;' class='little-table' cellspacing='0'>"
        echo 
"<tr>
        <th>"
.Lang::__('Имя')." </th> 
            <th>"
.Lang::__('Мин. Значение')."</th> 
            <th>"
.Lang::__('Мак. Значение')."</th> 
            <th>"
.Lang::__('Ср. Значение')."<br/>".Lang::__('Ср. Длина')."</th> 
    </tr>"
;                
            
        
$analize $db->query("SELECT * FROM  `{$table}` PROCEDURE ANALYSE ( )");
        while(
$analiz $db->get_array($analize)) {
                    echo 
'<tr class="even">';
                    
            echo 
'<td>'.$analiz['Field_name'].'</td>';
            echo 
'<td>'.$analiz['Min_value'].'</td>';
            echo 
'<td>'.$analiz['Max_value'].'</td>';
            echo 
'<td>'.$analiz['Avg_value_or_avg_length'].'</td>';        
        
                    echo 
'</tr>';
                    
        }
                        
        echo 
"</table>";    
    
    
//Переадресация
    
echo engine::home(array(Lang::__('Назад'),'index.php?do=sql&act=viewsql&table='.$table.''));
        
break;
        

//Проверяем таблицы
case 'view_table':

    
$table filter_input(INPUT_GET,'table',FILTER_SANITIZE_STRING);
            
            echo 
"<table style='text-shadow: 0px 0px 0px #fff;' class='little-table' cellspacing='0'>"
            echo 
"<tr>
        <th>"
.Lang::__('Таблица')." </th> 
                <th>"
.Lang::__('Op')."</th> 
                <th>"
.Lang::__('Тип')."</th> 
                <th>"
.Lang::__('Текст')."</th> 
        </tr>"
;                
                                    
    
$views $db->query("CHECK TABLE  `{$table}`");
        while(
$view $db->get_array($views)) {
                echo 
'<tr class="even">';             
            
                    echo 
'<td>'.$view['Table'].'</td>';
            echo 
'<td>'.$view['Op'].'</td>';
            echo 
'<td>'.$view['Msg_type'].'</td>';
            echo 
'<td>'.$view['Msg_text'].'</td>';    
        
                echo 
'</tr>';
        }
                        
        echo 
"</table>";    

    
//Переадресация
    
echo engine::home(array(Lang::__('Назад'),'index.php?do=sql&act=viewsql&table='.$table.''));
        
break;        
        
        
//Структура таблиц
case 'table_creact':

    
$table filter_input(INPUT_GET,'table',FILTER_SANITIZE_STRING);
                        
        echo 
"<table style='text-shadow: 0px 0px 0px #fff;' class='little-table' cellspacing='0'>"
            
            echo 
"<tr>
        <th>"
.Lang::__('Имя переменной')." </th> 
                <th>"
.Lang::__('Значение')."</th> 
        </tr>"
;                
                                    
        
$values $db->query("SHOW CREATE TABLE `{$table}`");
        while(
$value $db->get_array($values)) {
                    echo 
'<tr class="even">';        
                    
            echo 
'<td>'.$value['Table'].'</td>';
            echo 
'<td>'.engine::input_text('[php]'.$value['Create Table'].'[/php]').'</td>';
                        
            echo 
'</tr>';
        }
                        
        echo 
"</table>";    
                
        
//Переадресация
        
echo engine::home(array(Lang::__('Назад'),'index.php?do=sql&act=viewsql&table='.$table.''));
        
        
break;    
        
case 
'info_server':
            
    echo 
'<div class="subpost">';
    
        
printf("Версия сервера: %sn<br/>"$db->get_server_info());
        
printf("Тип соединения: %sn<br/>"$db->get_host_info());
                    
        echo 
'</div>';
    
        echo 
"<table style='text-shadow: 0px 0px 0px #fff;' class='little-table' cellspacing='0'>"
            echo 
"<tr>
        <th>"
.Lang::__('Имя переменной')." </th> 
                <th>"
.Lang::__('Значение')."</th> 
        </tr>"
;                
                                    
            
$views $db->query("SHOW STATUS;");
            while(
$view $db->get_array($views)) {
                        echo 
'<tr class="even">';             
            
                            echo 
'<td>'.$view['Variable_name'].'</td>';
                echo 
'<td>'.$view['Value'].'</td>';
                            
            echo 
'</tr>';
            }
                        
        echo 
"</table>";    
    
    
//Переадресация
    
echo engine::home(array(Lang::__('Назад'),'index.php?do=sql'));
    
break;
        
        
//Системные значение настроек
case 'value_system':
    
    echo 
"<table style='text-shadow: 0px 0px 0px #fff;' class='little-table' cellspacing='0'>"
        echo 
"<tr>
        <th>"
.Lang::__('Имя переменной')." </th> 
            <th>"
.Lang::__('Значение')."</th> 
    </tr>"
;                
                                    
        
$values $db->query("SHOW VARIABLES;");
        while(
$value $db->get_array($values)) {
                    echo 
'<tr class="even">';    
                    
            echo 
'<td>'.$value['Variable_name'].'</td>';
            echo 
'<td>'.$value['Value'].'</td>';
            
                    echo 
'</tr>';
        }
                        
        echo 
"</table>";    
                
    
//Переадресация
    
echo engine::home(array(Lang::__('Назад'),'index.php?do=sql'));        
        
    break;
        
        
//Создание резервинованого копирование ваших таблиц
case 'backup':
        
        echo 
engine::error('<b>Предупреждение</b><br/>Если у вас есть доступ к phpMyAdmin или другим подобным инструментам, то мы рекомендуем для создания резервной копии воспользоваться ими.');
    echo 
engine::success('Все необходимы таблицы готовы к резервинованию, после сохранения бэкап можно будет найти перейти по пути engine/sql/');
                
        
$form = new form('index.php?do=sql&act=backup');
    
                
$form->text('<center><div class="form-actions">');
            
$form->submit(Lang::__('Начать резервинование'),'submit',false,'btn btn-success');    
                
$form->text('<a class="btn btn-warning" href="index.php?do=sql">Отмена</a>');
                
$form->text('</div></center>');    
                
        
$form->display();
                        
            
//Для резервинования нужно пройти по форме    
        
if(isset($_POST['submit'])) {
                
$backup = new MySQL_Backup();
                
$backup->fname_format 'Ymd-His';
                           
        
//Соединение с сервером
                
$backup->server DBHOST;
                
$backup->username DBUSER;
                
$backup->password DBPASS;
                
$backup->database DBNAME;
                
                
// Кодировка базы
                
$backup->characters 'UTF8';
                        
        
// Место куда будем заливать дамп. Не забываем про слеши.
                
$backup->backup_dir H.'engine/sql/';
                
$run $backup->Execute();
                    
            echo 
$run;
        }        
                
    echo 
engine::home(array(Lang::__('Назад'),'index.php?do=sql'));        
        
break;
        
    
endswitch;
Онлайн: 1
Реклама