/** * Загружает информацию об установленных подключаемых плагинах из базы данных и возвращает результат. * Кэшируется. * @return array */ function PluginsGetInstalled() { static $plugins = null; if (System::cache()->HasCache(system_cache, 'plugins')) { $plugins = System::cache()->Get(system_cache, 'plugins'); } if (!isset($plugins)) { $plugins = System::database()->Select('plugins', "(`type`='5' or `type`='7') and `enabled`='1'"); System::cache()->Write(system_cache, 'plugins', $plugins, Day2Sec); } return $plugins; }
/** * Возвращает правило замены. * @param string $Ufu * @param bool $Clear * @return array */ function &UfuGetRules($Ufu = null, $Clear = false) { static $UfuRewriteRules = null; if ($Clear) { $UfuRewriteRules = null; System::cache()->Delete(system_cache, 'rewrite_rules'); return $UfuRewriteRules; } if ($UfuRewriteRules == null) { if (System::cache()->HasCache(system_cache, 'rewrite_rules')) { $UfuRewriteRules = System::cache()->Get(system_cache, 'rewrite_rules'); } else { $UfuRewriteRules = array(); $_rules = System::database()->Select('rewrite_rules'); SortArray($_rules, 'order'); foreach ($_rules as $_rule) { $rule = array('ufu' => $_rule['ufu'], 'pattern' => $_rule['pattern'], 'params' => $_rule['params']); if ($_rule['module'] != '' && $_rule['name'] != '') { $UfuRewriteRules[$_rule['module'] . ':' . $_rule['name']] = $rule; } else { $UfuRewriteRules[$_rule['ufu']] = $rule; } } System::cache()->Write(system_cache, 'rewrite_rules', $UfuRewriteRules, Day2Sec); } } if (isset($Ufu)) { if (isset($UfuRewriteRules[$Ufu])) { return $UfuRewriteRules[$Ufu]; } else { $null = null; return $null; } } return $UfuRewriteRules; }
/** * Очистка кэша страниц и меню * @return void */ function AdminPagesClearCache() { System::cache()->Delete('block', array('menu1', 'menu2', 'menu3', 'menu4')); System::cache()->Delete('tree', 'pages'); // Нестандартное дерево, используем апи при построении но не используем его при редактировании }
function AdminExtensionsUninstall() { global $db, $config, $user; // Для старых модулей $ext_type = $_GET['type']; $folder = $_GET['name']; if (isset($_GET['group'])) { $group = $_GET['group']; } switch ($ext_type) { case EXT_MODULE: $mod_path = RealPath2(System::config('mod_dir') . $folder); $info = ExtLoadInfo($mod_path); if (isset($_POST['ok']) || isset($info['1.3'])) { $uninstall = $mod_path . '/uninstall.php'; if (file_exists($uninstall)) { $delete_tables = isset($_POST['delete_tables']); // Могут быть использованы в uninstall.php $delete_files = isset($_POST['delete_files']); include $uninstall; System::cache()->Clear('config'); if (isset($info['1.3'])) { // Удаляем пункт меню $folder = SafeEnv($folder, 255, str); AdminMenuDeleteModule($folder); } } Audit('Расширения: Удаление модуля "' . $folder . '"'); GO(ADMIN_FILE . '?exe=extensions#tabs-1'); } else { $folder = SafeEnv($folder, 255, str); System::database()->Select('modules', "`folder`='{$folder}'"); if (System::database()->NumRows() == 0) { AddTextBox('Ошибка', 'Модуль не установлен.'); return; } $mod = System::database()->FetchRow(); $name = SafeDB($mod['name'], 255, str); $text = ''; $text .= '<form method="post">'; $text .= '<div style="padding: 10px 0 10px 25px;">'; $text .= '<div style="padding-bottom: 10px">'; $text .= '<label><input type="checkbox" name="delete_tables"> Удалить таблицы БД</label><br>'; $text .= '<label><input type="checkbox" name="delete_files"> Удалить файлы модуля</label>'; $text .= '</div>'; $text .= System::admin()->Hidden('ok', '1'); $text .= '<div>' . System::admin()->Button('Отмена', 'onclick="history.go(-1)"') . System::admin()->Submit('Удалить') . '</div>'; $text .= '</div></form>'; AddTextBox('Удаление модуля "' . $name . '"', $text); } break; case EXT_BLOCK: $mod_path = RealPath2(System::config('blocks_dir') . $folder); if (isset($_POST['ok'])) { $uninstall = $mod_path . '/uninstall.php'; if (file_exists($uninstall)) { $delete_tables = isset($_POST['delete_tables']); $delete_files = isset($_POST['delete_files']); include $uninstall; System::cache()->Clear('config'); } Audit('Удаление блока "' . $folder . '"'); GO(ADMIN_FILE . '?exe=extensions#tabs-2'); } else { $folder = SafeEnv($folder, 255, str); System::database()->Select('block_types', "`folder`='{$folder}'"); if (System::database()->NumRows() == 0) { AddTextBox('Ошибка', 'Блок не установлен.'); return; } $mod = System::database()->FetchRow(); $name = SafeDB($mod['name'], 255, str); $text = ''; $text .= '<form method="post">'; $text .= '<div style="padding: 10px 0 10px 25px;">'; $text .= '<div style="padding-bottom: 10px">'; $text .= '<label><input type="checkbox" name="delete_tables"> Удалить таблицы БД</label><br>'; $text .= '<label><input type="checkbox" name="delete_files"> Удалить файлы</label>'; $text .= '</div>'; $text .= System::admin()->Hidden('ok', '1'); $text .= '<div>' . System::admin()->Button('Отмена', 'onclick="history.go(-1)"') . System::admin()->Submit('Удалить') . '</div>'; $text .= '</div></form>'; AddTextBox('Удаление блока "' . $name . '"', $text); } break; case EXT_PLUGIN: if (isset($_GET['group'])) { $group = $_GET['group'] . '/'; $groupenv = SafeEnv($_GET['group'], 255, str); } else { $group = ''; $groupenv = ''; } $mod_path = RealPath2(System::config('plug_dir') . $group . $folder); $info = ExtLoadInfo($mod_path); if (isset($_POST['ok']) || isset($info['1.3'])) { $uninstall = $mod_path . '/uninstall.php'; if (file_exists($uninstall)) { $delete_tables = isset($_POST['delete_tables']); $delete_files = isset($_POST['delete_files']); include $uninstall; System::cache()->Clear('config'); // FIXME: plugin config } if (isset($info['1.3'])) { $folder = SafeEnv($folder, 255, str); System::database()->Delete('plugins', "`name`='{$folder}' and `group`='{$groupenv}'"); } PluginsClearCache(); Audit('Расширения: Удаление плагина "' . $folder . '"'); GO(ADMIN_FILE . '?exe=extensions#tabs-3'); } else { $folder = SafeEnv($folder, 255, str); System::database()->Select('plugins', "`name`='{$folder}' and `group`='{$groupenv}'"); if (System::database()->NumRows() == 0) { AddTextBox('Ошибка', 'Плагин не установлен.'); return; } $mod = System::database()->FetchRow(); $name = SafeDB($info['name'], 255, str); $text = ''; $text .= '<form method="post">'; $text .= '<div style="padding: 10px 0 10px 25px;">'; $text .= '<div style="padding-bottom: 10px">'; $text .= '<label><input type="checkbox" name="delete_tables"> Удалить таблицы БД</label><br>'; $text .= '<label><input type="checkbox" name="delete_files"> Удалить файлы</label>'; $text .= '</div>'; $text .= System::admin()->Hidden('ok', '1'); $text .= '<div>' . System::admin()->Button('Отмена', 'onclick="history.go(-1)"') . System::admin()->Submit('Удалить') . '</div>'; $text .= '</div></form>'; AddTextBox('Удаление плагина "' . $name . '"', $text); } break; case EXT_TEMPLATE: $mod_path = RealPath2(System::config('tpl_dir') . $folder); if (isset($_POST['ok'])) { ExtRemoveTemplate($folder, isset($_POST['delete_files'])); Audit('Расширения: Удаление шаблона "' . $folder . '"'); GO(ADMIN_FILE . '?exe=extensions#tabs-4'); } else { $info = ExtLoadInfo($mod_path); if ($info === false) { $info = array('name' => $folder, 'description' => '', 'author' => '', 'site' => '', 'version' => '1.0', 'admin' => false); } $name = SafeDB($info['name'], 255, str); $text = ''; $text .= '<form method="post">'; $text .= '<div style="padding: 10px 0 10px 25px;">'; $text .= '<div style="padding-bottom: 10px">'; $text .= '<label><input type="checkbox" name="delete_files"> Удалить файлы</label>'; $text .= '</div>'; $text .= System::admin()->Hidden('ok', '1'); $text .= '<div>' . System::admin()->Button('Отмена', 'onclick="history.go(-1)"') . System::admin()->Submit('Удалить') . '</div>'; $text .= '</div></form>'; AddTextBox('Удаление шаблона "' . $name . '"', $text); } break; } }
<?php /* * LinkorCMS 1.4 * © 2012 LinkorCMS Development Group */ if (!defined('VALID_RUN')) { header("HTTP/1.1 404 Not Found"); exit; } $bconf['count'] = SafeEnv($_POST['count'], 11, int); $bconf['cats'] = SafeEnv($_POST['cats'], 11, int); $block_config = serialize($bconf); System::cache()->Delete('block', array('random_images1', 'random_images2', 'random_images3', 'random_images4'));
function AdminsDeleteGroup() { if (!isset($_GET['id'])) { GO(ADMIN_FILE . '?exe=admins&a=groups'); exit; } $id = SafeEnv($_GET['id'], 11, int); if (isset($_GET['ok']) && SafeEnv($_GET['ok'], 1, int) == '1') { // Очищаем кэш if (System::cache()->HasCache(system_cache, 'usertypes')) { System::cache()->Delete(system_cache, 'usertypes'); } System::database()->Select('users', "`access`='" . $id . "'"); $num_users = System::database()->NumRows(); System::database()->Select('usertypes', "`id`='{$id}'"); $group = System::database()->FetchRow(); if ($num_users > 0) { if (!isset($_GET['users'])) { $text = 'К этой группе принадлежат ' . $num_users . ' пользователей. Вы можете:<br />' . '<a href="' . ADMIN_FILE . '?exe=admins&a=delgroup&id=' . $id . '&ok=1&users=del">Удалить их...</a> <br />' . '<a href="' . ADMIN_FILE . '?exe=admins&a=delgroup&id=' . SafeEnv($_GET['id'], 11, int) . '&ok=1&users=move">Переместить их в другую группу.</a>'; AddTextBox('Внимание!', $text); } else { if ($_GET['users'] == 'del') { System::database()->Delete('users', "`access`='" . $id . "'"); } elseif ($_GET['users'] == 'move' && !isset($_POST['to'])) { $text = 'Выберите группу, в которую Вы желаете переместить пользователей:<br />' . '<form action="' . ADMIN_FILE . '?exe=admins&a=delgroup&id=' . $id . '&ok=1&users=move" method="post">'; System::database()->Select('usertypes', "`id`<>'" . $id . "'"); System::site()->DataAdd($group_data, '-1', 'Пользователи'); while ($tp = System::database()->FetchRow()) { System::site()->DataAdd($group_data, $tp['id'], $tp['name']); } $text .= System::site()->Select('to', $group_data) . '<br />'; $text .= System::site()->Submit('Продолжить') . '<br />'; $text .= '</form>'; AddTextBox('Внимание!', $text); return; } elseif ($_GET['users'] == 'move' && isset($_POST['to'])) { $to = SafeEnv($_POST['to'], 11, int); if ($to == '-1') { $set = "type='2',access='" . $to . "'"; } else { $set = "access='" . $to . "'"; } System::database()->Update('users', $set, "`access`='" . $id . "'"); } } } System::database()->Delete('usertypes', "`id`='" . $id . "'"); Audit('Администраторы: Удаление группы администраторов "' . $group['name'] . '"'); GO(ADMIN_FILE . '?exe=admins&a=groups'); } else { System::database()->Select('usertypes', "`id`='" . $id . "'"); $group = System::database()->FetchRow(); $text = 'Вы действительно хотите удалить группу "' . SafeDB($group['name'], 255, str) . '"?<br />' . '<a href="' . ADMIN_FILE . '?exe=admins&a=delgroup&id=' . $id . '&ok=1">Да</a> <a href="javascript:history.go(-1)">Нет</a>'; AddTextBox("Предупреждение", $text); } }
function AdminGalleryMove() { global $edit_images; if (!$edit_images) { System::admin()->AccessDenied(); } $move = SafeEnv($_GET['to'], 4, str); // up, down $id = SafeEnv($_GET['id'], 11, int); System::database()->Select('gallery', "`id`='{$id}'"); if (System::database()->NumRows() > 0) { $img = System::database()->FetchRow(); $pid = SafeDB($img['cat_id'], 11, int); $images = System::database()->Select('gallery', "`cat_id`='{$pid}'"); SortArray($images, 'order'); $c = count($images); //Исходный индекс $cur_order = 0; for ($i = 0; $i < $c; $i++) { $images[$i]['order'] = $i; if ($images[$i]['id'] == $id) { $cur_order = $i; } } //Индекс перемещения if ($move == 'up') { $rep_order = $cur_order - 1; } elseif ($move == 'down') { $rep_order = $cur_order + 1; } else { $rep_order = $cur_order; } if ($rep_order < 0 || $rep_order >= $c) { $rep_order = $cur_order; } $temp = intval($images[$cur_order]['order']); $images[$cur_order]['order'] = intval($images[$rep_order]['order']); $images[$rep_order]['order'] = intval($temp); for ($i = 0; $i < $c; $i++) { $order = $images[$i]['order']; $id = $images[$i]['id']; System::database()->Update('gallery', "`order`='{$order}'", "`id`='{$id}'"); } Audit('Фотогалерея: Перемещение изображения "' . $img['title'] . '" (id: ' . $img['id'] . ')'); } System::cache()->Delete('tree', 'gallery'); $cat = isset($_GET['cat']) ? '&cat=' . SafeEnv($_GET['cat'], 11, int) : ''; $page = isset($_GET['page']) ? '&page=' . SafeEnv($_GET['cat'], 11, int) : ''; GO(ADMIN_FILE . '?exe=gallery' . $cat . $page); }
function AdminUserDeleteRank() { $rank_id = SafeEnv($_GET['id'], 11, int); System::database()->Select('userranks', "`id`='{$rank_id}'"); $rank = System::database()->FetchRow(); System::database()->Delete('userranks', "`id`='{$rank_id}'"); System::cache()->Delete(system_cache, 'userranks'); Audit('Пользователи: Удаление ранга "' . $rank['title'] . '"'); GO(ADMIN_FILE . '?exe=user&a=ranks'); }
function AdminMailDeleteTopic() { $id = SafeEnv($_GET['id'], 11, int); System::database()->Select('mail_topics', "`id`='{$id}'"); $topic = System::database()->FetchRow(); System::database()->Delete('mail_topics', "`id`='{$id}'"); System::database()->Delete('mail_list', "`topic_id`='{$id}'"); System::database()->Delete('mail_history', "`topic_id`='{$id}'"); Audit('Рассылки: Удаление рассылки "' . $topic['title'] . '"'); System::cache()->Delete('block', 'mail'); GO(ADMIN_FILE . '?exe=mail'); }
header("HTTP/1.1 404 Not Found"); exit; } if (System::cache()->HasCache('block', 'mail')) { $tempvars['content'] = 'block/content/mail.html'; $vars = System::cache()->Get('block', 'mail'); } else { $topic_id = SafeDB($block_config, 11, int); System::database()->Select('mail_topics', "`id`='{$topic_id}'"); if (System::database()->NumRows() > 0) { $topic = System::database()->FetchRow(); $tempvars['content'] = 'block/content/mail.html'; $vars['title'] = $title; $vars['form_action'] = Ufu('index.php?name=mail&op=subscribe', 'mail/{op}/'); $vars['topic_id'] = $topic['id']; $vars['lmail_title'] = 'Подписаться на рассылку '; $vars['mail_title'] = $topic['title']; $vars['lemail'] = 'Ваш e-mail'; $vars['lsubmit'] = 'Подписаться'; $vars['lother'] = 'Другие рассылки'; $vars['lformat'] = 'Формат'; $vars['lhtml'] = 'HTML'; $vars['ltext'] = 'Текст'; System::cache()->Write('block', 'mail', $vars); } elseif (System::user()->Auth && System::user()->isAdmin()) { $vars['title'] = $title; $vars['content'] = '<p align="center"><span style="color: #FF0000">Тема рассылки для блока не найдена. Пожалуйста выберите новую тему для блока.</span></p>'; } else { $enabled = false; } }
} elseif ($page['type'] == 'link') { $link = SafeDB($page['text'], 255, str); if (substr($link, 0, 6) == 'mod://') { $link = Ufu('index.php?name=' . substr($link, 6), 'system:mod'); } } $link = str_replace('&', '&', $link); $item_vars = array('title' => $page['title'], 'link' => $link, 'selected' => false, 'subitems' => false); if (isset($catsPid[$page['id']])) { foreach ($catsPid[$page['id']] as $subpage) { if ($subpage['type'] == 'page') { $link = Ufu('index.php?name=pages&file=' . SafeDB($subpage['link'], 255, str), 'pages:page'); } elseif ($subpage['type'] == 'link') { $link = SafeDB($subpage['text'], 255, str); if (substr($link, 0, 6) == 'mod://') { $link = Ufu('index.php?name=' . substr($link, 6), 'system:mod'); } } else { continue; } $link = str_replace('&', '&', $link); $subitem_vars = array('title' => $subpage['title'], 'link' => $link, 'selected' => false); $subitems['sub'][] = Starkyt::CreateSubBlock(true, $subitem_vars); } } $item_vars['subitems'] = count($subitems['sub']) > 0; $items['sub'][] = Starkyt::CreateSubBlock(true, $item_vars, array(), '', '', array('block_menu_subitems' => $subitems)); } System::cache()->Write('block', $bcache_name, $items); BlockMenuSelectItem($items, $uri); $childs['block_menu_items'] = $items;
/** * Добавляет новую настройку. * @param string $Group Идентификатор группы настроек. * @param string $Name Имя (для доступа из кода). * @param string $Title Заголовок. * @param string $Value Начальное значение. * @param string $Description Описание. * @param bool $Visible Видимая. * @param string $KindControl Элемент управления для изменения значения. * @param string $Type Тип данных (длина(255),тип(string - PHP Type),вырезать теги(true, false)). * @param string $Values Заполнение значений для элементов выбора. (optval:title,optval:title) или функция (function:Callback), см. плагины форм. * @param string $SaveHandler Имя функции вызываемой при сохранении параметра. См. плагины форм. * @param bool $Autoload Загружать в $config. * @param string $Table * @param string $GroupsTable */ function AddConfig($Group, $Name, $Title, $Value, $Description = '', $Visible = false, $KindControl = '', $Type = '255,string,false', $Values = '', $SaveHandler = '', $Autoload = true, $Table = 'config', $GroupsTable = 'config_groups') { if (!is_numeric($Group)) { $groups = GetConfigGroups($GroupsTable); $Group = SafeEnv($groups[$Group]['id'], 11, int); } if ($Visible) { $Visible = '1'; } else { $Visible = '0'; } if ($Autoload) { $Autoload = '1'; } else { $Autoload = '0'; } $Name = SafeEnv($Name, 255, str); $Value = SafeEnv($Value, 0, str); $Title = SafeEnv($Title, 255, str); $Description = SafeEnv($Description, 255, str); $Values = SafeEnv($Values, 255, str); System::database()->Insert($Table, "'','{$Group}','{$Name}','{$Value}','{$Visible}','{$Title}','{$Description}','{$KindControl}','{$Values}','{$SaveHandler}','{$Type}','{$Autoload}'"); System::cache()->Clear('config'); }
/** * Увеличивает индекс количества субкаталогов в каталоге * используя параметры и указанные настройки класса * * @param int $id Идентификатор объекта * @param int $inc Значение инкремента * @return void */ public function CalcCatCounter($id, $inc) { $cat = System::database()->SelectOne($this->Table, "`" . $this->IdKey . "`='{$id}'"); if ($cat) { if ($inc === true) { $counter_val = $cat[$this->CatCounterKey] + 1; } elseif ($inc === false) { $counter_val = $cat[$this->CatCounterKey] - 1; } else { $counter_val = $cat[$this->CatCounterKey] + intval($inc); } System::database()->Update($this->Table, $this->CatCounterKey . "='{$counter_val}'", "`" . $this->IdKey . "`='{$id}'"); // Очищаем кеш System::cache()->Delete('tree', $this->Table); } }
function saveconf_Clear_Cache($Value) { System::cache()->ClearAll(); return $Value; }
function AdminCacheCleanup() { System::cache()->ClearAll(); Audit('Управление кэшем: Полная очистка кэша'); AdminCacheMain(); }
require_once "config/config.php"; $data = new Data(); $uri = new Uri(); $system = new System(); if (USE_DATABASE) { $db = new dbHandler(); } if ($uri->size() != 0) { $controllerName = $uri->getParam(1); } else { $controllerName = DEFAULT_CONTROLLER; } if (USE_CACHE) { $system->load()->cacheFile('cache'); if ($system->cache()->mustRecache($uri->fullUri()) || !file_exists($system->cache()->getFullPath($uri->fullUri()))) { ob_start(); loadPage(); file_put_contents($system->cache()->getFullPath($uri->fullUri()), ob_get_contents(), FILE_BINARY); $system->cache()->cached($uri->fullUri()); $system->cache()->save(); ob_end_flush(); } else { include $system->cache()->getFullPath($uri->fullUri()); } } else { loadPage(); } //----------------------------------- function loadPage() {
function ForumCacheClear() { System::cache()->Clear('forum'); }
function IndexUserRegistrationOk() { System::site()->SetTitle('Регистрация на сайте'); if (isset($_POST['usersave']) && $_POST['usersave'] == 'update') { $edit = true; $user_id = System::user()->Get('u_id'); System::database()->Select('users', "`id`='" . $user_id . "'"); $user = System::database()->FetchRow(); } else { $edit = false; } if (!$edit) { System::user()->UnLogin(false); } else { if (!System::user()->Auth) { GO(Ufu('index.php')); } } if (System::config('user/registration') == 'off' && !$edit) { System::site()->AddTextBox('Ошибка', '<p align="center">Извините, регистрация временно приостановлена.</p>'); return; } //Обрабатываем данные $errors = array(); // Логин $login = ''; $sendlogin = ''; if (isset($_POST['login']) && CheckLogin(SafeEnv($_POST['login'], 30, str), $errors, true, $edit ? $user_id : 0)) { $login = SafeEnv($_POST['login'], 30, str); $sendlogin = $_POST['login']; } // Пароль $pass = ''; $sendpass = ''; $pass_generate_message = ''; if (!System::user()->isAdmin() && $_POST['pass'] != '') { $pass = SafeEnv($_POST['pass'], 255, str); $rpass = SafeEnv($_POST['rpass'], 255, str); $sendpass = $_POST['pass']; if ($edit) { if ($rpass != '') { if (!CheckPass(SafeEnv($_POST['pass'], 255, str), $errors)) { $pass = ''; } elseif ($rpass != $pass) { $errors[] = 'Пароли не совпадают.'; $pass = ''; } } else { $pass = ''; } } else { if ($_POST['pass'] == '') { srand(time()); $pass = GenBPass(rand(System::config('user/pass_min_length'), 15)); $sendpass = $pass; $pass_generate_message = '<br>Так как Вы не указали пароль, он был сгенерирован автоматически и выслан Вам на E-mail.'; } else { if (CheckPass(SafeEnv($_POST['pass'], 255, str), $errors)) { if ($rpass != $pass) { $errors[] = 'Пароли не совпадают.'; } } } } $pass2 = md5($pass); } // E-mail if (!System::user()->isAdmin() && isset($_POST['email']) && CheckUserEmail(SafeEnv($_POST['email'], 50, str, true), $errors, true, $edit ? $user_id : 0)) { $email = SafeEnv($_POST['email'], 50, str, true); } else { $email = ''; } // Скрыть E-mail if (isset($_POST['hideemail'])) { $hide_email = '1'; } else { $hide_email = '0'; } // Имя пользователя if (isset($_POST['nikname']) && CheckNikname(SafeEnv($_POST['nikname'], 50, str, true), $errors, true, $edit ? $user_id : 0)) { $nik_name = SafeEnv($_POST['nikname'], 50, str, true); } else { $nik_name = ''; } // Настоящее имя if (isset($_POST['realname'])) { $real_name = SafeEnv($_POST['realname'], 250, str, true); } else { $real_name = ''; } // Возраст лет if (isset($_POST['age'])) { if ($_POST['age'] == '' || is_numeric($_POST['age'])) { $age = SafeEnv($_POST['age'], 3, int); } else { $errors[] = 'Ваш возраст должен быть числом!'; } } else { $age = ''; } // Адрес домашней страницы if (isset($_POST['homepage'])) { $homepage = SafeEnv(Url($_POST['homepage']), 250, str, true); } else { $homepage = ''; } // Номер ICQ if (isset($_POST['icq'])) { if ($_POST['icq'] == '' || is_numeric($_POST['icq'])) { $icq = SafeEnv($_POST['icq'], 15, str, true); } else { $errors[] = 'Номер ICQ должен содержать только числа!'; } } else { $icq = ''; } // Город if (isset($_POST['city'])) { $city = SafeEnv($_POST['city'], 100, str, true); } else { $city = ''; } // Часовой пояс if (isset($_POST['gmt'])) { $gmt = SafeEnv($_POST['gmt'], 255, str); } else { $gmt = System::config('general/default_timezone'); } // О себе if (isset($_POST['about'])) { $about = SafeEnv($_POST['about'], System::config('user/about_max_length'), str, true); } else { $about = ''; } // Подписка на рассылку if (isset($_POST['snews'])) { $server_news = '1'; } else { $server_news = '0'; } if (!$edit && (!System::user()->Auth && !System::user()->isDef('captcha_keystring') || System::user()->Get('captcha_keystring') != $_POST['keystr'])) { $errors[] = 'Вы ошиблись при вводе кода с картинки.'; } // Аватар $updateAvatar = true; if (isset($_POST['avatar'])) { if (System::config('user/avatar_transfer') == '1' && isset($_FILES['upavatar']) && file_exists($_FILES['upavatar']['tmp_name'])) { UserLoadAvatar($errors, $avatar, $a_personal, $user['avatar'], $user['a_personal'] == '1', $edit); } elseif ($_POST['avatar'] == '') { $updateAvatar = false; } elseif (file_exists(RealPath2(System::config('general/avatars_dir') . $_POST['avatar']))) { if ($edit) { if ($user['a_personal'] == '1') { UnlinkUserAvatarFiles($user['avatar']); } } $a_personal = '0'; $avatar = $_POST['avatar']; } else { $avatar = 'noavatar.gif'; $a_personal = '0'; } } else { $avatar = 'noavatar.gif'; $a_personal = '0'; } // Активация аккаунта $active = '1'; $code = ''; $SendActivation = false; $activate = ''; if (!$edit) { $activate = System::config('user/activate_type'); switch ($activate) { case 'manual': $active = '0'; $code = ''; $SendActivation = false; break; case 'auto': $active = '1'; $code = ''; $SendActivation = false; break; case 'mail': $active = '0'; $code = GenRandomString(32); $SendActivation = true; break; } } $status = 2; $access = -1; $reg_date = time(); $last_visit = time(); $ip = getip(); $points = 0; $visits = 0; // Сохранение if (count($errors) == 0) { if ($SendActivation) { UserSendActivationMail($nik_name, $email, $sendlogin, $sendpass, $code, $reg_date); $finish_message = Indent(' <br> На указанный Вами E-Mail отправлено письмо, содержащее ссылку для подтверждения регистрации. Для активации Вашего аккаунта перейдите по данной ссылке и подтвердите регистрацию! '); } elseif (!$edit) { UserSendEndRegMail($email, $nik_name, $sendlogin, $sendpass, $reg_date); $finish_message = '<br>На ваш E-mail отправлено письмо с данными о регистрации.'; } if (!$edit) { // Добавление нового пользователя $values = Values('', $login, $pass2, $nik_name, $real_name, $age, $email, $hide_email, $city, $icq, $homepage, $gmt, $avatar, $about, $server_news, $reg_date, $last_visit, $ip, $points, $visits, $active, $code, $status, $access, $a_personal, serialize(array())); System::database()->Insert('users', $values); // Очищаем кэш пользователей System::cache()->Delete(system_cache, 'users'); // Автоматический вход if ($activate == 'auto') { System::user()->Login($login, $pass, true, false); System::site()->InitVars(); } elseif ($activate == 'mail') { System::user()->Def('activate_ps', base64_encode($pass)); } System::site()->AddTextBox('Регистрация', '<p align="center">Поздравляем! Вы успешно зарегистрированы на сайте.' . $pass_generate_message . $finish_message . '<br>С уважением, администрация сайта <strong>' . System::config('general/site_name') . '.</strong></p>'); } else { // Сохранение изменений $set = "`login`='{$login}',`hideemail`='{$hide_email}',`name`='{$nik_name}'," . "`truename`='{$real_name}',`age`='{$age}',`url`='{$homepage}',`icq`='{$icq}',`city`='{$city}',`timezone`='{$gmt}'" . ($updateAvatar == true ? ",`avatar`='{$avatar}',`a_personal`='{$a_personal}'" : '') . ",`about`='{$about}'," . "`servernews`='{$server_news}'" . ($pass != '' ? ",`pass`='{$pass2}'" : '') . ($email != '' ? ",`email`='{$email}'" : ''); System::database()->Update('users', $set, "`id`='" . System::user()->Get('u_id') . "'"); System::user()->UpdateMemberSession(); UpdateUserComments(System::user()->Get('u_id'), System::user()->Get('u_id'), $nik_name, $email, $hide_email, $homepage, getip()); // Очищаем кэш пользователей System::cache()->Delete(system_cache, 'users'); GO(GetSiteUrl() . Ufu('index.php?name=user&op=userinfo', 'user/{op}/')); } } else { // Ошибка $text = 'Ваш аккаунт не ' . ($edit ? 'сохранен' : 'добавлен') . ', произошли следующие ошибки:<br><ul>'; foreach ($errors as $error) { $text .= '<li>' . $error; } $text .= '</ul>'; // Удаляем аватар if ($a_personal == '1' && !$edit) { unlink(System::config('general/personal_avatars_dir') . $avatar); } System::site()->AddTextBox('Ошибка', $text); IndexUserRegistration(true, $edit); } }
<?php /* * LinkorCMS 1.4 * © 2012 LinkorCMS Development Group */ //«десь нужно получить данные формы и сохранить их в переменную $block_config if (!defined('VALID_RUN')) { header("HTTP/1.1 404 Not Found"); exit; } if (isset($_POST['topic'])) { $block_config = SafeEnv($_POST['topic'], 11, int); } else { $block_config = 0; } System::cache()->Delete('block', 'mail');
// Тема новостей $max_news = SafeDB($block_config['count'], 11, int); // Количество новостей в блоке if ($topic != 0) { $where = "`enabled`='1' and `topic_id`='{$topic}'"; } else { $where = "`enabled`='1'"; } $newsdb = System::database()->Select('news', GetWhereByAccess('view', $where), $max_news, 'date', true); $news = array(); foreach ($newsdb as $new) { $news[] = array('title' => SafeDB($new['title'], 255, str), 'text' => substr(SafeDB($new['start_text'], 0, str, true, false), 0, 255), 'date' => $new['date'], 'url' => Ufu('index.php?name=news&op=readfull&news=' . SafeDB($new['id'], 11, int) . '&topic=' . SafeDB($new['topic_id'], 11, int), 'news/{topic}/{news}/')); } System::cache()->Write('block', $bcache_name, $news); } else { $news = System::cache()->Get('block', $bcache_name); } $count = count($news); $en = !($count == 0); $tempvars['content'] = 'block/content/news.html'; System::site()->AddBlock('no_news', !$en); System::site()->AddBlock('block_news', $en); System::site()->AddBlock('block_news_news', true, true, 'news'); foreach ($news as $new) { $text = $new['text']; $pp = strpos($text, '. '); if ($pp !== false) { $text = substr($text, 0, $pp + 1); } else { $text = substr($text, 0, 128) . ' ...'; }
/** * Удаление категории * @param $Id * @return bool */ public function DeleteCat($Id) { $cat = System::database()->SelectOne($this->Table, "`id`='{$Id}'"); $childs = $this->GetAllChildId($Id); for ($i = 0, $c = count($childs); $i < $c; $i++) { System::database()->Delete($this->obj_table, "`{$this->obj_cat_coll}`='" . $childs[$i] . "'"); System::database()->Delete($this->Table, "`id`='" . $childs[$i] . "'"); } Audit('Категории: Удаление категории "' . $this->Table . '"/"' . $cat['title'] . '"'); $this->CalcCatCounter($cat['parent'], false); System::cache()->Delete('tree', $this->Table); return true; }
<?php /* * LinkorCMS 1.4 * © 2012 LinkorCMS Development Group */ if (!defined('VALID_RUN')) { header("HTTP/1.1 404 Not Found"); exit; } System::cache()->Delete('block', 'menu1'); System::cache()->Delete('block', 'menu2'); System::cache()->Delete('block', 'menu3'); System::cache()->Delete('block', 'menu4');
function AdminNewsClearBlockCache() { System::cache()->Delete('block', array('news1', 'news2', 'news3', 'news4')); }
<?php /* * LinkorCMS 1.4 * © 2012 LinkorCMS Development Group */ if (!defined('VALID_RUN')) { header("HTTP/1.1 404 Not Found"); exit; } $vars['title'] = $title; if (System::cache()->HasCache('block', 'forum_last_topics')) { $topics = System::cache()->Get('block', 'forum_last_topics'); } else { $count = SafeEnv($block_config, 11, int); $topics = System::database()->Select('forum_topics', "`delete` = '0'", $count, 'start_date', true); // TODO: надо бы сделать проверку видимости System::cache()->Write('block', 'forum_last_topics', $topics, Min2Sec * 10); } $en = !(count($topics) == 0); $tempvars['content'] = 'block/content/forum_last_topics.html'; System::site()->AddBlock('no_topics', !$en); System::site()->AddBlock('last_topics', $en); System::site()->AddBlock('last_topic', true, true, 't'); foreach ($topics as $topic) { $forum_vars = array(); $forum_vars['title'] = SafeDB($topic['title'], 255, str); $forum_vars['link'] = Ufu('index.php?name=forum&op=showtopic&topic=' . $topic['id'] . '&view=lastpost', 'forum/topic{topic}-new.html'); System::site()->AddSubBlock('last_topic', true, $forum_vars); }
/** * Сохраняет данные формы сгенерированной фукцией AdminUserEditor * * @param $back_link * @param string $a * @param int $id * @param bool $IsAdmin * @return void */ function AdminUserEditSave($back_link, $a = 'insert', $id = 0, $IsAdmin = false) { $SystemAdmin = System::user()->isSuperUser(); $edit = $a == 'update'; $editProfile = $edit && !$SystemAdmin && $id == System::user()->Get('u_id'); // Администратор редактирует свой профиль $editStatus = false; // Разрешено редактирование статуса $editType = false; // Разрешено редактировать тип пользователя // Загружаем данные пользователя из БД if ($edit) { $user = System::database()->SelectOne('users', "`id`='{$id}'" . ($IsAdmin ? " and `type`='1'" : " and `type`='2'")); if (!$user) { AddTextBox('Ошибка', '<p align="center">Пользователь не найден, либо у вас не достаточно прав для редактирования администраторов.</p>'); return; } } // Устанавливаем ограничения доступа if ($IsAdmin) { // Редактируем администратора if ($SystemAdmin) { // Только системные администраторы могут редактировать статус и тип администраторов if (!$edit) { $editStatus = true; } elseif (!(groupIsSystem(SafeEnv($user['access'], 11, int)) && GetSystemAdminsCount() <= 1)) { // Если он не системный или системных больше 1 $editStatus = true; } $editType = $editStatus; } } else { // Если пользователь $editStatus = true; // Все администраторы с доступом могут редактировать статус пользователя $editType = $SystemAdmin; // Только системные администраторы могут создавать администраторов } // Обрабатываем данные $errors = array(); // Логин if (isset($_POST['login']) && CheckLogin($_POST['login'], $errors, !$edit)) { $login = SafeEnv($_POST['login'], 30, str); } else { $login = ''; } // Пароль $pass = ''; if (!$edit || $_POST['pass'] != '') { $pass_generate_message = ''; if (isset($_POST['pass']) && CheckPass($_POST['pass'], $errors)) { $pass = SafeEnv($_POST['pass'], 30, str); if (!isset($_POST['rpass']) || SafeEnv($_POST['rpass'], 30, str) != $pass) { $errors[] = 'Пароли не совпадают.'; } } else { $pass = ''; } if (isset($_POST['pass']) && $_POST['pass'] == '') { srand(time()); $pass = GenBPass(rand(System::config('user/pass_min_length'), 15)); $pass_generate_message = '<br />Так как вы не указали пароль, он был сгенерирован автоматически и выслан на указанный E-mail пользователя.'; } $pass2 = md5($pass); } // e-mail if (isset($_POST['email']) && $_POST['email'] != '') { if (!CheckEmail($_POST['email'])) { $errors[] = 'Не правильный формат E-mail. Он должен быть вида: <b>domain@host.ru</b> .'; } $email = SafeEnv($_POST['email'], 50, str, true); } else { $email = ''; $errors[] = 'Вы не ввели E-mail.'; } // Скрыть e-mail if (isset($_POST['hideemail'])) { $hide_email = '1'; } else { $hide_email = '0'; } // Имя пользователя на сайте if (isset($_POST['nikname']) && CheckNikname($_POST['nikname'], $errors, !$edit)) { $nik_name = SafeEnv($_POST['nikname'], 50, str, true); } else { $nik_name = ''; } // Полное имя if (isset($_POST['realname'])) { $real_name = SafeEnv($_POST['realname'], 250, str, true); } else { $real_name = ''; } // Возраст if (isset($_POST['age'])) { if ($_POST['age'] == '' || is_numeric($_POST['age'])) { $age = SafeEnv($_POST['age'], 3, int); } else { $errors[] = 'Ваш возраст должен быть числом!'; } } else { $age = ''; } // Домашняя страница if (isset($_POST['homepage'])) { if ($_POST['homepage'] != '' && substr($_POST['homepage'], 0, 7) == 'http://') { $_POST['homepage'] = substr($_POST['homepage'], 7); } $homepage = SafeEnv($_POST['homepage'], 250, str, true); } else { $homepage = ''; } // Номер ICQ if (isset($_POST['icq'])) { if ($_POST['icq'] == '' || is_numeric($_POST['icq'])) { $icq = SafeEnv($_POST['icq'], 15, str, true); } else { $errors[] = 'Номер ICQ должен содержать только числа!'; } } else { $icq = ''; } // Город if (isset($_POST['city'])) { $city = SafeEnv($_POST['city'], 100, str, true); } else { $city = ''; } // Часовой пояс if (isset($_POST['gmt'])) { $gmt = SafeEnv($_POST['gmt'], 255, str); } else { $gmt = System::config('general/default_timezone'); } // О себе if (isset($_POST['about'])) { $about = SafeEnv($_POST['about'], System::config('user/about_max_length'), str, true); } else { $about = ''; } // Подписка на новости if (isset($_POST['snews'])) { $server_news = '1'; } else { $server_news = '0'; } //Обрабатываем аватар $updateAvatar = true; if (isset($_POST['avatar'])) { if (System::config('user/avatar_transfer') == '1' && isset($_FILES['upavatar']) && file_exists($_FILES['upavatar']['tmp_name'])) { if ($edit) { $avatar = $user['avatar']; $a_personal = $user['a_personal']; } else { $avatar = ''; $a_personal = '0'; } UserLoadAvatar($errors, $avatar, $a_personal, $avatar, $a_personal, $edit); } elseif ($_POST['avatar'] == '') { $updateAvatar = false; } elseif (file_exists(RealPath2(System::config('general/avatars_dir') . $_POST['avatar']))) { if ($edit) { if ($user['a_personal'] == '1') { UnlinkUserAvatarFiles($user['avatar']); } } $a_personal = '0'; $avatar = $_POST['avatar']; } else { $avatar = ''; $a_personal = '0'; } } else { $avatar = ''; $a_personal = '0'; } $SendActivation = false; if ($edit) { $active = SafeEnv($user['active'], 11, int); $code = SafeEnv($user['activate'], 11, int); } else { $active = '1'; $code = ''; } if ($editStatus) { $activate = $_POST['activate']; $lastactivate = 'manual'; if ($active == '0' && $code != '') { $lastactivate = 'mail'; } elseif ($active == '1' && $code == '') { $lastactivate = 'auto'; } if ($activate != $lastactivate) { switch ($activate) { case 'manual': $active = '0'; $code = ''; $SendActivation = false; break; case 'auto': $active = '1'; $code = ''; $SendActivation = false; break; case 'mail': $active = '0'; $code = GenRandomString(8, 'qwertyuiopasdfghjklzxcvbnm'); $SendActivation = true; break; } } } if ($edit) { $access = SafeEnv($user['type'], 11, int); $user_type = SafeEnv($user['access'], 11, int); } else { $access = '2'; $user_type = '-1'; } if ($editType && $_POST['status'] != 'member') { $access = '1'; $user_type = SafeEnv($_POST['status'], 11, int); } $reg_date = time(); $last_visit = time(); $ip = getip(); $points = 0; $visits = 0; if ($SendActivation) { UserSendActivationMail($nik_name, $email, $login, $pass, $code, $reg_date); } elseif (!$edit) { UserSendEndRegMail($email, $nik_name, $login, $pass, $reg_date); } if (!$edit) { $values = Values('', $login, $pass2, $nik_name, $real_name, $age, $email, $hide_email, $city, $icq, $homepage, $gmt, $avatar, $about, $server_news, $reg_date, $last_visit, $ip, $points, $visits, $active, $code, $access, $user_type, $a_personal, serialize(array())); System::database()->Insert('users', $values); } else { $set = "`login`='{$login}',`email`='{$email}',`hideemail`='{$hide_email}',`name`='{$nik_name}'," . "`truename`='{$real_name}',`age`='{$age}',`url`='{$homepage}',`icq`='{$icq}',`city`='{$city}'," . "`timezone`='{$gmt}'" . ($updateAvatar == true ? ",`avatar`='{$avatar}',`a_personal`='{$a_personal}'" : '') . "," . "`about`='{$about}',`servernews`='{$server_news}'" . ($pass != '' ? ",`pass`='{$pass2}'" : '') . ",`type`='{$access}'," . "`access`='{$user_type}',`active`='{$active}',`activate`='{$code}'"; System::database()->Update('users', $set, "`id`='" . $id . "'"); System::user()->UpdateMemberSession(); UpdateUserComments($id, $id, $nik_name, $email, $hide_email, $homepage); } if (count($errors) > 0) { $text = 'Аккаунт сохранен, но имели место следующие ошибки:<br /><ul>'; foreach ($errors as $error) { $text .= '<li>' . $error; } $text .= '</ul>'; AddTextBox('Внимание', $text); } else { // Очищаем кэш пользователей System::cache()->Delete(system_cache, 'users'); if (!$editProfile) { GO(ADMIN_FILE . '?exe=' . $back_link); } else { System::admin()->AddCenterBox('Редактирование профиля'); System::admin()->Highlight('Ваш профиль сохранён, обновите страницу.'); } } }
/** * Сохраняет конфигурацию в базе данных * @param $Exe * @param string $Group * @param bool $ShowHidden * @return void */ function AdminConfigurationSave($Exe, $Group = '', $ShowHidden = false) { global $config, $conf_config_table, $conf_config_groups_table; // Вытаскиваем настройки и отсортировываем по группам $temp = System::database()->Select($conf_config_table, ''); for ($i = 0, $cnt = count($temp); $i < $cnt; $i++) { $configs[$temp[$i]['group_id']][] = $temp[$i]; } unset($temp); // Вытаскиваем группы настроек if ($Group == '') { $q = ''; } else { $q = "`name`='" . $Group . "'"; } $cfg_grps = System::database()->Select($conf_config_groups_table, $q); for ($i = 0, $cnt = count($cfg_grps); $i < $cnt; $i++) { // Если эта группа невидима то пропускаем её if ($Group == '') { if ($cfg_grps[$i]['visible'] == 0) { continue; } } // Или если в ней нет настроек if (!isset($configs[$cfg_grps[$i]['id']])) { continue; } for ($j = 0, $jcnt = count($configs[$cfg_grps[$i]['id']]); $j < $jcnt; $j++) { // Если настройка невидима то пропускаем её if ($configs[$cfg_grps[$i]['id']][$j]['visible'] == 0 && !$ShowHidden) { continue; } $name = $configs[$cfg_grps[$i]['id']][$j]['name']; $kind = explode(':', $configs[$cfg_grps[$i]['id']][$j]['kind']); $kind = trim(strtolower($kind[0])); $savefunc = trim($configs[$cfg_grps[$i]['id']][$j]['savefunc']); $type = trim($configs[$cfg_grps[$i]['id']][$j]['type']); if ($type != '') { $type = explode(',', $type); } else { $type = array(255, str, false); } $where = "`name`='{$name}' and `group_id`='" . $cfg_grps[$i]['id'] . "'"; if (isset($_POST[$name])) { switch ($kind) { case 'edit': case 'radio': case 'combo': if (FormsConfigCheck2Func('function', $savefunc, 'save')) { $savefunc = CONF_SAVE_PREFIX . $savefunc; $value = $savefunc(FormsCheckType($_POST[$name], $type)); } else { $value = FormsCheckType($_POST[$name], $type); } break; case 'text': if (FormsConfigCheck2Func('function', $savefunc, 'save')) { $savefunc = CONF_SAVE_PREFIX . $savefunc; $value = $savefunc(FormsCheckType($_POST[$name], $type)); } else { $value = FormsCheckType($_POST[$name], $type); } break; case 'check': case 'list': if (FormsConfigCheck2Func('function', $savefunc, 'save')) { $savefunc = CONF_SAVE_PREFIX . $savefunc; $value = $savefunc(FormsCheckType($_POST[$name], $type)); } else { if (isset($_POST[$name])) { $c = count($_POST[$name]); } else { $c = 0; } $value = ''; for ($k = 0; $k < $c; $k++) { $value .= ','; $value .= FormsCheckType($_POST[$name][$k], $type); } $value = substr($value, 1); } break; default: if (FormsConfigCheck2Func('function', $savefunc, 'save')) { $savefunc = CONF_SAVE_PREFIX . $savefunc; $value = $savefunc(FormsCheckType($_POST[$name], $type)); } else { $value = FormsCheckType($_POST[$name], $type); } } System::database()->Update($conf_config_table, 'value=\'' . $value . '\'', $where); // FIXME: Использовать транзакцию } } } // Очищаем кэш настроек System::cache()->Clear('config'); GO(ADMIN_FILE . '?exe=' . $Exe); }
$id = SafeEnv($r['id'], 11, int); System::database()->Update('forms', "`link`='{$link}'", "`id`='{$id}'"); } // Обновление таблицы rewrite_rules System::database()->Truncate('rewrite_rules'); System::database()->InsertColl('rewrite_rules', Unserialize('a:4:{s:4:"name";s:4:"name";s:4:"type";s:7:"varchar";s:6:"length";i:255;s:7:"notnull";b:1;}'), 0); System::database()->InsertColl('rewrite_rules', Unserialize('a:4:{s:4:"name";s:6:"module";s:4:"type";s:7:"varchar";s:6:"length";i:255;s:7:"notnull";b:1;}'), 1); System::database()->InsertColl('rewrite_rules', Unserialize('a:4:{s:4:"name";s:11:"description";s:4:"type";s:7:"varchar";s:6:"length";i:255;s:7:"notnull";b:1;}'), 2); System::database()->InsertColl('rewrite_rules', Unserialize('a:4:{s:4:"name";s:5:"order";s:4:"type";s:3:"int";s:6:"length";i:11;s:7:"notnull";b:1;}'), 6); // Системные правила UfuAddRuleByTemplate('system', 'mod', 'Ссылка на модуль', 'name={str}', '{name}/', 1000); // Правила для страниц UfuAddRuleByTemplate('pages', 'page', 'Ссылка на страницу', 'name=pages&file={ustr}', '{file}.html'); // Правила для модуля веб форм UfuAddRuleByTemplate('forms', 'form', 'Страница с формой', 'name=forms&formlink={ustr}', 'forms/{formlink}.html'); Ufu('index.php?name=forms&form={num}', 'forms/{form}/'); Ufu('index.php?name=news&op=topics', 'news/{op}/', 15000); // Обновление шаблона $template = System::config('general/site_template'); if ($template != 'default' && $template != 'IgrimTheme') { $file_name = System::config('tpl_dir') . $template . '/module/user_list.html'; $temp_content = file_get_contents($file_name); $temp_content = str_replace('{title.last}', '{title.last_visit}', $temp_content); file_put_contents($file_name, $temp_content); } // Пересборка ядра if (is_file('config/system_build.php')) { unlink('config/system_build.php'); } System::cache()->ClearAll(); }
} elseif ($Icon == 'folder') { $Icon = 'images/folder.png'; } elseif ($Icon == 'page') { $Icon = 'images/page.png'; } } $sitemap_objects[$sitemap_category][] = array('is_raw' => false, 'margin' => 20 * $Level, 'title' => SafeDB($Title, 255, str), 'url' => $Url, 'icon' => $Icon); } /** * Добавляет текст на карту сайта без обработки. * @param $Data */ function SitemapAddRawData($Data) { global $sitemap_objects, $sitemap_category; $sitemap_objects[$sitemap_category][] = array('is_raw' => true, 'raw_output' => SafeDB($Data, 0, str, false, false), 'margin' => 0); } if (System::cache()->HasCache(system_cache, 'sitemap')) { $sitemap_objects = System::cache()->Get(system_cache, 'sitemap'); } else { // Подключаем плагины генерирующие карту сайта IncludePluginsGroup('sitemap'); System::cache()->Write(system_cache, 'sitemap', $sitemap_objects, Day2Sec); } foreach ($sitemap_objects as $title => $objects) { $sitemap_category = $Sitemap->NewSubBlock(true, array('title' => SafeDB($title, 255, str))); $sitemap_objects_block = $sitemap_category->NewBlock('sitemap_objects', true, true, 'object'); foreach ($objects as $vars) { $sitemap_objects_block->NewSubBlock(true, $vars); } }
/** * Flush this static class' cache. * * @return void */ public static function flushCache() { self::$cache = array(); }
<?php /* * LinkorCMS 1.4 * © 2012 LinkorCMS Development Group */ if (!defined('VALID_RUN')) { header("HTTP/1.1 404 Not Found"); exit; } $bconf['topic'] = SafeEnv($_POST['topic'], 11, int); $bconf['count'] = SafeEnv($_POST['count'], 11, int); $block_config = serialize($bconf); System::cache()->Delete('block', 'news1'); System::cache()->Delete('block', 'news2'); System::cache()->Delete('block', 'news3'); System::cache()->Delete('block', 'news4');