function __construct($HtmlName, $Action = '', $Method = 'post', $OtherParams = '') { $this->htmlName = SafeDB($HtmlName, 255, str); $this->action = SafeDB($Action, 255, str); $this->method = SafeDB($Method, 255, str); $this->otherParams = $OtherParams; }
/** * Парсер смайликов. * @param $text * @return void */ function SmiliesReplace(&$text) { static $codes = null; if (!isset($codes)) { $codes = array(); $smilies_dir = System::config('general/smilies_dir'); $smilies = System::database()->Select('smilies'); // Пусть отключенные смайлики тоже парсятся foreach ($smilies as $smile) { $sub_codes = explode(',', $smile['code']); $smile_file = SafeDB($smile['file'], 255, str); if ($smile['desc'] != '') { $title = SafeDB($smile['desc'], 255, str); } else { $title = SafeDB(GetFileName($smile_file, true), 255, str); } foreach ($sub_codes as $code) { $code = trim($code); if ($code != '') { $codes[$code] = '<img src="' . RealPath2($smilies_dir . $smile_file) . '" title="' . $title . '">'; } } } } $text = strtr($text, $codes); }
/** * Редактор категорий * @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 IndexForumEditTopic() { global $forum_lang; if (!System::user()->Auth) { System::site()->AddTextBox($forum_lang['forum'], '<p align="center">' . $forum_lang['error_auth'] . '</p>'); return; } $topic = SafeEnv($_GET['topic'], 11, int); $post = System::database()->Select('forum_posts', "`object`='{$topic}' and `delete`='0'"); SortArray($post, 'id', false); System::database()->Select('forum_topics', "`id`='{$topic}'"); $topic = System::database()->FetchRow(); if ($topic['delete'] == 0 || System::config('forum/basket') == false) { $title = ''; if (SafeDB($topic['starter_id'], 11, str) == System::user()->Get('u_id') or System::user()->IsAdmin()) { $title = SafeDB($topic['title'], 0, str); } if (System::user()->Get('u_id') == $post[0]['user_id'] || System::user()->isAdmin()) { ForumRenderPostForm(true, 0, SafeEnv($_GET['topic'], 11, int), SafeDB($post[0]['id'], 11, int), SafeDB($post[0]['message'], 0, str, false, true), $title); } else { System::site()->AddTextBox($forum_lang['forum'], '<p align="center">' . $forum_lang['no_right_comment_edit'] . '</p>'); return; } } else { System::site()->AddTextBox($forum_lang['topic_basket_current_post'], '<p align="center">' . $forum_lang['topic_basket_post'] . '<br><input type="button" value="' . $forum_lang['back'] . '"onclick="history.back();"></p>'); } }
function ___SitemapPluginForum($Forum, $Level, $i, $c) { global $forums_tree; $forum_config = $forums_tree->GetForumConfigRecursive($Forum['id'], ACCESS_ALL); if (!$forum_config['access']) { return false; } SitemapAddObject($Level, $Forum['title'], Ufu('index.php?name=forum&op=showforum&forum=' . SafeDB($Forum['id'], 11, int), 'forum/{forum}/')); }
function getconf_TemplatesList($name) { $r = array(); $templates = System::database()->Select('templates', "`admin`='0'"); foreach ($templates as $t) { $r[] = array(SafeDB($t['folder'], 255, str), SafeDB($t['name'], 255, str)); } return $r; }
function IndexForumMarkRead() { $mark_forums = array(); // Форумы на которых устанавливать метки $forums_tree = ForumTree::Instance(); if (isset($_GET['forum'])) { // Только внутри определённого форума $forum = SafeDB($_GET['forum'], 11, int); $mark_forums = $forums_tree->GetAllAccessForumId($forum); } else { // На всех форумах $mark_forums = $forums_tree->GetAllAccessForumId(); } $user_id = System::user()->Get('u_id'); if (System::user()->Auth) { // Загружаем данные о прочтении тем пользователем $read_data = Forum_Marker_GetReadData(); // Загружаем топики (агрегированы по forum_id) $topics = ForumCacheGetTopics(); $del_where = ''; $insert_values = array(); $time = time(); foreach ($mark_forums as $forum_id) { if (!isset($topics[$forum_id])) { continue; } foreach ($topics[$forum_id] as $topic) { $tid = SafeEnv($topic['id'], 11, int); // Не прочитана или метка устарела if (!isset($read_data[$topic['id']])) { $insert_values[] = "'{$user_id}','{$tid}','{$time}'"; // Добавить новую метку } elseif ($read_data[$topic['id']]['date'] < $topic['last_post']) { $del_where .= "(`tid`='{$tid}' and `mid`= '{$user_id}') or "; // Удалить текущую метку $insert_values[] = "'{$user_id}','{$tid}','{$time}'"; // Добавить новую метку } } } // Удаляем устаревшие метки if ($del_where != '') { $del_where = substr($del_where, 0, -4); // Удаляем .or. System::database()->Delete('forum_topics_read', $del_where); } // Добавляем новые метки // TODO: В будущем нужно перейти на InnoDB и использовать транзакции как в MySQL так и в FilesDB. if (count($insert_values) > 0) { foreach ($insert_values as $vals) { System::database()->Insert('forum_topics_read', $vals); } } } GO(GetSiteUrl() . Ufu('index.php?name=forum' . (isset($forum) ? '&op=showforum&forum=' . $forum : ''), 'forum/' . (isset($forum) ? '{forum}/' : ''))); }
/** * Вывод адреса электронной почты в админке * @param string $Email * @param string $Name * @return string */ function PrintEmail($Email, $Name = '') { $Email = SafeDB($Email, 255, str); $Name = SafeDB($Name, 255, str); if ($Email == '') { return ' '; } else { return '<a href="mailto:' . $Email . '">' . ($Name != '' ? $Name : $Email) . '</a>'; } }
/** * Выводит данные каталога. * @param type $cat_id */ public function ShowCats($cat_id) { $vars = array(); $cats = $this->GetChildTree($cat_id); $c = count($cats); if ($c > 0) { System::site()->AddTemplatedBox('', $this->catTemplate); System::site()->AddBlock('cats', true, true, 'cat'); for ($i = 0; $i < $c; $i++) { $id = SafeDB($cats[$i]['id'], 11, int); $vars['url'] = Ufu('index.php?name=' . $this->moduleName . '&' . $this->id_par_name . '=' . $id, $this->moduleName . '/{' . $this->id_par_name . '}/'); $vars['title2'] = SafeDB($cats[$i]['title'], 255, str); $vars['title'] = '<a href="' . $vars['url'] . '">' . $vars['title2'] . '</a>'; if (file_exists($cats[$i]['icon'])) { $vars['icon_url'] = SafeDB(RealPath2($cats[$i]['icon']), 255, str); } else { $vars['icon_url'] = 'images/cat.gif'; } $vars['icon'] = '<img border="0" src="' . $vars['icon_url'] . '" />'; $vars['description'] = $cats[$i]['description']; $counters = $this->GetCountersRecursive($id); $vars['count'] = $counters['files']; $vars['cat_count'] = $counters['cats']; // Выодим подкатегории $childs = ''; $sub = ''; if (isset($cats[$i][TREE_CHILD_ID])) { for ($j = 0, $k = count($cats[$i][TREE_CHILD_ID]); $j < $k; $j++) { $child_id = SafeDB($cats[$i][TREE_CHILD_ID][$j]['id'], 11, int); $child_counters = $this->GetCountersRecursive($child_id); $link = Ufu('index.php?name=' . $this->moduleName . '&' . $this->id_par_name . '=' . $child_id, $this->moduleName . '/{' . $this->id_par_name . '}/'); $sub .= '<a href="' . $link . '">' . $cats[$i][TREE_CHILD_ID][$j]['title'] . '</a>' . ' (' . $child_counters['files'] . '), '; } $childs .= substr($sub, 0, -2) . '.'; } $vars['childs_cats'] = $childs; System::site()->AddSubBlock('cats', true, $vars); } if ($cat_id == 0 && function_exists($this->NumItems)) { $text = '<br>' . $this->NumItemsCaption . call_user_func($this->NumItems); } else { $text = ''; } System::site()->AddBlock('cat_caption', true, false, '', '', $text); } elseif ($cat_id == 0) { System::site()->AddTextBox('', '<p align="center">Категорий пока нет.</p>'); } }
/** * Записывает реферал в базу данных. * @param $referer */ function AuditWriteReferer($referer) { if (trim($referer) != '' && !IsMainHost($referer)) { $referer = SafeEnv(Url($referer), 255, str); $count = 1; System::database()->Select('referers', "`referer`='{$referer}'"); if (System::database()->NumRows() > 0) { $ref = System::database()->FetchRow(); $count = SafeDB($ref['count'], 11, int); $count++; System::database()->Update('referers', "count='{$count}'", "`referer`='{$referer}'"); } else { $values = Values('', $referer, $count); System::database()->Insert('referers', $values); } } }
function IndexForumCloseTopic() { if (!System::user()->isAdmin()) { HackOff(); return; } if (CheckGet('topic')) { $topic_id = SafeEnv($_GET['topic'], 11, int); } else { System::site()->AddTextBox($forum_lang['error'], $forum_lang['error_data']); return; } System::database()->Select('forum_topics', "`id`='{$topic_id}'"); $topic = System::database()->FetchRow(); $forum_id = SafeDB($topic['forum_id'], 11, int); System::database()->Update('forum_topics', "`close_topics`='1'", "`id`='{$topic_id}'"); GO(Ufu('index.php?name=forum&op=showforum&forum=' . $forum_id, 'forum/{forum}/')); }
function IndexForumEditPosts() { global $forum_lang; if (!System::user()->isAdmin()) { System::site()->AddTextBox($forum_lang['forum'], '<p align="center">' . $forum_lang['error_no_right_edit'] . '.</p>'); return; } if (!isset($_POST['posts'])) { System::site()->AddTextBox($forum_lang['forum'], '<p align="center">' . $forum_lang['error_no_messages'] . '</p><br><a href="javascript:history.go(-1)">' . System::site()->Button($forum_lang['back']) . '</a>'); return; } if (isset($_GET['ok']) && $_GET['ok'] == '1') { $posts_ids = SafeEnv(explode(',', $_POST['posts']), 11, int); $moderation_result = ForumModerationPosts($_GET['edit'], $posts_ids, true); if ($moderation_result) { if (isset($_GET['back'])) { GoRefererUrl($_GET['back']); } else { GO($_POST['backurl']); } } } else { $posts_ids = array(); foreach (array_keys($_POST['posts']) as $post_id) { $posts_ids[] = SafeEnv($post_id, 11, int); } $do = SafeDB($_POST['do'], 255, str); $form_url = 'index.php?name=forum&op=edit_posts&edit=' . $do . '&ok=1'; if (isset($_GET['back'])) { $form_url .= '&back=' . SafeDB($_GET['back'], 10, str); } $vars['lang_premoderation'] = $forum_lang['moderation_messages']; $vars['posts_count'] = count($posts_ids); $vars['form_action'] = $form_url; $vars['form_name'] = 'forum_delete'; $vars['posts'] = implode(',', $posts_ids); $vars['backurl'] = $_SERVER['HTTP_REFERER']; $vars['reason'] = System::config('forum/basket') && $do == 'deleteposts'; $vars['lang_do'] = ForumModerationPosts($do, $posts_ids, false); System::site()->AddTemplatedBox($vars['lang_do'], 'module/forum_moderation.html'); System::site()->AddBlock('forum_moderation', true, false, 'mod'); System::site()->SetVars('forum_moderation', $vars); } }
function AdminCacheMain() { AddCenterBox('Очистка кэша'); if (!System::cache()->Enabled) { if (USE_CACHE) { System::admin()->HighlightError('<strong style="color: #FF0000;">Внимание!</strong> Папка "' . System::cache()->Path . '" не доступна для записи. Функция кэширования отключена.'); } else { System::admin()->HighlightError('<strong style="color: #FF0000;">Внимание!</strong> Функция кэширования отключена в конфигурационном файле "config/config.php".'); } } $text = '<table cellspacing="0" cellpadding="0" class="cfgtable">'; $text .= '<tr><th>Группа</th><th>Папка</th><th>Записей</th><th>Занимаемое место</th><th>Функции</th></tr>'; $num_rows = 0; $total_size = 0; $groups = System::cache()->GetGroups(); foreach ($groups as $g) { $file_size = 0; $num_files = 0; $folder = System::cache()->Path . $g; $files = scandir($folder); foreach ($files as $file) { if ($file != '.' && $file != '..') { $f = $folder . '/' . $file; if (!is_dir($f)) { $file_size += filesize($f); } $num_files++; } } $func = SpeedButton('Очистить', ADMIN_FILE . '?exe=cache&a=clear&group=' . SafeDB($g, 255, str), 'images/admin/cleanup.png'); $rows = floor($num_files / 2); $text .= '<tr>' . '<td>' . SafeDB($g, 255, str) . '</td>' . '<td>' . SafeDB($folder, 255, str) . '</td>' . '<td>' . $rows . '</td>' . '<td>' . FormatFileSize($file_size) . '</td>' . '<td>' . $func . '</td>' . '</tr>'; $num_rows += $rows; $total_size += $file_size; } $text .= '</table><br />'; $text .= 'Итого <b>' . count($groups) . '</b> групп(ы), <b>' . $num_rows . '</b> записей и <b>' . FormatFileSize($total_size) . '</b> занято. ' . System::admin()->SpeedButton('Очистить все группы', ADMIN_FILE . '?exe=cache&a=cleanup', '', true, true); $text .= '<br /><br />'; AddText($text); }
/* * LinkorCMS 1.4 * © 2012 LinkorCMS Development Group */ define('RSS_SCRIPT', true); define('VALID_RUN', true); require 'config/init.php'; // Конфигурация и инициализация @header("Content-Type: text/xml"); @header("Cache-Control: no-cache"); @header("Pragma: no-cache"); $rss_title = 'Новости на ' . System::config('general/site_url'); $rss_link = System::config('general/site_url'); $rss_description = 'RSS канал сайта ' . System::config('general/site_url') . '.'; $rss = new RssChannel($rss_title, $rss_link, $rss_description); $rss->pubDate = gmdate('D, d M Y H:i:s') . ' GMT'; $rss->generator = CMS_NAME . ' ' . CMS_VERSION; $rss->managingEditor = '*****@*****.**'; $rss->webMaster = System::config('general/site_email'); $num = 10; // Пока максимум 10 заголовков по умолчанию $news = System::database()->Select('news', "`enabled`='1'", $num, 'date', true); foreach ($news as $s) { $title = SafeDB($s['title'], 255, str); $description = SafeDB($s['start_text'], 4048, str); $link = HtmlChars(GetSiteUrl() . Ufu('index.php?name=news&op=readfull&news=' . $s['id'] . '&topic=' . $s['topic_id'], 'news/{topic}/{news}/')); $pubDate = gmdate('D, d M Y H:i:s', $s['date']) . ' GMT'; $rss->AddItem($title, $description, $link, $pubDate, $link); } echo $rss->Generate();
<?php /* * LinkorCMS 1.4 * © 2012 LinkorCMS Development Group */ if (!defined('VALID_RUN')) { header("HTTP/1.1 404 Not Found"); exit; } $table = SafeEnv($_GET['name'], 255, str); $index = SafeEnv($_GET['index'], 11, int); $where = ''; if (isset($_GET['where'])) { $where = $_GET['where']; } $rows = System::database()->Select($table, $where); $row = $rows[$index]; $row2 = array(); $columns = System::database()->GetTableColumns($table); foreach ($columns as $col) { $row2[] = $row[$col['name']]; } $row2 = SafeEnv($row2, 0, str); $code_vals = Values($row2); $install_code = "System::database()->Insert('{$table}',\"{$code_vals}\");" . EOL; System::admin()->AddCenterBox('PHP код вставки'); System::admin()->FormRow('Установка', $site->TextArea('code', $install_code, 'style="width: 800px; height: 200px;" class="autofocus selectall"')); System::admin()->AddForm('', $site->Button('Назад', 'onclick="history.go(-1);"')); AdminFdbAdminGenTableMenu(SafeDB($table, 255, str));
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'); }
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 . '&post_id=' . $post_id . '&ok=1">Да</a> <a href="javascript:history.go(-1)">Нет</a><br /><br />'; System::site()->AddTextBox('', '<p align="center">' . $text . '</p>'); return 0; } }
/** * Главная страница форума, список форумов в категории или подфорумов в форуме. * @param int $cat_id Идентификатор просматриваемого каталога * @global type $forum_lang * @return type */ function IndexForumMain($cat_id = null, &$topics_data = null) { global $forum_lang; $forums_tree = ForumTree::Instance(); if (isset($cat_id)) { $parent = $forums_tree->IdCats[$cat_id]['parent_id']; // Чтобы сделать просмотр категории нужно её выводить как подкатегорию родительской категории $cat = $parent == 0; // Просмотр категории или главной страницы форума $main = false; // Не главная страница (просмотр категории или форума) } else { $cat = true; // Однозначно просматриваем категрию или главную страницу форума (выводим блоки онлайн и статистики) $cat_id = 0; $parent = 0; // Корневой раздел в качестве родительской категории $main = true; // Главная страница } // Нет категорий, выводим сообщение if (!isset($forums_tree->Cats[$parent]) && $cat) { System::site()->AddTextBox($forum_lang['forum'], $forum_lang['no_category']); return; } if ($cat) { // Выводим категорию или главная страница форума (без топиков) // Устанавливаем заголовок страницы if (!$main) { System::site()->SetTitle(SafeDB($forums_tree->IdCats[$cat_id]['title'], 255, str) . ' - ' . $forum_lang['forum']); } // Объекты статистини и онлайн $statistics = ForumStatistics::Instance(); $online = ForumOnline::Instance($cat_id, '0', true); // Инициализируем статистику $statistics->Initialize($forum_lang['statistics']); // Загружаем информацию по топикам в $topics_data и считаем статистику (кэшировать статистику) $topics_data = ForumCacheGetTopics(); // Запрашиваем данные тем (агрегированы по форумам) $resolve_cats = array_keys($topics_data); foreach ($resolve_cats as $resolve_cat) { if (!isset($topics_data[$resolve_cat])) { continue; } foreach ($topics_data[$resolve_cat] as $topic) { $statistics->hits += $topic['hits']; $statistics->AddTopicAuthor($topic['starter_id'], $topic['starter_name']); } } // Подсчитываем количество тем и постов $counters = $forums_tree->GetCountersRecursive($cat_id); $statistics->topics_count = $counters['files']; $statistics->reply_count = $counters['cats']; // Выводим хлебные крошки $forums_tree->BreadCrumbsF($cat_id); System::site()->BreadCrumbsLastUrl = true; // Ссылки, Отметить все как прочитанные и показать все не прочитанные темы. System::site()->AddBlock('is_forum_member', AccessIsResolved(2), false, 'mark'); $vars_is_forum_member = array(); $vars_is_forum_member['url'] = '<a href="' . Ufu('index.php?name=forum&op=markread', 'forum/markread/') . '">' . $forum_lang['mark_all_read'] . '</a>'; $vars_is_forum_member['viewnoreadurl'] = '<a href="' . Ufu('index.php?name=forum&op=viewnoread', 'forum/viewnoread/') . '">' . $forum_lang['viewnoread'] . '</a>'; System::site()->Blocks['is_forum_member']['vars'] = $vars_is_forum_member; // Последние темы форума System::site()->AddBlock('old', true, false, 'mark'); $vars_old = array(); $vars_old['lasttopics'] = '<a href="' . Ufu('index.php?name=forum&op=lasttopics', 'forum/lasttopics/') . '">' . $forum_lang['lasttopics'] . '</a>'; System::site()->Blocks['old']['vars'] = $vars_old; } // Загружаем данные о прочтении тем $read_data = Forum_Marker_GetReadData(); $auth = System::user()->Auth; // Блоки форума System::site()->AddBlock('forums', true, true, 'forum'); System::site()->AddBlock('is_no_sub_forum', $cat, false); // Блок со статистикой и онлайн (отключается в категории) $visable_cats = false; // Выведена хотябы одна категория с форумом - если нет то показываем ошибку foreach ($forums_tree->Cats[$parent] as $category) { // Категории if (!$main && ($category['id'] != $cat_id || !isset($forums_tree->Cats[$category['id']]))) { // Если просматриваем только одну категорию continue; } // Рекурсивно определяем настройки $forum_config = $forums_tree->GetForumConfigRecursive($category['id']); // Нет доступа или форум не виден или отключён if (!$forum_config['access']) { continue; } $visable_cats = true; $category = IndexForumDataFilter($category, $forum_config); // Выводим категорию IndexForumCatOpen($category); IndexForumRender($category); // Выводим форумы foreach ($forums_tree->Cats[$category['id']] as $forum) { $forum_id = $forum['id']; $forum_config = $forums_tree->GetForumConfigRecursive($forum_id); // Нет доступа или форум не виден или отключён if (!$forum_config['access']) { continue; } $forum = IndexForumDataFilter($forum, $forum_config); // Обрабатываем подфорумы $subforums = array(); if (isset($forums_tree->Cats[$forum_id])) { foreach ($forums_tree->Cats[$forum_id] as $sforum) { // Подфорумы, нужно добавить только пометку о прочтении и обработать $read = true; // прочитан if ($auth) { $childs_forums = $forums_tree->GetAllChildId($sforum['id']); foreach ($childs_forums as $child_forum_id) { if (!isset($topics_data[$child_forum_id])) { continue; } foreach ($topics_data[$child_forum_id] as $topic) { if (!isset($read_data[$topic['id']]) || $topic['last_post'] > $read_data[$topic['id']]['date']) { $read = false; // не прочитан break; } } if (!$read) { break; } } } $sforum = IndexForumDataFilter($sforum); $sforum['read'] = $read; $subforums[] = $sforum; } } // Определяем статус "прочинано" для форума $read = true; // прочитан if ($auth) { $childs_forums = $forums_tree->GetAllChildId($forum_id); foreach ($childs_forums as $child_forum_id) { if (!isset($topics_data[$child_forum_id])) { continue; } foreach ($topics_data[$child_forum_id] as $topic) { if (!isset($read_data[$topic['id']]) || $topic['last_post'] > $read_data[$topic['id']]['date']) { $read = false; // не прочитан break; } } if (!$read) { break; } } } // Вывод форума в шаблон IndexForumRender($forum, false, $read, $subforums); } // Закрываем категорию IndexForumCatClose($category); } if ($visable_cats) { // Шаблон форума (полезно подключать шаблоны вконце, там может быть PHP код) System::site()->AddTemplatedBox('', 'module/forums.html'); } if ($cat) { // Не при просмотре форума (субфорумы + топики) if (!$visable_cats) { System::site()->AddTextBox($forum_lang['forum'], $forum_lang['no_category']); return; } // Выводим блок онлайн $online->Render($cat_id, '0', $cat_id == 0 ? $forum_lang['all_online'] : $forum_lang['current_category']); // Выводим статистику $statistics->Render(); // Быстрый переход if (!$cat) { ForumQuickTransitionBox($cat_id, $forum_lang['quick_transition']); } } }
function AdminFdbAdminGenTableMenu($name) { global $action; // Добавляем в меню список таблиц и выбраннную таблицу System::admin()->BreadCrumbAdd('Список таблиц', 'exe=dbadmin&a=main'); $num_rows = 0; $tables = System::database()->GetTableInfo(); SortArray($tables, 'name'); $prefs = strpos($name, '_'); if ($prefs !== false) { $pref = substr($name, 0, $prefs); // Выводим сначала таблицы с префиксом foreach ($tables as $table) { $n = SafeDb($table['name'], 255, str); if (substr($n, 0, $prefs) == $pref) { System::admin()->BreadCrumbMenuItem($n, 'exe=dbadmin&a=structure&name=' . $n); } if ($n == $name) { $num_rows = SafeDB($table['num_rows'], 11, int); } } System::admin()->BreadCrumbMenuDelimiter(); foreach ($tables as $table) { $n = SafeDb($table['name'], 255, str); if (substr($n, 0, $prefs) != $pref) { System::admin()->BreadCrumbMenuItem($n, 'exe=dbadmin&a=structure&name=' . $n); } if ($n == $name) { $num_rows = SafeDB($table['num_rows'], 11, int); } } } else { foreach ($tables as $table) { $n = SafeDb($table['name'], 255, str); System::admin()->BreadCrumbMenuItem($n, 'exe=dbadmin&a=structure&name=' . $n); if ($n == $name) { $num_rows = SafeDB($table['num_rows'], 11, int); } } } System::admin()->BreadCrumbAdd($name, 'exe=dbadmin&a=main'); System::admin()->SideBarAddMenuItem('Структура таблицы', 'exe=dbadmin&a=structure&name=' . $name, 'structure'); System::admin()->SideBarAddMenuItem('Обзор записей (' . $num_rows . ')', 'exe=dbadmin&a=review&name=' . $name, 'review'); System::admin()->SideBarAddMenuItem('Добавить запись', 'exe=dbadmin&a=insert&name=' . $name, 'insert'); System::admin()->SideBarAddMenuItem('Редактировать структуру', 'exe=dbadmin&a=edittable&name=' . $name, 'edittable'); System::admin()->SideBarAddMenuItem('Очистить таблицу', 'exe=dbadmin&a=truncatetable&name=' . $name, 'truncatetable'); System::admin()->SideBarAddMenuItem('Удалить таблицу', 'exe=dbadmin&a=droptable&name=' . $name, 'droptable'); System::admin()->SideBarAddMenuBlock('Таблица "' . $_GET['name'] . '"', $action); }
header("HTTP/1.1 404 Not Found"); exit; } global $search_results, $searchstr; $objects = System::database()->Select('articles', GetWhereByAccess('view', "`active`='1'")); foreach ($objects as $object) { $result = array(); $result['mod'] = $plugin_info['mod_title']; // Имя модуля $result['coincidence'] = ''; // Показывает где было совпадение $result['title'] = SafeDB($object['title'], 255, str); $result['public'] = TimeRender(SafeDB($object['public'], 11, int)); // Дата публикации $result['link'] = Ufu('index.php?name=articles&op=read&art=' . SafeDB($object['id'], 11, int) . '&cat=' . SafeDB($object['cat_id'], 11, int), 'articles/{cat}/{art}/'); $result['text'] = SafeDB($object['description'], 0, str); if (strlen($result['text']) > 255) { $result['text'] = substr($result['text'], 0, 255) . ' ...'; } if (SSearch($object['seo_keywords'], $searchstr) != false) { $result['coincidence'] = 'Ключевые слова статьи'; $search_results[] = $result; } elseif (SSearch($object['seo_description'], $searchstr) != false) { $result['coincidence'] = 'Описание статьи'; $search_results[] = $result; } elseif (SSearch($object['title'], $searchstr) != false) { $result['coincidence'] = 'Заголовок статьи'; $search_results[] = $result; } elseif (SSearch($object['description'], $searchstr) != false) { $result['text'] = SCoincidence($object['description'], $searchstr); $result['coincidence'] = 'Вводный текст статьи';
Admin.HideSplashScreen(); } }); }; '); $backup_files = GetFiles($backup_dir, false, true, '.zip'); rsort($backup_files, SORT_STRING); $backup_files2 = array(); foreach ($backup_files as $file) { if (GetSecondFileExt($file, true) == System::database()->Name) { $backup_files2[] = $file; } } $text = ''; $text .= '<table cellspacing="0" cellpadding="0" class="cfgtable">'; $text .= '<tr><th>Имя файла (дата-время...)</th><th>Функции</th></tr>'; foreach ($backup_files2 as $file) { $file = SafeDB($file, 255, str); $func = System::admin()->SpeedConfirm('Восстановить', ADMIN_FILE . '?exe=dbadmin&a=backup_restore&name=' . $file, 'images/admin/restore.png', 'Все текущие данные будут затёрты. Восстановить БД из резервной копии?'); $func .= System::admin()->SpeedConfirm('Удалить', ADMIN_FILE . '?exe=dbadmin&a=backup_delete&name=' . $file, 'images/admin/delete.png', 'Удалить?'); $text .= '<tr> <td><a href="' . $backup_dir . $file . '">' . $file . '</a></td> <td>' . $func . '</td> </tr>'; } if (count($backup_files2) == 0) { $text .= '<tr><td colspan="2" style="text-align: left;">Нет резервных копий.</td></tr>'; } $text .= '</table>'; $text .= '<a href="#" id="backup_button" class="button" onclick="CreateBackup(); return false;">Создать резервную копию</a>'; AddText($text);
function AdminExtensionsConfig() { System::admin()->AddSubTitle('Настройки модуля'); $name = SafeEnv($_GET['name'], 255, str); System::database()->Select('modules', "`folder`='" . $name . "'"); $mod = System::database()->FetchRow(); System::admin()->FormRow('Имя', System::admin()->Edit('name', $mod['name'], false, 'style="width:200px;" class="autofocus"')); $dir = System::config('tpl_dir') . System::config('general/site_template') . '/themes/'; if (is_dir($dir)) { $templates = GetFiles($dir, false, true, ".html"); } else { $templates = array(); } System::admin()->DataAdd($templates_data, '', 'Стандартный "theme.html"', $mod['theme'] == ''); foreach ($templates as $template) { System::admin()->DataAdd($templates_data, $template, $template, $mod['theme'] == $template); } System::admin()->FormRow('Шаблон страницы', System::admin()->Select('theme', $templates_data)); System::admin()->FormRow('Кто видит', System::admin()->Select('view', GetUserTypesFormData(SafeDB($mod['view'], 1, int)))); System::admin()->FormRow('Включить', System::admin()->Select('enabled', GetEnData((bool) $mod['enabled'], 'Да', 'Нет'))); System::admin()->AddCenterBox('Настройка модуля "' . SafeDB($mod['name'], 255, str) . '"'); System::admin()->AddForm(System::admin()->FormOpen(ADMIN_FILE . '?exe=extensions&a=mod_configsave&name=' . SafeDB($mod['folder'], 255, str)), System::admin()->Button('Отмена', 'onclick="history.go(-1)"') . System::admin()->Submit('Сохранить')); }
function ___SitemapPluginArticles($Cat, $Level) { SitemapAddObject($Level, $Cat['title'], Ufu('index.php?name=articles&cat=' . SafeDB($Cat['id'], 11, int), 'articles/{cat}')); }
function IndexForumUserTopics() { global $forum_lang; $forums_tree = ForumTree::Instance(); // Проверка данных if (isset($_GET['user'])) { $user_id = SafeEnv($_GET['user'], 11, int); $user = GetUserInfo($user_id); if ($user === false) { // Пользователь не найден System::site()->AddTextBox($forum_lang['error'], $forum_lang['error_no_user']); return; } } else { System::site()->AddTextBox($forum_lang['error'], $forum_lang['error_no_data']); // Нет параметра return; } // Параметры постраничной навигации if (isset($_GET['page'])) { $page = SafeEnv($_GET['page'], 11, int); } else { $page = 1; } $topics_on_page = System::config('forum/topics_on_page'); // Устанавливаем заголовок страницы $function_title = $forum_lang['allusertopics'] . ' "' . $user['name'] . '"'; System::site()->SetTitle(SafeDB($function_title, 255, str) . ' - ' . ($page > 1 ? $forum_lang['page'] . $page . ' - ' : '') . $forum_lang['forum']); $forum_nav_url = Ufu('index.php?name=forum&op=usertopics&user='******'forum/usertopics/{user}-{page}/', true); //$forum_url = Ufu('index.php?name=forum&op=usertopics&user='******'forum/usertopics/{user}/'); // Объекты статистики и онлайн $statistics = ForumStatistics::Instance(); $online = ForumOnline::Instance('0', '0', true); // Обновляем статус онлайн // Инициализируем статистику $statistics->Initialize($forum_lang['statistics_cat']); // Хлебные крошки System::site()->BreadCrumbAdd($function_title); $auth = System::user()->Auth; $is_admin = System::user()->isAdmin(); $current_user_id = System::user()->Get('u_id'); // Загружаем данные корзины для видимых топиков $basket = ForumBasketGetData('forum_basket_topics'); // Загружаем информацию по топикам в $topics_data и считаем статистику (кэшировать статистику) $topics_data = ForumCacheGetTopics(); // Запрашиваем данные тем (агрегированы по форумам) $topics = array(); // Сюда будем добавлять топики для вывода $resolve_cats = $forums_tree->GetAllAccessForumId(0); // Считаем только в открытых для доступа форумах foreach ($resolve_cats as $resolve_cat) { if (!isset($topics_data[$resolve_cat])) { continue; } foreach ($topics_data[$resolve_cat] as $topic) { // Отсеиваем if ($topic['starter_id'] == $user_id) { // Добавляем данные из корзины, если топик удалён в корзину $topic['status'] = ''; $topic['show_delete'] = $is_admin; if ($topic['delete'] && isset($basket[$topic['id']]) && $auth && ($is_admin || $topic['starter_id'] == $current_user_id)) { // Добавляем сообщение - "Удалено в корзину" $topic['status'] = ForumBasketRender($topic['id'], $topic['title'], $basket, false); $topic['show_delete'] = false; } elseif ($topic['delete']) { continue; // Удалён топик и корзина не показывается для этого пользователя } $statistics->hits += $topic['hits']; $statistics->AddTopicAuthor($topic['starter_id'], $topic['starter_name']); $statistics->topics_count += 1; $statistics->reply_count += $topic['posts']; $topics[] = $topic; } } } unset($topics_data); // Заголовки (Темы, Ответов, Просмотры) System::site()->AddBlock('statistik', true, false, 'stat'); System::site()->SetVars('statistik', array('count_read' => '')); // Отключаем некоторые блоки System::site()->AddBlock('topic_form', false, false, 'form'); System::site()->AddBlock('topic_right', false, false, 'topic'); System::site()->AddBlock('forum', false); System::site()->AddBlock('forum_guest_message', false); // Блоки шаблона // Ссылки, Отметить все как прочитанные и показать все не прочитанные темы. $vars_is_forum_member = array(); $vars_is_forum_member['url'] = '<a href="' . Ufu('index.php?name=forum&op=markread', 'forum/markread/') . '">' . $forum_lang['mark_all_read'] . '</a>'; $vars_is_forum_member['viewnoreadurl'] = '<a href="' . Ufu('index.php?name=forum&op=viewnoread', 'forum/viewnoread/') . '">' . $forum_lang['viewnoread'] . '</a>'; $vars_is_forum_member['forum_id'] = '0'; if (!System::site()->HasBlock('is_forum_member')) { System::site()->AddBlock('is_forum_member', AccessIsResolved(2), false, 'mark'); } System::site()->SetVars('is_forum_member', $vars_is_forum_member); // Последние темы форума System::site()->AddBlock('old', true, false, 'mark'); $vars_old = array(); $vars_old['lasttopics'] = '<a href="' . Ufu('index.php?name=forum&op=lasttopics', 'forum/lasttopics/') . '">' . $forum_lang['lasttopics'] . '</a>'; System::site()->SetVars('old', $vars_old); // Блок списка топиков System::site()->AddBlock('topics', true, true, 'topic'); // Инициализируем постраничную навигацию $navigation = new Navigation($page); $navigation->FrendlyUrl = System::config('general/ufu'); // Выводим топики в шаблон if (count($topics) == 0) { // В этом форуме пока нет ни одной темы System::site()->AddBlock('no_topics', true); $navigation->DisableNavigation(); } else { // Вывод постраничной навигации $navigation->GenNavigationMenu($topics, $topics_on_page, $forum_nav_url); // Загружаем данные о прочтении тем $read_data = Forum_Marker_GetReadData(); $visable_topics = false; // Вывод тем из этой категории с постраничной навигацией foreach ($topics as $topic) { $forum_config = $forums_tree->GetForumConfigRecursive($topic['forum_id']); // Конфигурация просматриваемого форума // Статус прочитано $read = true; // прочитано if ($auth && (!isset($read_data[$topic['id']]) || $topic['last_post'] > $read_data[$topic['id']]['date'])) { $read = false; } $topic = ForumTopicFilterData($topic); // Фильтрация данных топика $topic['on'] = !$read; $topic['off'] = $read; if (!$topic['close']) { $topic['close'] = $forum_config['close']; $topic['begin'] = !$forum_config['close']; } $topic['page'] = $page; $visable_topics = true; System::site()->AddSubBlock('topics', true, $topic); } System::site()->AddBlock('no_topics', !$visable_topics); } // Блоки модерации ModerationForumTopicsBlocks(); // Подключаем шаблон System::site()->AddTemplatedBox('', 'module/forum_topics.html'); // Выводм блок онлайн $online->Render('0', '0', $forum_lang['all_online'], 'forum_topics_online'); // Выводим статистику $statistics->Render('forum_topics_statistics'); // Выбор периода и быстрый переход ForumQuickTransitionBox(0, $forum_lang['quick_transition']); }
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); }
*/ /* * Плагин вывода карты страниц * Автор: Мартин */ if (!defined('VALID_RUN')) { header("HTTP/1.1 404 Not Found"); exit; } global $pages, $pages_tree; $pages = array(); $pages_db = System::database()->Select('pages', "`enabled` = '1' and `view` = '4'", null, 'order'); foreach ($pages_db as $p) { $link = false; if ($p['type'] == 'page') { $link = Ufu('index.php?name=pages&file=' . SafeDB($p['link'], 255, str), 'pages:page'); } // elseif($p['type'] == 'link'){ // $link = SafeDB($p['text'], 255, str); // if(substr($link, 0, 6) == 'mod://'){ // $link = Ufu('index.php?name='.substr($link, 6), '{name}/'); // } // } $p['link'] = $link; $pages[] = $p; } function ___SitemapPagesPlugin($Page, $Level) { global $pages_tree; if ($Page['type'] != 'page') { $child_ids = $pages_tree->GetAllChildId($Page['id']);
<?php /* * LinkorCMS 1.4 * © 2012 LinkorCMS Development Group */ if (!defined('VALID_RUN')) { header("HTTP/1.1 404 Not Found"); exit; } $topic_id = 0; if ($a == 'edit') { $topic_id = SafeDB($block_config, 11, int); } System::database()->Select('mail_topics', ''); $topicdata = array(); while ($topic = System::database()->FetchRow()) { System::admin()->DataAdd($topicdata, $topic['id'], $topic['title'], $topic['id'] == $topic_id); } FormRow('Тема рассылки', System::admin()->Select('topic', $topicdata, false, '')); $title = 'Настройка блока рассылки';
function IndexPollsVoice() { if (!isset($_GET['poll_id'])) { GoBack(); } if (!isset($_POST['voice'])) { System::site()->AddTextBox('', '<p align="center">Вы не выбрали ни одного варианта ответа.</p>'); } else { $pid = SafeEnv($_GET['poll_id'], 11, int); System::database()->Select('polls', GetWhereByAccess('view', "`id`='{$pid}' and `active`='1'")); if (System::database()->NumRows() == 0) { GoBack(); } $poll = System::database()->FetchRow(); $answers = unserialize($poll['answers']); $multianswers = SafeDB($poll['multianswers'], 1, int); $voice = SafeEnv($_POST['voice'], 11, int); if (!$multianswers) { $voice = $voice[0]; } //Проверяем, учавствовал ли данный пользователь в этом опросе $ip = getip(); if (System::user()->Auth) { $uid = System::user()->Get('u_id'); } else { $uid = -1; } System::database()->Select('polls_voices', "`poll_id`='{$pid}' and (`user_ip`='{$ip}' or `user_id`='{$uid}')"); if (System::database()->NumRows() == 0) { if (!$multianswers) { if (isset($answers[$voice])) { $answers[$voice][2] = $answers[$voice][2] + 1; $answers = serialize($answers); System::database()->Update('polls', "answers='{$answers}'", "`id`='{$pid}'"); } else { GoBack(); } } else { $c = count($voice); for ($i = 0; $i < $c; $i++) { if (isset($answers[$voice[$i]])) { $answers[$voice[$i]][2] = $answers[$voice[$i]][2] + 1; } else { GoBack(); } } $answers = serialize($answers); System::database()->Update('polls', "answers='{$answers}'", "`id`='{$pid}'"); } $voice = serialize($voice); if (System::user()->Auth) { $user_id = System::user()->Get('u_id'); } else { $user_id = 0; } System::database()->Insert('polls_voices', "'','{$pid}','" . getip() . "','{$voice}','{$user_id}'"); System::user()->ChargePoints(System::config('points/polls_answer')); GoBack(); } else { System::site()->AddTextBox('', '<p align="center">Извините, Вы уже принимали участие в этом опросе.</p>'); } } }
/** * Обработчик ошибок. * @param $No * @param $Error * @param $File * @param $Line * @return void */ function ErrorHandler($No, $Error, $File, $Line = -1) { global $SITE_ERRORS; if (!$SITE_ERRORS) { return; } $root = GetSiteRoot(); $errortype = array(1 => 'Ошибка', 2 => 'Предупреждение!', 4 => 'Ошибка разборщика', 8 => 'Замечание', 16 => 'Ошибка ядра', 32 => 'Предупреждение ядра!', 64 => 'Ошибка компиляции', 128 => 'Предупреждение компиляции!', 256 => 'Пользовательская Ошибка', 512 => 'Пользовательскаое Предупреждение!', 1024 => 'Пользовательскаое Замечание', 2048 => 'Небольшое замечание', 4096 => 'Улавливаемая ошибка', 8192 => 'Устаревший код', 16384 => 'Устаревший код (пользовательская)'); /* * Генерируем HTML код ошибки. Внешний вид ошибки можно задать через css классы. */ $ErrorId = count(System::$Errors); $ErrorHtml = '<div class="debug_error_container" id="debug_error_' . $ErrorId . '" data-id="' . $ErrorId . '">'; $ErrorHtml .= '<span class="debug_error"><span class="debug_error_type debug_error_type_' . $No . '">' . $errortype[$No] . '</span>: ' . '<span class="debug_error_text">"' . SafeDB($Error, 255, str) . '"</span> в <span class="debug_error_file">' . SafeDB(str_replace($root, '', $File), 255, str) . '</span>' . ($Line > -1 ? ' на линии <span class="debug_error_line">' . $Line . '</span>' : '') . '.</span>'; /* * Выводим стэк вызовов */ $trace = array_reverse(debug_backtrace()); array_pop($trace); $ErrorHtml .= "\n" . '<div class="debug_backtrace_container" id="debug_backtrace_' . $ErrorId . '">'; foreach ($trace as $i => $t) { $ErrorHtml .= $i + 1 . '. '; if (isset($t['class'])) { $ErrorHtml .= '<span class="debug_backtrace_class">' . $t['class'] . '</span>::'; } if (isset($t['function'])) { $ErrorHtml .= '<span class="debug_backtrace_function">' . SafeDB($t['function'], 255, str) . '</span>'; } if (isset($t['args']) && count($t['args'])) { $ErrorHtml .= '('; foreach ($t['args'] as $a) { if (is_array($a)) { $a = 'Array'; } elseif (is_object($a)) { $a = 'Object'; } elseif (is_bool($a)) { $a = $a ? 'true' : 'false'; } $ErrorHtml .= '<span class="debug_backtrace_arg">' . SafeDB((string) $a, 100, str) . '</span>, '; } $ErrorHtml = substr($ErrorHtml, 0, -2) . ')'; } if (isset($t['file'])) { $ErrorHtml .= ' <span class="debug_backtrace_path">[' . SafeDB(str_replace($root, '', $t['file']), 255, str) . (isset($t['line']) ? ':' . $t['line'] : '') . ']</span>'; } $ErrorHtml .= "<br>\n"; } $ErrorHtml = substr($ErrorHtml, 0, -5) . ';'; $ErrorHtml .= '</div></div>'; /* * Добавляем ошибку в массив ошибок. */ System::$Errors[] = $ErrorHtml; }
header("HTTP/1.1 404 Not Found"); exit; } $table = SafeEnv($_GET['name'], 255, str); $columns = System::database()->GetTableColumns($table); $back = ''; if (isset($_REQUEST['back'])) { $back = '&back=' . SafeDB($_REQUEST['back'], 255, str); } $edit = false; $where = ''; $where_url = ''; if ($action == 'editfield') { if (isset($_GET['where'])) { $where = $_GET['where']; $where_url = '&where=' . SafeDB($_GET['where'], 255, str); } $edit = true; $index = SafeEnv($_GET['index'], 255, int); $rows = System::database()->Select($table, $where); $row = $rows[$index]; } $i = 0; foreach ($columns as $col) { if ($edit) { $val = HtmlChars($row[$columns[$i]['name']]); $cap = 'Сохранить'; $title = 'Редактирование записи'; } else { $val = ''; $cap = 'Добавить';