break;
    }
    $cols[] = $col;
    $col = array();
}
if ($_POST['tabletype'] != 'default') {
    $query['type'] = $_POST['tabletype'];
}
$query['comment'] = $_POST['comment'];
$query['cols'] = $cols;
if ($action == 'savetable') {
    System::database()->CreateTable($table, $query);
    Audit('Управление БД: Создание таблицы "' . $table . '"');
    GO(ADMIN_FILE . '?exe=dbadmin');
} elseif ($action == 'editsavetable') {
    $info = System::database()->GetTableInfo($table);
    $info = $info[0];
    System::database()->SetTableComment($table, $query['comment']);
    if (System::database()->Name == 'FilesDB') {
        System::database()->SetTableAutoIncrementIndex($table, $increment_index);
    }
    if (isset($query['type']) && strtoupper($info['type']) != strtoupper($query['type'])) {
        System::database()->SetTableType($table, $query['type']);
    }
    foreach ($query['cols'] as $i => $col) {
        System::database()->EditColl($table, $i, $col);
    }
    Audit('Управление БД: Редактирование структуры таблицы "' . $table . '"');
    GO(ADMIN_FILE . '?exe=dbadmin&a=structure&name=' . SafeEnv($_POST['tablename'], 250, str));
}
GO(ADMIN_FILE . '?exe=dbadmin');
    public function DeletePost($post_id = null, $first = true)
    {
        if ($post_id == null) {
            if (isset($_GET['post_id'])) {
                $post_id = $_GET['post_id'];
            }
        }
        if ($post_id != null) {
            System::database()->Select($this->PostsTable, "`id`='{$post_id}'");
            $post = System::database()->FetchRow();
        } else {
            $text = 'post_id нигде не инициализирована.';
            System::site()->AddTextBox('Ошибка.', '<p align="center">' . $text . '</p>');
            return 0;
        }
        if ($first) {
            if (System::user()->Auth) {
                $editing = System::user()->Get('u_id') == $post['user_id'] || System::user()->isAdmin();
            } else {
                $editing = $post['user_id'] == '0' && $post['user_ip'] == getip();
            }
            if (!$editing) {
                $text = 'У вас недостаточно прав для удаления этого сообщения.';
                System::site()->AddTextBox('Ошибка.', '<p align="center">' . $text . '</p>');
                return 0;
            }
        }
        if (!$first || isset($_GET['ok'])) {
            $del_count = 1;
            $parent_posts = System::database()->Select($this->PostsTable, "`post_parent_id`='{$post_id}'");
            foreach ($parent_posts as $post) {
                $del_count += $this->DeletePost(SafeDB($post['id'], 11, int), false);
            }
            System::database()->Delete($this->PostsTable, "`id`='{$post_id}'");
            if (System::user()->isAdmin()) {
                Audit('Posts: Удаление комментария "' . $this->PostsTable . '"/"' . "(user: {$post['user_name']}, object_id: {$post['object_id']})" . '"');
            }
            return $del_count;
        } else {
            $text = '<br />Удалить сообщение?<br /><br />' . '<a href="' . $this->DeletePageUrl . '&amp;post_id=' . $post_id . '&amp;ok=1">Да</a> &nbsp;
			&nbsp;&nbsp;&nbsp;&nbsp; <a href="javascript:history.go(-1)">Нет</a><br /><br />';
            System::site()->AddTextBox('', '<p align="center">' . $text . '</p>');
            return 0;
        }
    }
    exit;
}
$table = SafeEnv($_GET['name'], 255, str);
$index = SafeEnv($_GET['index'], 255, int);
$where = '';
$where_url = '';
if (isset($_GET['where'])) {
    $where = $_GET['where'];
    $where_url = '&where=' . $_GET['where'];
}
$rows = System::database()->Select($table, $where);
$row = $rows[$index];
$columns = System::database()->GetTableColumns($table);
$names = array();
foreach ($columns as $col) {
    $names[$col['name']] = $row[$col['name']];
}
$sql = '';
foreach ($row as $key => $value) {
    if (isset($names[$key])) {
        $sql .= "`" . $key . "`='" . System::database()->EscapeString($value) . "' and ";
    }
}
$sql = substr($sql, 0, strlen($sql) - 4);
System::database()->Delete($table, $sql);
Audit('Управление БД: Удаление строки из таблицы "' . $table . '"');
if (isset($_REQUEST['back'])) {
    GoRefererUrl($_REQUEST['back']);
} else {
    GO(ADMIN_FILE . '?exe=dbadmin&a=review&name=' . SafeDB($_GET['name'], 255, str) . $where_url);
}
<?php

/*
 * LinkorCMS 1.4
 * © 2012 LinkorCMS Development Group
 */
if (!defined('VALID_RUN')) {
    header("HTTP/1.1 404 Not Found");
    exit;
}
if (isset($_POST['newname'])) {
    System::database()->RenameTable(SafeEnv($_GET['name'], 255, str), SafeEnv($_POST['newname'], 255, str));
    Audit('Управление БД: Переименование таблицы "' . $_GET['name'] . '" в "' . $_POST['newname'] . '"');
    GO(ADMIN_FILE . '?exe=dbadmin');
} else {
    AddCenterBox('Переименовать таблицу "' . SafeDB($_GET['name'], 255, str) . '"');
    FormRow('Новое имя', $site->Edit('newname', SafeDB($_GET['name'], 255, str), false, 'style="width: 210px;" class="autofocus"'));
    AddForm('<form action="' . ADMIN_FILE . '?exe=dbadmin&a=renametable&name=' . SafeEnv($_GET['name'], 255, str) . '" method="post">', $site->Button('Отмена', 'onclick="history.go(-1);"') . $site->Submit('Переименовать'));
}
function AdminConfigGroupDelete()
{
    $back_url = '';
    if (!AdminConfigPlugins()) {
        $back_url = ADMIN_FILE . '?exe=config_admin&a=view_groups&delok';
    } else {
        $back_url = ADMIN_FILE . '?exe=config_admin&a=view_groups_plugins&plugins=1&delok';
    }
    if (!isset($_GET['id'])) {
        GO($back_url);
    } else {
        $id = SafeEnv($_GET['id'], 11, int);
    }
    if (isset($_GET['ok']) && $_GET['ok'] == '1' || IsAjax()) {
        System::database()->Select(AdminConfigGroupTable(), "`id`='{$id}'");
        $conf = System::database()->FetchRow();
        System::database()->Delete(AdminConfigGroupTable(), "`id`='{$id}'");
        System::database()->Delete(AdminConfigConfigTable(), "`group_id`='{$id}'");
        Audit('Управление настройками: Удаление группы настроек "' . $conf['hname'] . '(' . $conf['name'] . ')" в "' . AdminConfigGroupTable() . '"');
        GO($back_url);
    } else {
        $r = System::database()->Select(AdminConfigGroupTable(), "`id`='{$id}'");
        AddCenterBox('Удаление группы навтроек');
        System::admin()->HighlightConfirm('Это может повлиять на работу системы. Нажмите отмена, если не уверены. Удалить группу настроек "' . SafeDB($r[0]['hname'], 255, str) . '"?', ADMIN_FILE . '?exe=config_admin&a=delete&id=' . $id . '&ok=1' . (AdminConfigPlugins() ? '&plugins=1' : ''));
    }
}
 /**
  * Удаление категории
  * @param $Id
  * @return bool
  */
 public function DeleteCat($Id)
 {
     $cat = System::database()->SelectOne($this->Table, "`id`='{$Id}'");
     $childs = $this->GetAllChildId($Id);
     for ($i = 0, $c = count($childs); $i < $c; $i++) {
         System::database()->Delete($this->obj_table, "`{$this->obj_cat_coll}`='" . $childs[$i] . "'");
         System::database()->Delete($this->Table, "`id`='" . $childs[$i] . "'");
     }
     Audit('Категории: Удаление категории "' . $this->Table . '"/"' . $cat['title'] . '"');
     $this->CalcCatCounter($cat['parent'], false);
     System::cache()->Delete('tree', $this->Table);
     return true;
 }
function AdminNewsTopicsDelete()
{
    global $news_access_edittopics;
    if (!isset($_GET['id']) || !$news_access_edittopics) {
        exit('ERROR');
    }
    $id = SafeEnv($_GET['id'], 11, int);
    System::database()->Select('news_topics', "`id`='{$id}'");
    $topic = System::database()->FetchRow();
    $newsdb = System::database()->Select('news', "`topic_id`='{$id}'");
    foreach ($newsdb as $news) {
        System::database()->Delete('news_comments', '`object`=\'' . SafeEnv($news['id'], 11, int) . '\'');
    }
    System::database()->Delete('news', "`topic_id`='{$id}'");
    System::database()->Delete('news_topics', "`id`='{$id}'");
    AdminNewsClearBlockCache();
    Audit('Новости: Удаление новостного раздела "' . $topic['title'] . '"');
    exit('OK');
}
function AdminAuditClearReferers()
{
    System::database()->Delete('referers', '');
    Audit('Аудит: Очистка лога рефералов');
    GO(ADMIN_FILE . '?exe=audit&a=referers');
}
function AdminSmiliesDeleteFile()
{
    global $smilies_dir, $mod;
    $name = $_GET['name'];
    unlink(RealPath2($smilies_dir . $name));
    Audit('Смайлики: Удаление файла смайлика ' . $smilies_dir . $name);
    GO($mod . '&a=auto');
}
foreach ($columns as $col) {
    $values .= ",'" . SafeEnv($_POST[$col['name']], 0, str) . "'";
}
$values = substr($values, 1);
if ($action == 'insertsave') {
    // Добавление записи
    $db->Insert($table_name, $values);
} elseif ($action == 'editsave') {
    // Редактирование
    $index = SafeEnv($_GET['index'], 255, int);
    $where = '';
    if (isset($_GET['where'])) {
        $where = $_GET['where'];
    }
    $rows = $db->Select($table_name, $where);
    $old_values = $rows[$index];
    // Старые значения
    unset($rows);
    $where = '';
    foreach ($old_values as $key => $value) {
        $where .= "`" . $key . "`='" . SafeEnv($value, 0, str, false, true, false) . "' and ";
    }
    $where = substr($where, 0, -4);
    $db->Update($table_name, $values, $where, true);
    Audit('Управление БД: Удаление строки в таблице "' . $table_name . '"');
}
if (isset($_REQUEST['back'])) {
    GoRefererUrl($_REQUEST['back']);
} else {
    GO(ADMIN_FILE . '?exe=dbadmin&a=review&name=' . SafeDB($_GET['name'], 255, str));
}
<?php

/*
 * LinkorCMS 1.4
 * © 2012 LinkorCMS Development Group
 */
// Оптимизация всех таблиц БД
AddCenterBox('Оптимизация');
if (System::database()->Name != 'MySQL') {
    System::admin()->HighlightError('Только MySQL базы данных.');
    return;
}
$iferrors = false;
$tables = System::database()->GetTableInfo();
System::database()->MySQLQuery('LOCK TABLES');
foreach ($tables as $table) {
    $table = System::database()->Prefix() . $table['name'];
    if (System::database()->MySQLQuery('OPTIMIZE TABLE `' . $table . '`') == false) {
        System::admin()->HighlightError(System::database()->MySQLGetErrMsg() . ' (' . $table . ')');
        $iferrors = true;
    }
}
Audit('Управление БД: Оптимизация');
System::database()->MySQLQuery('UNLOCK TABLES');
if ($iferrors) {
    System::admin()->Highlight('Произошли ошибки при оптимизации некоторых таблиц.');
} else {
    System::admin()->Highlight('Все таблицы успешно оптимизированы.');
}
function AdminForumBasketRestore()
{
    ForumLoadFunction('restore_basket');
    if (isset($_GET['forum_basket_post'])) {
        IndexForumRestoreBasketPost(SafeEnv($_GET['forum_basket_post'], 11, int));
        Audit('Форум: Восстановление сообщения из корзины');
    } elseif (isset($_GET['forum_basket_topics'])) {
        IndexForumRestoreBasketTopic(SafeEnv($_GET['forum_basket_topics'], 11, int));
        Audit('Форум: Восстановление темы из корзины');
    }
}
function AdminFormsCheckAll()
{
    if (!isset($_GET['id'])) {
        GO(ADMIN_FILE . '?exe=forms');
    }
    $form_id = SafeEnv($_GET['id'], 11, int);
    System::database()->Select('forms', "`id`='{$form_id}'");
    $form = System::database()->FetchRow();
    System::database()->Update('forms_data', "moderated='1'", "`form_id`='{$form_id}'");
    System::database()->Update('forms', "new_answ='0'", "`id`='{$form_id}'");
    Audit('Web-формы: Отметить все данные как прочитанные для формы "' . $form['hname'] . '"');
    GO(ADMIN_FILE . '?exe=forms');
}
<?php

/*
 * LinkorCMS 1.4
 * © 2012 LinkorCMS Development Group
 */
if (!defined('VALID_RUN')) {
    header("HTTP/1.1 404 Not Found");
    exit;
}
if (isset($_GET['ok'])) {
    $ok = $_GET['ok'];
} else {
    $ok = false;
}
if ($ok) {
    System::database()->Truncate(SafeEnv($_GET['name'], 255, str));
    Audit('Управление БД: Очистка таблицы "' . $_GET['name'] . '"');
    GO(ADMIN_FILE . '?exe=dbadmin&a=review&name=' . SafeDB($_GET['name'], 255, str));
} else {
    $name = SafeDB($_GET['name'], 255, str);
    AddCenterBox('Очистка таблицы');
    System::admin()->HighlightConfirm('Вы действительно хотите очистить таблицу "' . $name . '" от записей?', ADMIN_FILE . '?exe=dbadmin&a=truncatetable&name=' . $name . '&ok=1');
    AdminFdbAdminGenTableMenu($name);
}
function AdminUserDeleteAvatar()
{
    if (isset($_GET['personal'])) {
        $dir = System::config('general/personal_avatars_dir');
        $personal = true;
    } else {
        $dir = System::config('general/avatars_dir');
        $personal = false;
    }
    $avatar = SafeEnv($_GET['filename'], 250, str);
    $filename = RealPath2($dir . $avatar);
    if (file_exists($filename) && is_file($filename)) {
        unlink($filename);
    }
    if ($personal) {
        System::database()->Update('users', "`a_personal`='0',`avatar`=''", "`a_personal`='1' and `avatar`='{$avatar}'");
    }
    Audit('Пользователи: Удаление аватара "' . $filename . '"');
    GO(ADMIN_FILE . '?exe=user&a=avatars');
}
function AdminAdminMenuChangeStatus()
{
    System::database()->Select('adminmenu', "`id`='" . SafeEnv($_GET['id'], 11, int) . "'");
    $item = System::database()->FetchRow();
    if ($item['enabled'] == 1) {
        $en = '0';
    } else {
        $en = '1';
    }
    System::database()->Update('adminmenu', "enabled='{$en}'", "`id`='" . SafeEnv($_GET['id'], 11, int) . "'");
    Audit('Админ-меню: Изменение статуса элемента "' . $item['title'] . '"');
    echo 'OK';
    exit;
}
function AdminArticlesResetRating()
{
    global $editarticles;
    if (!$editarticles) {
        System::admin()->AccessDenied();
    }
    $id = SafeEnv($_GET['id'], 11, int);
    System::database()->Select('articles', "`id`='{$id}'");
    $r = System::database()->FetchRow();
    System::database()->Update('articles', "num_votes='0',all_votes='0'", "`id`='{$id}'");
    Audit('Статьи: Сброс рейтинга для "' . $r['title'] . '"');
    GoRefererUrl($_REQUEST['back']);
}
 */
define('ADMIN_SCRIPT', true);
define('VALID_RUN', true);
require 'config/init.php';
// Конфигурация и инициализация
// Проверка пользователя
if (!($userAuth === 1 && $userAccess === 1 && System::user()->AllowCookie(System::user()->AdminCookieName, true))) {
    if (isset($_POST['admin_login'])) {
        // Проверка логина и пароля
        $admin_name = $_POST['admin_name'];
        $admin_password = $_POST['admin_password'];
        $admin_template = $_POST['admin_template'];
        $a = System::user()->Login($admin_name, $admin_password, false, true);
        if ($a === true && System::user()->SecondLoginAdmin) {
            System::user()->Data('admin_template', $admin_template);
            Audit('Вход в админ-панель');
        } else {
            System::user()->UnsetCookie(System::user()->AdminCookieName);
            System::admin()->Login('Неверный логин или пароль.');
            // exit
        }
    } else {
        // Форма авторизации
        if (IsAjax()) {
            exit(JsonEncode(array('auth' => GetPageUri(true))));
        }
        System::admin()->Login();
        // exit
    }
}
System::admin()->InitPage();
function AdminGalleryResetRating()
{
    global $edit_images;
    if (!$edit_images) {
        System::admin()->AccessDenied();
    }
    $id = SafeEnv($_GET['id'], 11, int);
    System::database()->Select('gallery', "`id`='{$id}'");
    $img = System::database()->FetchRow();
    System::database()->Update('gallery', "`num_votes`='0',`sum_votes`='0'", "`id`='{$id}'");
    Audit('Фотогалерея: Сброс рейтинга для изображения "' . $img['title'] . '" (id: ' . $img['id'] . ')');
    GoRefererUrl($_REQUEST['back']);
}
function AdminGuestBookDeleteAnswer()
{
    $id = SafeEnv($_GET['id'], 11, int);
    System::database()->Select('guestbook', "`id`='" . $id . "'");
    if (System::database()->NumRows() > 0) {
        $msg = System::database()->FetchRow();
        if ($msg['answers'] == '') {
            $answers = array();
        } else {
            $answers = unserialize($msg['answers']);
        }
        if (isset($answers[System::user()->Name()])) {
            unset($answers[System::user()->Name()]);
        }
        $answers = serialize($answers);
        System::database()->Update('guestbook', "answers='{$answers}'", "`id`='" . $id . "'");
        Audit('Гостевая книга: Удаление ответа');
    }
    if (isset($_GET['back'])) {
        GoRefererUrl($_GET['back']);
    } else {
        GO(ADMIN_FILE . '?exe=guestbook');
    }
}
function AdminsDeleteGroup()
{
    if (!isset($_GET['id'])) {
        GO(ADMIN_FILE . '?exe=admins&a=groups');
        exit;
    }
    $id = SafeEnv($_GET['id'], 11, int);
    if (isset($_GET['ok']) && SafeEnv($_GET['ok'], 1, int) == '1') {
        // Очищаем кэш
        if (System::cache()->HasCache(system_cache, 'usertypes')) {
            System::cache()->Delete(system_cache, 'usertypes');
        }
        System::database()->Select('users', "`access`='" . $id . "'");
        $num_users = System::database()->NumRows();
        System::database()->Select('usertypes', "`id`='{$id}'");
        $group = System::database()->FetchRow();
        if ($num_users > 0) {
            if (!isset($_GET['users'])) {
                $text = 'К этой группе принадлежат ' . $num_users . ' пользователей. Вы можете:<br />' . '<a href="' . ADMIN_FILE . '?exe=admins&a=delgroup&id=' . $id . '&ok=1&users=del">Удалить их...</a> <br />' . '<a href="' . ADMIN_FILE . '?exe=admins&a=delgroup&id=' . SafeEnv($_GET['id'], 11, int) . '&ok=1&users=move">Переместить их в другую группу.</a>';
                AddTextBox('Внимание!', $text);
            } else {
                if ($_GET['users'] == 'del') {
                    System::database()->Delete('users', "`access`='" . $id . "'");
                } elseif ($_GET['users'] == 'move' && !isset($_POST['to'])) {
                    $text = 'Выберите группу, в которую Вы желаете переместить пользователей:<br />' . '<form action="' . ADMIN_FILE . '?exe=admins&a=delgroup&id=' . $id . '&ok=1&users=move" method="post">';
                    System::database()->Select('usertypes', "`id`<>'" . $id . "'");
                    System::site()->DataAdd($group_data, '-1', 'Пользователи');
                    while ($tp = System::database()->FetchRow()) {
                        System::site()->DataAdd($group_data, $tp['id'], $tp['name']);
                    }
                    $text .= System::site()->Select('to', $group_data) . '<br />';
                    $text .= System::site()->Submit('Продолжить') . '<br />';
                    $text .= '</form>';
                    AddTextBox('Внимание!', $text);
                    return;
                } elseif ($_GET['users'] == 'move' && isset($_POST['to'])) {
                    $to = SafeEnv($_POST['to'], 11, int);
                    if ($to == '-1') {
                        $set = "type='2',access='" . $to . "'";
                    } else {
                        $set = "access='" . $to . "'";
                    }
                    System::database()->Update('users', $set, "`access`='" . $id . "'");
                }
            }
        }
        System::database()->Delete('usertypes', "`id`='" . $id . "'");
        Audit('Администраторы: Удаление группы администраторов "' . $group['name'] . '"');
        GO(ADMIN_FILE . '?exe=admins&a=groups');
    } else {
        System::database()->Select('usertypes', "`id`='" . $id . "'");
        $group = System::database()->FetchRow();
        $text = 'Вы действительно хотите удалить группу "' . SafeDB($group['name'], 255, str) . '"?<br />' . '<a href="' . ADMIN_FILE . '?exe=admins&a=delgroup&id=' . $id . '&ok=1">Да</a> &nbsp;&nbsp;&nbsp; <a href="javascript:history.go(-1)">Нет</a>';
        AddTextBox("Предупреждение", $text);
    }
}
<?php

/*
 * LinkorCMS 1.4
 * © 2012 LinkorCMS Development Group
 */
// Удаление резервной копии
$name = RealPath2(System::config('backup_dir') . $_GET['name']);
unlink($name);
Audit('Управление БД: Удалена резервная копия ' . $name);
GO(ADMIN_FILE . '?exe=dbadmin&a=backups');
<?php

/*
 * LinkorCMS 1.4
 * © 2012 LinkorCMS Development Group
 */
// Восстановление БД из резервной копии
$name = RealPath2(System::config('backup_dir') . $_GET['name']);
if (isset($_GET['table'])) {
    $table = $_GET['table'];
    System::admin()->AddCenterBox('Восстановление таблицы "' . $table . '"');
    $table = System::database()->Prefix() . $table;
} else {
    $table = '';
    System::admin()->AddCenterBox('Восстановление базы данных');
}
$restore_r = System::database()->RestoreBackupFile($name, $table);
if ($restore_r == 3) {
    System::admin()->HighlightError('Ошибка. Неверный формат файла, либо это бекап другого типа Базы данных.');
} elseif ($restore_r == 2) {
    System::admin()->Highlight('Произошли ошибки при восстановлении некоторых таблиц.');
} else {
    if ($table == '') {
        System::admin()->Highlight('База данных успешно восстановлена из резервной копии.');
        Audit('Управление БД: База данных восстановлена из резервной копии "' . $name . '"');
    } else {
        System::admin()->Highlight('Таблица "' . $table . '" успешно восстановлена из резервной копии.');
        Audit('Управление БД: Таблица "' . $table . '" восстановлена из резервной копии "' . $name . '"');
    }
}
function AdminMailDeleteEmail()
{
    $email = SafeEnv($_GET['email'], 50, str);
    $topic_id = SafeEnv($_GET['topic_id'], 11, int);
    System::database()->Select('mail_topics', "`id`='{$topic_id}'");
    $topic = System::database()->FetchRow();
    System::database()->Delete('mail_list', "`topic_id`='{$topic_id}' and `email`='{$email}'");
    Audit('Рассылки: Удаление адреса ' . $email . ' в список рассылки темы "' . $topic['title'] . '"');
    CalcListCounter(SafeEnv($_GET['topic_id'], 11, int), false);
    GO(ADMIN_FILE . '?exe=mail&a=list&topic_id=' . SafeEnv($_GET['topic_id'], 11, int));
}
function AdminBlocksMove()
{
    $move = SafeEnv($_GET['to'], 4, str);
    $id = SafeEnv($_GET['id'], 11, int);
    System::database()->Select('blocks', "`id`='" . $id . "'");
    if (System::database()->NumRows() > 0) {
        $block = System::database()->FetchRow();
        $pos = SafeDB($block['place'], 255, str);
        $blocks = System::database()->Select('blocks', "`position`='" . SafeDB($block['position'], 1, str) . "'");
        usort($blocks, 'AdminBlocksSort');
        $c = count($blocks);
        $cur_pos = 0;
        for ($i = 0; $i < $c; $i++) {
            $blocks[$i]['place'] = $i;
            if ($blocks[$i]['id'] == $id) {
                $cur_pos = $i;
            }
        }
        //Индекс перемещения
        $rep_pos = $cur_pos;
        if ($move == 'up') {
            $rep_pos = $cur_pos - 1;
        } elseif ($move == 'down') {
            $rep_pos = $cur_pos + 1;
        } else {
            $rep_pos = $cur_pos;
        }
        if ($rep_pos < 0 || $rep_pos >= $c) {
            $rep_pos = $cur_pos;
        }
        $temp = intval($blocks[$cur_pos]['place']);
        $blocks[$cur_pos]['place'] = intval($blocks[$rep_pos]['place']);
        $blocks[$rep_pos]['place'] = intval($temp);
        //Обновляем данные
        for ($i = 0; $i < $c; $i++) {
            System::database()->Update('blocks', "place='" . SafeDB($blocks[$i]['place'], 11, int) . "'", "`id`='" . SafeDB($blocks[$i]['id'], 11, int) . "'");
        }
    }
    Audit('Блока: Перемещение блока ' . ($move == 'up' ? 'вверх' : 'вниз') . ' "' . $block['title'] . '"');
    GO(ADMIN_FILE . '?exe=blocks');
}
function AdminCacheCleanup()
{
    System::cache()->ClearAll();
    Audit('Управление кэшем: Полная очистка кэша');
    AdminCacheMain();
}
function AdminExtensionsConfigSave()
{
    $post = SafeR('view', 255, str) + SafeR('name, theme', 255, str) + SafeR('enabled', 3, onoff);
    $post['view'] = ViewLevelToInt($post['view']);
    System::database()->Update('modules', MakeSet($post), "`folder`='" . SafeEnv($_GET['name'], 255, str) . "'");
    Audit('Расширения: Изменение настроек модуля "' . $_GET['name'] . '"');
    GO(ADMIN_FILE . '?exe=extensions');
}
function AdminCommentsDelete()
{
    if (!isset($_POST['delcomments'])) {
        GO(ADMIN_FILE . '?exe=comments');
    }
    if (isset($_GET['page'])) {
        $page = SafeEnv($_GET['page'], 10, int);
    } else {
        $page = 1;
    }
    $com_tables = System::database()->Select('comments');
    foreach ($com_tables as $table) {
        $comments_tables[$table['table']] = $table;
    }
    $posts_tables = array();
    $del_posts = explode('#', $_POST['delcomments']);
    foreach ($del_posts as $post) {
        if ($post != '') {
            $a = explode('--', $post);
            $posts_tables[$a[1]][] = array($a[0], $a[2]);
        }
    }
    // Удаляем комментарии для каждой таблицы отдельно
    foreach ($posts_tables as $post_table => $posts_id) {
        $where = '';
        foreach ($posts_id as $p) {
            $post_id = SafeEnv($p[0], 11, int);
            $obj_id = SafeEnv($p[1], 11, int);
            $where .= "`id`='{$post_id}' or ";
            $t = $comments_tables[$post_table];
            CalcCounter($t['objects_table'], "`{$t['id_coll']}`='{$obj_id}'", $t['counter_coll'], -1);
        }
        $where = substr($where, 0, strlen($where) - 4);
        System::database()->Delete($post_table, $where);
        Audit('Комментарии: Удаление комментариев (table: ' . $post_table . ', where: ' . $where . ')');
    }
    GO(ADMIN_FILE . '?exe=comments&page=' . $page);
}
 * LinkorCMS 1.4
 * © 2012 LinkorCMS Development Group
 */
if (System::database()->Name != 'MySQL') {
    echo "Только базы данных с поддержкой SQL.";
    exit;
}
if (isset($_POST['code'])) {
    $sql = Utf8ToCp1251($_POST['code']);
} else {
    echo "Code is Empty";
    exit;
}
$result = '';
$sql = explode(";", $sql);
foreach ($sql as $query) {
    if (trim($query) == '') {
        continue;
    }
    $qr = System::database()->MySQLQueryResult($query);
    Audit('Управление БД: Perform SQL:' . "\n" . $query);
    if ($qr === false) {
        echo System::database()->MySQLGetErrNo() . ': ' . System::database()->MySQLGetErrMsg() . "\n";
    } elseif (count($qr) > 0) {
        print_r($qr);
        echo "\n";
    } else {
        echo "Запрос успешно выполнен.";
    }
}
exit;
function AdminCodetesterSave($action)
{
    $snippet = SafeR('title,type', 255, str) + SafeR('code', 0, str);
    ObjectUtf8ToCp1251($snippet);
    if ($action == 'save' && (isset($_POST['id']) && $_POST['id'] != 0)) {
        // Редактирование
        $id = SafeEnv($_POST['id'], 11, int);
        System::database()->Update('snippets', MakeSet($snippet), "`id`='{$id}'");
        Audit('Тестирование кода: Изменение сниппета "' . $snippet['title'] . '"');
        echo JsonEncode(array('id' => $id));
    } else {
        // Добавить новый снипет
        System::database()->Insert('snippets', MakeValues("'','title','code','type'", $snippet));
        Audit('Тестирование кода: Добавление сниппета "' . $snippet['title'] . '"');
        echo JsonEncode(array('id' => System::database()->GetLastId()));
    }
    exit;
}