/**
 * Главная страница, список новостей
 * @return void
 */
function AdminNewsMain()
{
    global $news_access_editnews;
    System::admin()->AddSubTitle('Главная');
    $back = SaveRefererUrl();
    // Количество новостей на странице
    if (isset($_REQUEST['onpage'])) {
        $num = intval($_REQUEST['onpage']);
    } else {
        $num = System::config('news/newsonpage');
    }
    if (isset($_REQUEST['page'])) {
        $page = intval($_REQUEST['page']);
    } else {
        $page = 1;
    }
    $newsdb = System::database()->Select('news');
    $columns = array('title', 'date', 'hit_counter', 'comments_counter', 'view', 'enabled');
    $sortby = 'date';
    $sortbyid = 1;
    $desc = true;
    if (isset($_REQUEST['sortby'])) {
        $sortby = $columns[$_REQUEST['sortby']];
        $sortbyid = intval($_REQUEST['sortby']);
        $desc = $_REQUEST['desc'] == '1';
    }
    SortArray($newsdb, $sortby, $desc);
    // Выводим новости
    UseScript('jquery_ui_table');
    $table = new jQueryUiTable();
    $table->listing = ADMIN_FILE . '?exe=news&ajax';
    $table->del = ADMIN_FILE . '?exe=news&a=delete';
    $table->total = count($newsdb);
    $table->onpage = $num;
    $table->page = $page;
    $table->sortby = $sortbyid;
    $table->sortdesc = $desc;
    $table->AddColumn('Заголовок');
    $table->AddColumn('Дата', 'left', true, true);
    $table->AddColumn('Просмотров', 'right');
    $table->AddColumn('Комментарий', 'right');
    $table->AddColumn('Кто видит', 'center');
    $table->AddColumn('Статус', 'center');
    $table->AddColumn('Функции', 'center', false, true);
    $newsdb = ArrayPage($newsdb, $num, $page);
    // Берем только новости с текущей страницы
    foreach ($newsdb as $news) {
        $id = SafeDB($news['id'], 11, int);
        $status = System::admin()->SpeedStatus('Выключить', 'Включить', ADMIN_FILE . '?exe=news&a=changestatus&id=' . $id, $news['enabled'], 'images/bullet_green.png', 'images/bullet_red.png');
        $view = ViewLevelToStr(SafeDB($news['view'], 1, int));
        $allowComments = SafeDB($news['allow_comments'], 1, bool);
        $comments = SafeDB($news['comments_counter'], 11, int);
        // Количество комментарий
        $title = SafeDB($news['title'], 255, str);
        $func = '';
        $link_go = Ufu('index.php?name=news&op=readfull&news=' . $id . '&topic=' . SafeDB($news['topic_id'], 11, int), 'news/{topic}/{news}/');
        $func .= System::admin()->SpeedButton('Перейти к странице на сайте', $link_go, 'images/link_go.png', false, false, 'target="_blank"');
        if ($news_access_editnews) {
            $func .= System::admin()->SpeedButton('Редактировать', ADMIN_FILE . '?exe=news&a=edit&id=' . $id . '&back=' . $back, 'images/admin/edit.png');
            $func .= System::admin()->SpeedConfirmJs('Удалить', '$(\'#jqueryuitable\').table(\'deleteRow\', ' . $id . ');', 'images/admin/delete.png', 'Уверены, что хотите удалить эту новость?');
            $title = '<b>' . System::admin()->Link($title, ADMIN_FILE . '?exe=news&a=edit&id=' . $id . '&back=' . $back) . '</b>';
        }
        $table->AddRow($id, $title, TimeRender(SafeDB($news['date'], 11, int)), SafeDB($news['hit_counter'], 11, int), $allowComments ? $comments : 'Обсуждение закрыто', $view, $status, $func);
    }
    if (isset($_GET['ajax'])) {
        echo $table->GetOptions();
        exit;
    } else {
        $table->AddTable('Новости');
    }
}
function AdminCodetesterSnippets($type)
{
    System::admin()->AddSubTitle('Сниппеты');
    UseScript('jquery_ui_table');
    if (isset($_REQUEST['onpage'])) {
        $num = intval($_REQUEST['onpage']);
    } else {
        $num = 20;
    }
    if (isset($_REQUEST['page'])) {
        $page = intval($_REQUEST['page']);
    } else {
        $page = 1;
    }
    $snippets_db = System::database()->Select('snippets', "`type`='{$type}'");
    $columns = array('title');
    $sortby = '';
    $sortbyid = -1;
    $desc = true;
    if (isset($_REQUEST['sortby'])) {
        $sortby = $columns[$_REQUEST['sortby']];
        $sortbyid = intval($_REQUEST['sortby']);
        $desc = $_REQUEST['desc'] == '1';
    }
    if ($sortby != '') {
        SortArray($snippets_db, $sortby, $desc);
    }
    $table = new jQueryUiTable();
    $table->listing = ADMIN_FILE . '?exe=codetester&a=' . $type . 'snippets&ajax';
    $table->del = ADMIN_FILE . '?exe=codetester&a=delete';
    $table->total = count($snippets_db);
    $table->onpage = $num;
    $table->page = $page;
    $table->sortby = $sortbyid;
    $table->sortdesc = $desc;
    $table->AddColumn('Заголовок');
    $table->AddColumn('Функции', 'center', false, true);
    $snippets_db = ArrayPage($snippets_db, $num, $page);
    // Берем только новости с текущей страницы
    foreach ($snippets_db as $snip) {
        $id = SafeDB($snip['id'], 11, int);
        $editlink = ADMIN_FILE . '?exe=codetester&id=' . $id . '&lang=' . $type;
        $func = '';
        $func .= System::admin()->SpeedButton('Редактировать', $editlink, 'images/admin/edit.png');
        $func .= System::admin()->SpeedConfirmJs('Удалить', '$(\'#jqueryuitable\').table(\'deleteRow\', ' . $id . ');', 'images/admin/delete.png', 'Уверены, что хотите удалить этот сниппет?');
        $table->AddRow($id, '<b>' . System::admin()->Link(SafeDB($snip['title'], 255, str), $editlink) . '</b>', $func);
    }
    if (isset($_GET['ajax'])) {
        echo $table->GetOptions();
        exit;
    } else {
        $table->AddTable('Сниппеты');
    }
}