function AdminGalleryEditor()
{
    global $edit_images, $ThumbsDir;
    if (!$edit_images) {
        System::admin()->AccessDenied();
    }
    $cat_id = isset($_GET['to']) ? SafeDB($_GET['to'], 11, int) : 0;
    $author = '';
    $email = '';
    $www = '';
    $title = '';
    $description = '';
    $file = '';
    $allow_comments = true;
    $allow_votes = true;
    $view = array(1 => false, 2 => false, 3 => false, 4 => false);
    $show = true;
    if (!isset($_GET['id'])) {
        $view[4] = true;
        $action = 'add';
        $top = 'Добавить изображение';
        $cap = 'Добавить';
    } else {
        $id = SafeEnv($_GET['id'], 11, int);
        System::database()->Select('gallery', "`id`='{$id}'");
        $par = System::database()->FetchRow();
        $cat_id = SafeDB($par['cat_id'], 11, int);
        $author = SafeDB($par['author'], 50, str);
        $email = SafeDB($par['email'], 50, str);
        $www = SafeDB($par['site'], 250, str);
        $title = SafeDB($par['title'], 255, str);
        $description = SafeDB($par['description'], 0, str, false);
        $file = SafeDB($par['file'], 255, str);
        $allow_comments = SafeDB($par['allow_comments'], 1, bool);
        $allow_votes = SafeDB($par['allow_votes'], 1, bool);
        $show = SafeDB($par['show'], 1, bool);
        $view[SafeDB($par['view'], 1, int)] = true;
        $action = 'save&id=' . $id;
        $top = 'Редактирование изображения';
        $cap = 'Сохранить изменения';
    }
    $visdata = GetUserTypesFormData($view);
    $cats_data = AdminGalleryGetTree()->GetCatsData($cat_id);
    if (count($cats_data) == 0) {
        $back_to_form = SaveRefererUrl();
        AddTextBox($top, 'Нет категорий для добавления! ' . System::admin()->SpeedButton('Добавить категорию', ADMIN_FILE . '?exe=gallery&a=cateditor&back=' . $back_to_form, '', true, true));
        return;
    }
    AddCenterBox($top);
    FormRow('В категорию', System::site()->Select('category', $cats_data, false, $cat_id == 0 ? 'class="autofocus"' : ''));
    FormRow('Заголовок', System::site()->Edit('title', $title, false, 'maxlength="250" style="width:400px;"' . ($cat_id != 0 ? ' class="autofocus"' : '')));
    FormRow('Изображение', System::site()->Edit('image', $file, false, 'style="width:400px;" maxlength="250"') . '<br>' . ($action != 'add' ? '<img id="image_preview" src="' . $ThumbsDir . $file . '" style="padding: 10px 0 10px 0"><br>' : '') . System::site()->FFile('up_image') . '<br /><small>Формат изображения только *.jpg, *.jpeg, *.gif, *.png</small><br /><small>Максимальный размер файла: ' . ini_get('upload_max_filesize') . '</small>');
    FormTextRow('Описание', System::site()->HtmlEditor('description', $description, 600, 200));
    FormRow('Автор', System::site()->Edit('author', $author, false, 'style="width:400px;" maxlength="50"'));
    FormRow('E-mail автора', System::site()->Edit('email', $email, false, 'style="width:400px;" maxlength="50"'));
    FormRow('Сайт автора', System::site()->Edit('www', $www, false, 'style="width:400px;" maxlength="250"'));
    $enData = GetEnData($allow_comments, 'Разрешить', 'Запретить');
    FormRow('Комментарии', System::site()->Select('allow_comments', $enData));
    $enData = GetEnData($allow_votes, 'Разрешить', 'Запретить');
    FormRow('Оценки', System::site()->Select('allow_votes', $enData));
    FormRow('Кто видит', System::site()->Select('view', $visdata));
    $enData = GetEnData($show, 'Да', 'Нет');
    FormRow('Показать', System::site()->Select('show', $enData));
    $back = '';
    if (isset($_REQUEST['back'])) {
        $back = '&back=' . SafeDB($_REQUEST['back'], 255, str);
    }
    AddForm('<form action="' . ADMIN_FILE . '?exe=gallery&a=' . $action . $back . '" method="post" enctype="multipart/form-data">', System::site()->Button('Отмена', 'onclick="history.go(-1)"') . System::site()->Submit($cap));
}
function AdminNewsEditTopic()
{
    global $news_access_edittopics;
    if (!isset($_GET['id']) || !$news_access_edittopics) {
        System::admin()->AccessDenied();
    }
    AddCenterBox('Редактирование раздела');
    UseScript('jquery_ui', 'colorbox?theme=admin');
    $id = SafeEnv($_GET['id'], 11, int);
    System::database()->Select('news_topics', "`id`='" . $id . "'");
    $topic = System::database()->FetchRow();
    FormRow('Название раздела', System::admin()->Edit('topic_name', SafeDB($topic['title'], 255, str), false, 'maxlength="255" style="width:400px;" class="autofocus"'));
    FormTextRow('Описание (HTML)', System::admin()->HtmlEditor('topic_description', SafeDB($topic['description'], 255, str), 600, 200));
    $image = SafeDB($topic['image'], 255, str);
    list($width, $height) = SafeDB(explode(':', System::config('news/topics_tmb_size')), 11, int);
    FormRow('Изображение', System::admin()->FileManager('topic_image', $image) . '<br>
		<a href="' . $image . '" class="filemanager_topic_image colorbox" data-content="href:path" target="_blank">
			<img src="' . GetThumb($image, $width, $height) . '" class="filemanager_topic_image" data-content="src:tmb" style="margin-top: 5px; max-width: 250px;">
		</a>');
    AddForm('<form name="topicsform" action="' . ADMIN_FILE . '?exe=news&a=savetopic&id=' . $id . '" method="post" enctype="multipart/form-data" name="topicsform">', System::admin()->Button('Отмена', 'onclick="history.go(-1);"') . System::admin()->Submit('Сохранить'));
}
<?php

/*
 * LinkorCMS 1.4
 * © 2012 LinkorCMS Development Group
 */
// Здесь осуществляется вывод элементов формы которые потребуются для настройки блока
// Так же надо учитывать что может вызываться метод редактирования блока, тогда нужно
//  все поля заполнить на основе переданной конфигурации блока в переменной $block_config
// Указателем на то, что происходит редактирование блока может служить переменная $a. При
//  редактировании она должна иметь значение 'edit'.
// Вы можете использовать переменную $title для изменения заголовка формы.
if (!defined('VALID_RUN')) {
    header("HTTP/1.1 404 Not Found");
    exit;
}
$mod_text = '';
if ($a == 'edit') {
    $mod_text = SafeDB($block_config, 0, str, false);
}
FormTextRow('Текст', System::admin()->HtmlEditor('mod_text', $mod_text, 600, 400));
$title = 'Настройка текстового блока';
 /**
  * Редактор категорий
  * @param null   $CatId
  * @param null   $ToId
  * @param string $OtherUrlParams
  * @return void
  */
 public function CatEditor($CatId = null, $ToId = null, $OtherUrlParams = '')
 {
     $title = '';
     $desc = '';
     $icon = '';
     $boxtitle = 'Добавить категорию';
     $save_met = $this->save_met;
     if ($CatId != null) {
         $cat = System::database()->SelectOne($this->Table, "`id`='{$CatId}'");
         $title = SafeDB($cat['title'], 255, str);
         $desc = SafeDB($cat['description'], 0, str, false);
         $icon = SafeDB($cat['icon'], 255, str);
         $parent = SafeDB($cat['parent'], 11, int);
         $boxtitle = 'Редактирование категории';
         $save_met = $this->save_met . '&' . $this->id_par_name . '=' . $CatId;
         $cmd = 'Сохранить изменения';
     } else {
         if ($ToId != null) {
             $parent = $ToId;
         } elseif (isset($_GET['_cat_adto'])) {
             $parent = SafeEnv($_GET['_cat_adto'], 11, int);
         } else {
             $parent = -1;
         }
         $cmd = 'Добавить';
     }
     $cats_data = $this->GetCatsData($parent, false, true, $CatId, true);
     FormRow('В категорию', System::site()->Select('cat', $cats_data, false, $parent == -1 ? 'class="autofocus"' : ''));
     FormRow('Имя категории', System::site()->Edit('title', $title, false, 'maxlength="250" style="width:400px;"' . ($parent != -1 ? 'class="autofocus"' : '')));
     FormRow('Иконка', System::site()->Edit('icon', $icon, false, 'maxlength="250" style="width:400px;"'));
     FormTextRow('Описание', System::site()->HtmlEditor('desc', $desc));
     AddCenterBox($boxtitle);
     AddForm('<form action="' . ADMIN_FILE . '?exe=' . $this->module . '&' . $this->action_par_name . '=' . $save_met . $OtherUrlParams . '" method="post">', System::site()->Button('Отмена', 'onclick="history.go(-1);"') . System::site()->Submit($cmd));
 }
function AdminMailMail()
{
    if (isset($_GET['topic_id'])) {
        $topic_id = SafeEnv($_GET['topic_id'], 11, int);
    } else {
        $topic_id = 0;
    }
    $subject = '';
    $from = System::config('general/site_name');
    $from_email = System::config('general/site_email');
    $text = '';
    $text_html = '';
    $auto_br = array(false, false);
    if (!isset($_GET['id'])) {
        AddCenterBox('Создание новой рассылки');
        $auto_br[0] = true;
        $submit = System::site()->Submit('Разослать');
    } else {
        AddCenterBox('Редактирование');
        $id = SafeEnv($_GET['id'], 11, int);
        System::database()->Select('mail_history', "`id`='{$id}'");
        $msg = System::database()->FetchRow();
        $topic_id = SafeDB($msg['topic_id'], 11, int);
        $subject = SafeDB($msg['subject'], 255, str);
        $from = System::config('general/site_name');
        $from_email = System::config('general/site_email');
        $text = SafeDB($msg['plain_text'], 0, str);
        $text_html = SafeDB($msg['text_html'], 0, str);
        $auto_br[SafeDB($msg['auto_br'], 11, int)] = true;
        $b = 'Сохранить изменения';
        $submit = System::site()->Button('Отмена', 'onclick="history.go(-1);"') . System::site()->Submit('Сохранить изменения');
    }
    System::database()->Select('mail_topics', '');
    $topicdata = array();
    while ($topic = System::database()->FetchRow()) {
        System::site()->DataAdd($topicdata, SafeDB($topic['id'], 11, int), SafeDB($topic['title'], 250, str), $topic['id'] == $topic_id);
    }
    FormRow('Тема рассылки', System::site()->Select('topic', $topicdata, false, ''));
    FormRow('Заголовок писем', System::site()->Edit('subject', $subject, false, 'style="width:400px;"'));
    FormRow('Имя отправителя', System::site()->Edit('from', $from, false, 'style="width:400px;"'));
    FormRow('Адрес Email отправителя', System::site()->Edit('from_email', $from_email, false, 'style="width:400px;"'));
    FormTextRow('Текст письма в текстовом формате', System::site()->TextArea('text', $text, 'style="width:600px;height:400px;"'));
    FormTextRow('Текст письма в HTML формате', System::site()->HtmlEditor('html', $text_html, 600, 400));
    FormRow('', '<label>' . System::site()->Check('auto_br', '1', $auto_br[1]) . '&nbsp;Преобразовать текст в HTML (если вы не используете визуальный редактор)</label>');
    AddForm('<form action="' . ADMIN_FILE . '?exe=mail&a=send' . (isset($id) ? '&id=' . $id : '') . '" method="POST">', $submit);
}
function AdminArticlesEditor()
{
    global $editarticles;
    if (!$editarticles) {
        System::admin()->AccessDenied();
    }
    $cat_id = isset($_GET['to']) ? SafeDB($_GET['to'], 11, int) : 0;
    $author = '';
    $email = '';
    $www = '';
    $title = '';
    $description = '';
    $article = '';
    $image = '';
    $auto_br_desc = false;
    $auto_br_article = false;
    $allow_comments = true;
    $allow_votes = true;
    $view = 4;
    $active = true;
    //Модуль SEO
    $seo_title = '';
    $seo_keywords = '';
    $seo_description = '';
    //
    $form = 0;
    $product_id = '';
    if (!isset($_GET['id'])) {
        $action = 'add';
        $top = 'Добавить статью';
        $cap = 'Добавить';
    } else {
        $id = SafeEnv($_GET['id'], 11, str);
        System::database()->Select('articles', "`id`='{$id}'");
        $art = System::database()->FetchRow();
        $cat_id = SafeDB($art['cat_id'], 11, int);
        $author = SafeDB($art['author'], 200, str);
        $email = SafeDB($art['email'], 50, str);
        $www = SafeDB($art['www'], 250, str);
        $title = SafeDB($art['title'], 255, str);
        $description = SafeDB($art['description'], 0, str, false);
        $article = SafeDB($art['article'], 0, str, false);
        $image = SafeDB($art['image'], 250, str);
        $auto_br_article = SafeDB($art['auto_br_article'], 1, bool);
        $auto_br_desc = SafeDB($art['auto_br_desc'], 1, bool);
        $active = SafeDB($art['active'], 1, bool);
        $allow_comments = SafeDB($art['allow_comments'], 1, int);
        $allow_votes = SafeDB($art['allow_votes'], 1, int);
        $view = SafeDB($art['view'], 1, int);
        //Модуль SEO
        $seo_title = SafeDB($art['seo_title'], 255, str);
        $seo_keywords = SafeDB($art['seo_keywords'], 255, str);
        $seo_description = SafeDB($art['seo_description'], 255, str);
        //
        $form = SafeDB($art['form'], 11, int);
        $product_id = SafeDB($art['product_id'], 255, str);
        $action = 'save&id=' . $id;
        $top = 'Редактирование статьи';
        $cap = 'Сохранить изменения';
    }
    System::admin()->AddJS(Indent('
		ArticlesPreviewOpen = function(){
			if(tinyMCE){
				tinyMCE.triggerSave();
			}
			var form_data = Admin.SerializeFormData(document.forms.edit_form);
			var left = parseInt(screen.width / 2) - 400;
			var top = parseInt(screen.height / 10);
			var wp = window.open("", "Preview", "resizable=yes,scrollbars=yes,menubar=no,status=no,location=no,width=800,height=600,left="+left+",top="+top+"");
			wp.document.open();
			$.ajax({
				type: "POST",
				url: "' . ADMIN_FILE . '?exe=articles&a=preview",
				data: form_data,
				dataType: "html",
				success: function(data){
					wp.document.write(data);
					wp.document.close();
				}
			});
		}
	'));
    $cats_data = AdminArticlesGetTree()->GetCatsData($cat_id);
    if (count($cats_data) == 0) {
        $back_to_form = SaveRefererUrl();
        AddTextBox($top, 'Нет категорий для добавления! ' . System::admin()->SpeedButton('Добавить категорию', ADMIN_FILE . '?exe=articles&a=cateditor&back=' . $back_to_form, '', true, true));
        return;
    }
    FormRow('В категорию', System::site()->Select('category', $cats_data, false, $cat_id == 0 ? 'class="autofocus"' : ''));
    FormRow('Заголовок', System::site()->Edit('title', $title, false, 'maxlength="250" style="width:400px;"' . ($cat_id != 0 ? 'class="autofocus"' : '')));
    //Модуль SEO
    FormRow('[seo] Заголовок страницы', System::site()->Edit('seo_title', $seo_title, false, 'style="width:400px;"'));
    FormRow('[seo] Ключевые слова', System::site()->Edit('seo_keywords', $seo_keywords, false, 'style="width:400px;"'));
    FormRow('[seo] Описание', System::site()->Edit('seo_description', $seo_description, false, 'style="width:400px;"'));
    //
    // Веб форма
    $forms = System::database()->Select('forms', "`active`='1'");
    $forms_data = array();
    System::site()->DataAdd($forms_data, '0', 'Нет', $form == 0);
    foreach ($forms as $f) {
        System::site()->DataAdd($forms_data, SafeDB($f['id'], 11, int), SafeDB($f['hname'], 255, str), $f['id'] == $form);
    }
    FormRow('Форма', System::site()->Select('form', $forms_data));
    FormRow('Код товара', System::site()->Edit('product_id', $product_id, false, 'maxlength="250" style="width:400px;"'));
    AdminImageControl('Изображение', 'Загрузить изображение', $image, System::config('articles/images_dir'));
    FormTextRow('Короткая статья (HTML)', System::site()->HtmlEditor('description', $description, 600, 200));
    FormRow('', 'Преобразовать текст в HTML: ' . System::site()->Select('auto_br_desc', GetEnData($auto_br_desc, 'Да', 'Нет')));
    FormTextRow('Полная статья (HTML)', System::site()->HtmlEditor('article', $article, 600, 400));
    FormRow('', 'Преобразовать текст в HTML: ' . System::site()->Select('auto_br_article', GetEnData($auto_br_article, 'Да', 'Нет')));
    FormRow('Автор', System::site()->Edit('author', $author, false, 'style="width:400px;" maxlength="50"'));
    FormRow('E-mail автора', System::site()->Edit('email', $email, false, 'style="width:400px;" maxlength="50"'));
    FormRow('Сайт автора', System::site()->Edit('www', $www, false, 'style="width:400px;" maxlength="250"'));
    FormRow('Комментарии', System::site()->Select('allow_comments', GetEnData($allow_comments, 'Разрешить', 'Запретить')));
    FormRow('Оценки', System::site()->Select('allow_votes', GetEnData($allow_votes, 'Разрешить', 'Запретить')));
    FormRow('Кто видит', System::site()->Select('view', GetUserTypesFormData($view)));
    FormRow('Активна', System::site()->Select('active', GetEnData($active, 'Да', 'Нет')));
    AddCenterBox($top);
    if (!isset($_REQUEST['back'])) {
        $_REQUEST['back'] = SaveRefererUrl(ADMIN_FILE . '?exe=articles');
    }
    AddForm('<form name="edit_form" action="' . ADMIN_FILE . '?exe=articles&a=' . $action . '&back=' . SafeDB($_REQUEST['back'], 255, str) . '" method="post" enctype="multipart/form-data">', System::site()->Button('Отмена', 'onclick="history.go(-1)"') . System::site()->Button('Предпросмотр', 'onclick="ArticlesPreviewOpen();"') . System::site()->Submit($cap));
}
function AdminForumEditor()
{
    $site = System::site();
    $f_title = '';
    $f_desc = '';
    if (CheckGet('parent')) {
        $f_parent = SafeDB($_GET['parent'], 11, int);
    } else {
        $f_parent = 0;
    }
    $f_view = 4;
    $f_status = 1;
    $f_admin_theme_add = array(false, false);
    $f_new_message_email = array(false, true);
    $f_no_link_guest = array(false, false);
    $rang_access = 0;
    $rang_add_theme = 0;
    $rang_message = 0;
    $close_topic = array(false, false);
    if (isset($_GET['id'])) {
        // Редактирование
        $id = SafeDB($_GET['id'], 11, int);
        System::database()->Select('forums', "`id`='{$id}'");
        $forum = System::database()->FetchRow();
        $f_title = SafeDB($forum['title'], 255, str);
        $f_desc = SafeDB($forum['description'], 0, str);
        $f_parent = SafeDB($forum['parent_id'], 11, int);
        $f_admin_theme_add[(int) $forum['admin_theme_add']] = true;
        $f_new_message_email[(int) $forum['new_message_email']] = true;
        $f_no_link_guest[(int) $forum['no_link_guest']] = true;
        $rang_access = SafeDB($forum['rang_access'], 11, int);
        $rang_add_theme = SafeDB($forum['rang_add_theme'], 11, int);
        $rang_message = SafeDB($forum['rang_message'], 11, int);
        $close_topic[(int) $forum['close_topic']] = true;
        $f_view = SafeDB($forum['view'], 1, int);
        $f_status = SafeDB($forum['status'], 1, int);
        $id_param = '&id=' . $id;
        $b_cap = 'Сохранить изменения';
        if ($f_parent == 0) {
            $c_cap = 'Редактирование категории';
        } else {
            $c_cap = 'Редактирование форума';
        }
    } else {
        // Добавление
        $f_title = '';
        $f_admin_theme_add[0] = true;
        $f_new_message_email[1] = true;
        $f_no_link_guest[0] = true;
        $close_topic[0] = true;
        $id_param = '';
        $b_cap = 'Добавить';
        if ($f_parent == 0) {
            $c_cap = 'Добавить категорию';
        } else {
            $c_cap = 'Добавить форум';
        }
    }
    FormRow('Название', $site->Edit('title', $f_title, false, 'style="width:400px;" maxlength="255" class="autofocus"'));
    if ($f_parent != 0) {
        $where = '';
        if (isset($_GET['id'])) {
            $where = " `id`<>'" . SafeEnv($_GET['id'], 11, int) . "'";
        }
        $forums = System::database()->Select('forums', $where);
        $cat = false;
        if (count($forums) == 0) {
            $cat = false;
        } else {
            foreach ($forums as $forum) {
                if ($forum['parent_id'] == 0) {
                    $cat = true;
                }
            }
        }
        SortArray($forums, 'order');
        $tree = ForumTree::Instance($forums);
        $tree->NumItemsCaption = '';
        $tree->TopCatName = 'Нет родительского раздела';
        $data = array();
        if ($cat) {
            $data = $tree->GetCatsDataF($f_parent, true, true);
        } else {
            $site->DataAdd($data, 0, $tree->TopCatName, true);
        }
        FormRow('Родительский раздел', $site->Select('sub_id', $data));
        FormTextRow('Описание', $site->HtmlEditor('desc', $f_desc, 600, 200));
    }
    System::admin()->FormTitleRow('Настройки форума');
    $endata = array();
    $site->DataAdd($endata, '1', 'Да', $f_admin_theme_add[1]);
    $site->DataAdd($endata, '0', 'Нет', $f_admin_theme_add[0]);
    FormRow('', 'Только администраторы могут создавать новые темы: ' . $site->Select('admin_theme_add', $endata));
    $endata = array();
    $site->DataAdd($endata, '1', 'Да', $f_no_link_guest[1]);
    $site->DataAdd($endata, '0', 'Нет', $f_no_link_guest[0]);
    FormRow('', 'Скрывать ссылки от гостей: ' . $site->Select('no_link_guest', $endata));
    $endata = array();
    $site->DataAdd($endata, '1', 'Да', $f_new_message_email[1]);
    $site->DataAdd($endata, '0', 'Нет', $f_new_message_email[0]);
    FormRow('', 'Разрешить подписку на уведомление о новых сообщениях в теме: ' . $site->Select('new_message_email', $endata));
    $endata = array();
    $site->DataAdd($endata, '1', 'Да', $close_topic[1]);
    $site->DataAdd($endata, '0', 'Нет', $close_topic[0]);
    FormRow('', 'Закрыть для обсуждения (будет доступен только просмотр): ' . $site->Select('close_topic', $endata));
    System::admin()->FormTitleRow('Настройка прав доступа по рангам пользователей');
    FormRow('Доступ (с меньшим рангом доступ будет закрыт)', ForumAdminGetUsersTypesComboBox('rang_access', $rang_access));
    FormRow('Создание тем (с меньшим рангом темы создавать будет запрещено)', ForumAdminGetUsersTypesComboBox('rang_add_theme', $rang_add_theme));
    FormRow('Создание сообщений в теме (с меньшим рангом сообщения создавать будет запрещено)', ForumAdminGetUsersTypesComboBox('rang_message', $rang_message));
    System::admin()->FormTitleRow('Параметры видимости');
    FormRow('Видят', $site->Select('view', GetUserTypesFormData($f_view)));
    FormRow('Включить', $site->Select('status', GetEnData($f_status, 'Да', 'Нет')));
    FormRow('Внимание', 'Ограничения прав и видимости действует на все дочерние форумы.');
    AddCenterBox($c_cap);
    AddForm($site->FormOpen(ADMIN_FILE . '?exe=forum&a=forum_save' . $id_param), $site->Submit($b_cap));
}
function AdminFormsFieldEditor($action)
{
    global $cl_plugins, $cs_plugins;
    if (!isset($_GET['id'])) {
        GO(ADMIN_FILE . '?exe=forms');
    }
    $id = SafeEnv($_GET['id'], 11, int);
    $collsd = array();
    for ($i = 1; $i < 11; $i++) {
        System::site()->DataAdd($collsd, $i, $i);
    }
    $getfuncdata = array();
    System::site()->DataAdd($getfuncdata, '', '');
    foreach ($cl_plugins as $pl) {
        System::site()->DataAdd($getfuncdata, $pl[0], $pl[0]);
    }
    $savefuncdata = array();
    System::site()->DataAdd($savefuncdata, '', '');
    foreach ($cs_plugins as $pl) {
        System::site()->DataAdd($savefuncdata, $pl[0], $pl[0]);
    }
    $controls = array();
    System::site()->DataAdd($controls, 'edit', 'Текстовое поле');
    System::site()->DataAdd($controls, 'text', 'Область редактирования');
    System::site()->DataAdd($controls, 'combo', 'Раскрывающийся список');
    System::site()->DataAdd($controls, 'list', 'Список (мультивыделение)');
    System::site()->DataAdd($controls, 'check', 'Флажки');
    System::site()->DataAdd($controls, 'radio', 'Радиокнопки');
    System::site()->DataAdd($controls, 'file', 'Файл');
    $datatypes = array();
    System::site()->DataAdd($datatypes, 'int', 'Целочисленный');
    System::site()->DataAdd($datatypes, 'float', 'Вещественный');
    System::site()->DataAdd($datatypes, 'string', 'Текстовый');
    System::site()->DataAdd($datatypes, 'bool', 'Логический');
    System::site()->DataAdd($datatypes, 'file', 'Файл');
    $required = false;
    if ($action == 'add') {
        $hname = '';
        $name = '';
        $width = '';
        $height = '';
        $length = '0';
        $values = '';
        $cp = 'Добавить';
        $edit = false;
        System::admin()->FormTitleRow('Добавить поле');
    } else {
        $index = SafeEnv($_GET['index'], 11, int);
        System::database()->Select('forms', "`id`='{$id}'");
        $form = System::database()->FetchRow();
        $fields = unserialize($form['form_data']);
        $field = $fields[$index];
        $hname = $field['hname'];
        $name = $field['name'];
        $stype = FormsParseParams(explode(':', $field['kind']));
        $width = $stype['width'];
        $height = $stype['height'];
        $cols = $stype['cols'];
        $required = $stype['required'];
        $controls['selected'] = $stype['control'];
        $collsd['selected'] = $cols;
        $vv = explode(':', $field['values']);
        if (count($vv) == 2 && FormsConfigCheck2Func($vv[0], $vv[1])) {
            $getfuncdata['selected'] = $vv[1];
            $values = '';
        } else {
            $values = $field['values'];
        }
        if (function_exists($field['savefunc'])) {
            $savefuncdata['selected'] = $field['savefunc'];
        }
        $type = explode(',', $field['type']);
        $datatypes['selected'] = $type[1];
        $length = $type[0];
        $cp = 'Сохранить изменения';
        $edit = true;
    }
    FormRow('Название', System::site()->Edit('hname', $hname, false, 'maxlength="250" style="width:400px;" class="autofocus"'));
    FormRow('Имя HTML (уникальное для всех полей)', System::site()->Edit('name', $name, false, 'maxlength="250" style="width:400px;"'));
    FormRow('Элемент управления (укажите единицу измерения после ширины и высоты: %, px)', '<table>' . '<tr><td colspan="2" style="border:none; padding: 2px;">' . System::site()->Select('control', $controls) . '<td></tr>' . '<tr><td style="border:none; padding: 2px;">Ширина:</td>' . '<td style="border:none; padding: 2px;">' . System::site()->Edit('cwidth', $width, false, 'style="width:100px;"') . '</td></tr>' . '<tr><td style="border:none; padding: 2px;">Высота:</td>' . '<td style="border:none; padding: 2px;">' . System::site()->Edit('cheight', $height, false, 'style="width:100px;"') . '</td></tr>' . '<tr><td style="border:none; padding: 2px;">Колонок:</td>' . '<td style="border:none; padding: 2px;">' . System::site()->Select('ccols', $collsd) . '</td></tr>' . '</table>');
    FormTextRow('Возможные значения (Например: name:имя,name:имя, .... Только для элементов выбора.)', System::site()->TextArea('values', $values, 'style="width:600px;height:100px;"'));
    FormRow('Функция заполнения значений', System::site()->Select('valuesfunc', $getfuncdata));
    FormRow('Функция обработчик', System::site()->Select('savefunc', $savefuncdata));
    FormRow('Тип данных', System::site()->Select('datatype', $datatypes));
    FormRow('Длина поля (Размер файла Кб., 0 - неограниченно)', System::site()->Edit('maxlength', $length, false, 'style="width:60px;" maxlength="11"'));
    FormRow('Обязательное для заполнения', System::site()->Select('required', GetEnData($required, 'Да', 'Нет')));
    AddForm(System::site()->FormOpen(ADMIN_FILE . '?exe=forms&a=addfield&id=' . $id . ($edit ? '&index=' . $index : '')), ($edit ? System::site()->Button('Отмена', 'onclick="history.go(-1);"') : '') . System::site()->Submit($cp));
}
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));
}
/**
 * Редактор страницы
 * @return void
 */
function AdminPagesEditor()
{
    $link = '';
    $parent_id = -1;
    if (isset($_GET['parent'])) {
        $parent_id = SafeEnv($_GET['parent'], 11, int);
    }
    $page_id = -1;
    $title = '';
    $text = '<p></p>';
    $copy = '';
    $auto_br = false;
    $info = array(false, false, false, false, false);
    $view = 4;
    $enabled = true;
    $showinmenu = true;
    //Модуль SEO
    $seo_title = '';
    $seo_keywords = '';
    $seo_description = '';
    //
    if (isset($_GET['id'])) {
        $page_id = SafeEnv($_GET['id'], 11, int);
        System::database()->Select('pages', "`id`='" . $page_id . "'");
        $page = System::database()->FetchRow();
        $link = SafeDB($page['link'], 255, str);
        $parent_id = SafeDB($page['parent'], 11, int);
        $title = SafeDB($page['title'], 255, str);
        $text = SafeDB($page['text'], 0, str, false);
        $copy = SafeDB($page['copyright'], 255, str);
        $auto_br = SafeDB($page['auto_br'], 1, bool);
        $inf = SafeDB($page['info_showmode'], 5, str);
        $info = array($inf[0], $inf[1], $inf[2], $inf[3], $inf[4]);
        $view = SafeDB($page['view'], 1, int);
        $enabled = SafeDB($page['enabled'], 1, bool);
        $showinmenu = SafeDB($page['showinmenu'], 1, bool);
        //Модуль SEO
        $seo_title = SafeDB($page['seo_title'], 255, str);
        $seo_keywords = SafeDB($page['seo_keywords'], 255, str);
        $seo_description = SafeDB($page['seo_description'], 255, str);
        //
        $url = '&id=' . $page_id;
        $submit = 'Сохранить изменения';
        $box_title = 'Редактирование страницы';
    } else {
        $url = '';
        $submit = 'Добавить';
        $box_title = 'Добавить страницу';
    }
    System::admin()->AddJS(Indent('
		PagesPreviewOpen = function(){
			if(tinyMCE){
				tinyMCE.triggerSave();
			}
			var form_data = Admin.SerializeFormData(document.forms.pages_editor);
			var left = parseInt(screen.width / 2) - 400;
			var top = parseInt(screen.height / 10);
			var wp = window.open("", "Preview", "resizable=yes,scrollbars=yes,menubar=no,status=no,location=no,width=800,height=600,left="+left+",top="+top+"");
			wp.document.open();
			$.ajax({
				type: "POST",
				url: "' . ADMIN_FILE . '?exe=pages&a=preview' . $url . '",
				data: form_data,
				dataType: "html",
				success: function(data){
					wp.document.write(data);
					wp.document.close();
				}
			});
		}
	'));
    // Возможные родительские страницы
    $pages = System::database()->Select('pages');
    SortArray($pages, 'order');
    $tree = new Tree($pages);
    $cats_data = $tree->GetCatsData($parent_id, false, true, $page_id, true);
    FormRow('Родительская страница', System::site()->Select('parent_id', $cats_data, false, $parent_id == -1 ? 'class="autofocus"' : ''));
    FormRow('Заголовок', System::site()->Edit('title', $title, false, 'style="width:400px;" maxlength="255"' . ($parent_id != -1 ? ' class="autofocus"' : '')));
    FormRow('Ссылка', System::site()->Edit('link', $link, false, 'style="width:400px;"'));
    //Модуль SEO
    FormRow('[seo] Заголовок страницы', System::site()->Edit('seo_title', $seo_title, false, 'style="width:400px;"'));
    FormRow('[seo] Ключевые слова', System::site()->Edit('seo_keywords', $seo_keywords, false, 'style="width:400px;"'));
    FormRow('[seo] Описание', System::site()->Edit('seo_description', $seo_description, false, 'style="width:400px;"'));
    //
    FormTextRow('Текст (HTML)', System::site()->HtmlEditor('text', $text, 600, 400));
    FormRow('Преобразовать текст в HTML', System::admin()->Select('auto_br', GetEnData($auto_br, 'Да', 'Нет')));
    FormRow('Авторское право', System::site()->Edit('copy', $copy, false, 'style="width:400px;" maxlength="255"'));
    FormRow('Добавить информацию на страницу', '<label>' . System::site()->Check('ins_title', '1', $info[0]) . 'Заголовок</label><br />' . '<label>' . System::site()->Check('ins_copy', '1', $info[1]) . 'Авторские права</label><br />' . '<label>' . System::site()->Check('ins_date', '1', $info[2]) . 'Дата добавления</label><br />' . '<label>' . System::site()->Check('ins_modified', '1', $info[3]) . 'Дата изменения (если изменялась)</label><br />' . '<label>' . System::site()->Check('ins_counter', '1', $info[4]) . 'Количество просмотров</label>');
    FormRow('Кто видит', System::site()->Select('view', GetUserTypesFormData($view)));
    FormRow('Показать в меню', System::admin()->Select('showinmenu', GetEnData($showinmenu, 'Да', 'Нет')));
    FormRow('Включить', System::admin()->Select('enabled', GetEnData($enabled, 'Да', 'Нет')));
    AddCenterBox($box_title);
    AddForm('<form action="' . ADMIN_FILE . '?exe=pages&a=save' . $url . '" method="post" name="pages_editor">', System::site()->Button('Отмена', 'onclick="history.go(-1)"') . System::admin()->Button('Предпросмотр', 'onclick="PagesPreviewOpen();"') . System::site()->Submit($submit));
}
function AdminDownloadsFileEditor($action)
{
    if (!System::user()->CheckAccess2('downloads', 'edit_files')) {
        System::admin()->AccessDenied();
    }
    $category = isset($_GET['to']) ? SafeDB($_GET['to'], 11, int) : 0;
    $title = '';
    $url = '';
    $file_size = '0';
    $size_type = 'b';
    $shortdesc = '';
    $description = '';
    $image = '';
    $author = '';
    $author_site = '';
    $author_email = '';
    $file_ver = '';
    $allow_comments = true;
    $allow_votes = true;
    $view = 4;
    $active = true;
    if (!isset($_GET['id'])) {
        $action = 'addfilesave';
        $top = 'Добавить файл';
        $cap = 'Добавить';
    } else {
        $id = SafeEnv($_GET['id'], 11, int);
        System::database()->Select('downloads', "`id`='{$id}'");
        $file = System::database()->FetchRow();
        $category = SafeDB($file['category'], 11, int);
        $title = SafeDB($file['title'], 250, str);
        $url = SafeDB($file['url'], 250, str);
        $file_size = SafeDB($file['size'], 11, real);
        $size_type = SafeDB($file['size_type'], 1, str);
        $shortdesc = SafeDB($file['shortdesc'], 0, str, false);
        $description = SafeDB($file['description'], 0, str, false);
        $image = SafeDB($file['image'], 250, str);
        $author = SafeDB($file['author'], 200, str);
        $author_site = SafeDB($file['author_site'], 250, str);
        $author_email = SafeDB($file['author_email'], 50, str);
        $file_ver = SafeDB($file['file_version'], 250, str);
        $allow_comments = SafeDB($file['allow_comments'], 1, int);
        $allow_votes = SafeDB($file['allow_votes'], 1, int);
        $view = SafeDB($file['view'], 1, int);
        $active = SafeDB($file['active'], 1, int);
        $action = 'editfilesave&id=' . $id;
        $top = 'Редактирование файла';
        $cap = 'Сохранить изменения';
    }
    $cats_data = AdminDownloadsGetTree()->GetCatsData($category);
    if (count($cats_data) == 0) {
        $back_to_form = SaveRefererUrl();
        AddTextBox($top, 'Нет категорий для добавления! ' . System::admin()->SpeedButton('Добавить категорию', ADMIN_FILE . '?exe=downloads&a=cateditor&back=' . $back_to_form, '', true, true));
        return;
    }
    $filesize_data = array();
    System::site()->DataAdd($filesize_data, 'b', 'Байт', $size_type == 'b');
    System::site()->DataAdd($filesize_data, 'k', 'Килобайт', $size_type == 'k');
    System::site()->DataAdd($filesize_data, 'm', 'Мегабайт', $size_type == 'm');
    System::site()->DataAdd($filesize_data, 'g', 'Гигабайт', $size_type == 'g');
    $max_file_size = ini_get('upload_max_filesize');
    AddCenterBox($top);
    FormRow('В категорию', System::site()->Select('category', $cats_data, false, $category == 0 ? 'class="autofocus"' : ''));
    FormRow('Название', System::site()->Edit('title', $title, false, 'style="width:400px;"' . ($category != 0 ? ' class="autofocus"' : '')));
    FormRow('Путь к файлу', System::site()->Edit('url', $url, false, 'style="width:400px;"'));
    //FormRow('Путь к файлу', System::site()->FileManager( 'url', $url, 400));
    FormRow('Загрузить файл<br />(<small>Максимальный размер файла: ' . $max_file_size . '</small>)', System::site()->FFile('upload_file') . '<br /><div style="width: 400px; word-wrap:break-word;">Разрешенные форматы:<br />' . System::config('downloads/file_exts') . '</div>');
    FormRow('Размер файла', System::site()->Edit('size', $file_size, false, 'style="width:200px;"') . ' ' . System::site()->Select('filesize_type', $filesize_data));
    AdminImageControl('Изображение', 'Загрузить изображение', $image, System::config('downloads/images_dir'));
    FormTextRow('Краткое описание', System::site()->HtmlEditor('shortdesc', $shortdesc, 600, 200));
    FormTextRow('Полное описание', System::site()->HtmlEditor('description', $description, 600, 400));
    FormRow('Версия файла', System::site()->Edit('version', $file_ver, false, 'style="width:400px;"'));
    FormRow('Автор', System::site()->Edit('author', $author, false, 'style="width:400px;"'));
    FormRow('E-mail автора', System::site()->Edit('author_email', $author_email, false, 'style="width:400px;"'));
    FormRow('Сайт автора', System::site()->Edit('author_site', $author_site, false, 'style="width:400px;"'));
    FormRow('Комментарии', System::site()->Select('allow_comments', GetEnData($allow_comments, 'Разрешить', 'Запретить')));
    FormRow('Оценки', System::site()->Select('allow_votes', GetEnData($allow_votes, 'Разрешить', 'Запретить')));
    FormRow('Кто видит', System::site()->Select('view', GetUserTypesFormData($view)));
    FormRow('Активен', System::site()->Select('active', GetEnData($active, 'Да', 'Нет')));
    if (!isset($_REQUEST['back'])) {
        $_REQUEST['back'] = SaveRefererUrl(ADMIN_FILE . '?exe=downloads');
    }
    AddForm('<form action="' . ADMIN_FILE . '?exe=downloads&a=' . $action . '&back=' . SafeDB($_REQUEST['back'], 255, str) . '" method="post" enctype="multipart/form-data" name="edit_form">', System::site()->Button('Отмена', 'onclick="history.go(-1)"') . System::site()->Submit($cap));
}