function AdminBlocksEdit($a)
{
    global $config, $site, $user;
    // Для обратной совместимости со старыми блоками
    $showin = array('ALL_EXCEPT');
    $showin_uri = array();
    $template = '';
    $b_vi = 4;
    $b_en = 1;
    if (isset($_POST['type']) || $a == 'edit') {
        $b_pos = array('L' => false, 'R' => false, 'T' => false, 'B' => false);
        $b_pos = array('L' => false, 'R' => false, 'T' => false, 'B' => false, 'A' => false);
        $b_title = '';
        $b_vi = 4;
        $b_en = 1;
        $block_config = '';
        // Используется в подключаемых файлах
        if ($a == 'edit') {
            System::database()->Select('blocks', "`id`='" . SafeEnv($_GET['id'], 11, int) . "'");
            $r = System::database()->FetchRow();
            $b_title = SafeDB($r['title'], 255, str);
            $b_pos[SafeDB($r['position'], 1, str)] = true;
            $b_vi = SafeDB($r['view'], 1, int);
            $b_en = SafeDB($r['enabled'], 1, bool);
            $b_type = SafeDB($r['type'], 255, str);
            $template = SafeDB($r['template'], 255, str);
            $block_config = $r['config'];
            // Используется в подключаемых файлах
            $title = 'Редактирование блока';
            $a_form = ADMIN_FILE . '?exe=blocks&a=update&id=' . SafeEnv($_GET['id'], 11, int);
            $button = 'Сохранить изменения';
            if ($r['showin'] != '') {
                $showin = unserialize($r['showin']);
            }
            if ($r['showin_uri'] != '') {
                $showin_uri = unserialize($r['showin_uri']);
            }
        } else {
            $a_form = ADMIN_FILE . '?exe=blocks&a=newsave';
            $b_type = SafeEnv($_POST['type'], 255, str);
            $title = 'Настройка блока';
            $button = 'Создать';
            $showin[] = array('ALL_EXCEPT');
        }
        FormRow('Заголовок', System::site()->Edit('title', $b_title, false, 'style="width:400px;" class="autofocus"'));
        $constructor = System::config('blocks_dir') . $b_type . '/constructor.php';
        if (is_file($constructor)) {
            include_once $constructor;
        }
        $btems = GetBlockTemplates();
        $temdata = array();
        foreach ($btems as $tem) {
            System::site()->DataAdd($temdata, $tem, $tem, $tem == $template);
        }
        FormRow('Шаблон блока', System::site()->Select('template', $temdata));
        System::site()->DataAdd($posdata, 'Left', 'Колонка слева', $b_pos['L']);
        System::site()->DataAdd($posdata, 'Right', 'Колонка справа', $b_pos['R']);
        System::site()->DataAdd($posdata, 'Top', 'В центре сверху', $b_pos['T']);
        System::site()->DataAdd($posdata, 'Bottom', 'В центре снизу', $b_pos['B']);
        //System::site()->DataAdd($posdata, 'ABottom', 'A В центре снизу', $b_pos['A']);
        FormRow('Позиционирование', System::site()->Select('position', $posdata));
        VisibilityConditionsAdmin($showin, $showin_uri);
        FormRow('Кто видит', System::site()->Select('view', GetUserTypesFormData($b_vi)));
        FormRow('Включить', System::site()->Select('enabled', GetEnData($b_en, 'Да', 'Нет')));
        AddCenterBox($title);
        AddForm('<form action="' . $a_form . '" method="post">' . System::site()->Hidden('type', $b_type), System::site()->Button('Отмена', 'onclick="history.go(-1);"') . System::site()->Submit($button));
    } else {
        GO(ADMIN_FILE);
    }
}
function AdminSiteMessagesEditor()
{
    $title = '';
    $text = '';
    $showin = array('ALL_EXCEPT');
    $extrauri = array();
    $time = '0';
    $view = 4;
    $enabled = 1;
    $view_title = array(false, false);
    $position = array(false, false);
    $resettime = '';
    if (!isset($_GET['id'])) {
        $view_title[1] = true;
        $position[1] = true;
        $url = '';
        $btitle = 'Создать сообщение';
        $method = 'Создать';
        $a = 'add';
    } else {
        $id = SafeEnv($_GET['id'], 11, int);
        System::database()->Select('messages', "`id`='{$id}'");
        $msg = System::database()->FetchRow();
        $title = SafeDB($msg['title'], 250, str);
        $text = SafeDB($msg['text'], 0, str, false);
        $time = SafeDB($msg['expire'], 11, int);
        if ($time != '0') {
            $total = TotalTime(time(), SafeDB($msg['date'], 11, int) + Day2Sec * SafeDB($msg['expire'], 11, int));
            $resettime = 'Осталось времени ' . $total['sdays'] . ' и ' . $total['shours'];
        }
        $showin = unserialize($msg['showin']);
        $extrauri = unserialize($msg['showin_uri']);
        $view_title[SafeDB($msg['view_title'], 1, int)] = true;
        $position[SafeDB($msg['position'], 1, int)] = true;
        $view = SafeDB($msg['view'], 1, int);
        $enabled = SafeDB($msg['active'], 1, int);
        $url = '&id=' . $id;
        $btitle = 'Редактирование сообщения';
        $method = 'Сохранить изменения';
        $a = 'edit';
    }
    FormRow('Заголовок', System::site()->Edit('title', $title, false, 'maxlength="250" style="width:400px;" class="autofocus"'));
    FormRow('Показывать заголовок', System::site()->Radio('vtitle', 'on', $view_title[1]) . 'Да&nbsp;' . System::site()->Radio('vtitle', 'off', $view_title[0]) . 'Нет');
    FormTextRow('Текст сообщения', System::site()->HtmlEditor('text', $text, 625, 300));
    FormRow('Отображать&nbsp;дней:<br /><small> (0 - неограниченно)</small>', System::site()->Edit('time', $time, false, 'maxlength="3" style="width:40px;"') . $resettime);
    if ($a == 'edit') {
        FormRow('Сбросить таймер', System::site()->Check('resettime', '1', false));
    }
    VisibilityConditionsAdmin($showin, $extrauri);
    System::site()->DataAdd($posd, 'top', 'Вверху', $position[1]);
    System::site()->DataAdd($posd, 'bottom', 'Внизу', $position[0]);
    FormRow('Положение', System::site()->Select('position', $posd));
    FormRow('Кто видит', System::site()->Select('view', GetUserTypesFormData($view)));
    FormRow('Включить', System::site()->Select('enabled', GetEnData($enabled)));
    AddCenterBox($btitle);
    AddForm('<form action="' . ADMIN_FILE . '?exe=messages&a=save' . $url . '" method="post">', System::site()->Button('Отмена', 'onclick="history.go(-1)"') . System::site()->Submit($method));
}