function AdminBlocksSave($a) { $block_config = ''; $editsave = System::config('blocks_dir') . SafeEnv($_POST['type'], 255, str) . '/editsave.php'; if (file_exists($editsave)) { include_once $editsave; // Что-то записывает в $block_config } VisibilityConditionsAdminSave($showin, $extra_uri); $b_v = ViewLevelToInt($_POST['view']); $b_en = EnToInt($_POST['enabled']); if (isset($_GET['id'])) { $id = SafeEnv($_GET['id'], 11, int); } else { $id = 0; } $place = GetPlace(SafeEnv($_POST['position'][0], 1, str), $id); // FIXME: Ниже блок вытаскивается, тогда можно узнать его place без лишнего запроса if ($id != 0) { $block = System::database()->Select('blocks', "`id`='{$id}'"); $block_pos = SafeEnv($block[0]['position'], 1, str); } $vals = Values('', SafeEnv($_POST['title'], 255, str), SafeEnv($_POST['type'], 255, str), $place, '', '1', $block_config, SafeEnv($_POST['template'], 255, str), SafeEnv($_POST['position'][0], 1, str), $b_v, $b_en, $showin, $extra_uri); if ($a == 'newsave') { System::database()->Insert('blocks', $vals); Audit('Блока: Добавление блока "' . $_POST['title'] . '"'); } elseif ($a == 'update') { System::database()->Update('blocks', $vals, "`id`='" . $id . "'", true); Audit('Блока: Изменение блока "' . $_POST['title'] . '"'); if ($block_pos != $_POST['position'][0]) { // Пересчитываем все place в предыдущем position $blocks = System::database()->Select('blocks', "`position`='" . $block_pos . "'"); if (count($blocks) > 0) { usort($blocks, 'AdminBlocksSort'); foreach ($blocks as $i => $b) { System::database()->Update('blocks', "`place`='{$i}'", "`id`='" . SafeEnv($b['id'], 11, int) . "'"); } } } } GO(ADMIN_FILE . '?exe=blocks'); }
function AdminSiteMessagesSave() { $title = SafeEnv($_POST['title'], 250, str); $view_title = EnToInt($_POST['vtitle']); $text = SafeEnv($_POST['text'], 0, str); $time = SafeEnv($_POST['time'], 3, int); $date = time(); $view = ViewLevelToInt($_POST['view']); $active = EnToInt($_POST['enabled']); switch ($_POST['position']) { case 'top': $pos = '1'; break; case 'bottom': $pos = '0'; break; default: $pos = '1'; } VisibilityConditionsAdminSave($showin, $extra_uri); //Записываем или обновляем данные в базе данных if (!isset($_GET['id'])) { $vals = "'','{$title}','{$text}','{$date}','{$time}','{$showin}','{$extra_uri}','{$pos}','{$view_title}','{$view}','{$active}'"; System::database()->Insert('messages', $vals); Audit('Сообщения: Добавление нового сообщения "' . $title . '"'); } else { $id = SafeEnv($_GET['id'], 11, int); if (!isset($_POST['resettime'])) { System::database()->Select('messages', "`id`='{$id}'"); if (System::database()->NumRows() > 0) { $msg = System::database()->FetchRow(); $date = $msg['date']; } else { $date = time(); } } $vals = "'','{$title}','{$text}','{$date}','{$time}','{$showin}','{$extra_uri}','{$pos}','{$view_title}','{$view}','{$active}'"; System::database()->Update('messages', $vals, "`id`='{$id}'", true); Audit('Сообщения: Изменение сообщения "' . $title . '"'); } GO(ADMIN_FILE . '?exe=messages'); }