function EditStaticSettings($enabled, $editors, $listing) {
global $userbank;
$objResponse = new xajaxResponse();
if (!$userbank->HasAccess(ADMIN_WEB_SETTINGS)) {
$objResponse->addScript('ShowBox("Ошибка!", "У вас недостаточно прав для выполнения этой операции!", "red", "index.php?p=static");');
$log = new CSystemLog("w", "Ошибка доступа", "Администратор пытался создать статическую страницу, не имея на это прав.");
} else {
if ($GLOBALS['db']->Execute(sprintf("UPDATE `%s_settings` SET `value`=%d WHERE `setting`='page.static'", DB_PREFIX, ($enabled=="true")?1:0)) && $GLOBALS['db']->Execute(sprintf("UPDATE `%s_settings` SET `value`=%d WHERE `setting`='static.show_editor_public'", DB_PREFIX, ($editors=="true")?1:0)) && $GLOBALS['db']->Execute(sprintf("UPDATE `%s_settings` SET `value`=%d WHERE `setting`='static.show_allpages'", DB_PREFIX, ($listing=="true")?1:0))) {
$objResponse->addScript('ShowBox("Успех!", "Настройки модуля статических страниц сохранены.", "green", "index.php?p=static");');
$log = new CSystemLog("m", "Правка настроек статических страниц", "Изменены настройки статических страниц.");
} else
$objResponse->addScript('ShowBox("Ошибка!", "Не удалось сохранить Настройки модуля статических страниц. Повторите попытку.", "red", "", true);');
}
return $objResponse;
}
function AddStaticPage($title, $text, $url, $only_admins) {
global $userbank;
$objResponse = new xajaxResponse();
$only_admins = ($only_admins=="true")?1:0;
if (!$userbank->HasAccess(ADMIN_WEB_SETTINGS)) {
$objResponse->addScript('ShowBox("Ошибка!", "У вас недостаточно прав для выполнения этой операции!", "red", "index.php?p=static");');
$log = new CSystemLog("w", "Ошибка доступа", "Администратор пытался создать статическую страницу, не имея на это прав.");
} else if (!preg_match("/^[aA0\--zZ9_]{1,}$/",$url))
$objResponse->addScript('ShowBox("Ошибка!", "В ссылке существуют недопустимые символы! Разрешены только английские символы, цифры и знак минуса и подчёркивания", "red", "", true);');
else {
if ($GLOBALS['db']->GetRow(sprintf("SELECT COUNT(*) FROM `%s_pages` WHERE `url` = %s", DB_PREFIX, $GLOBALS['db']->qstr($url)))[0] > 0)
$objResponse->addScript('ShowBox("Ошибка!", "Страница с такой ссылкой уже существует!", "red", "", true);');
else if ($GLOBALS['db']->Execute(sprintf("INSERT INTO `%s_pages` (`url`, `title`, `text`, `lastedit`, `editor`, `hidden`) VALUES (%s, %s, %s, %d, %d, %d)", DB_PREFIX, $GLOBALS['db']->qstr($url), $GLOBALS['db']->qstr($title), $GLOBALS['db']->qstr($text), time(), $userbank->GetProperty("aid"), $only_admins))) {
$objResponse->addScript('ShowBox("Успех!", "Статическая страница создана.", "green", "index.php?p=static");');
$log = new CSystemLog("m", "Создание статической страницы", "Создана статическая страница");
} else {
$objResponse->addScript('ShowBox("Ошибка!", "Не удалось создать статическую страницу.<br />Смотрите в системный лог.", "red", "index.php?p=static");');
$log = new CSystemLog("w", "Создание статической страницы", "Не удалось создать статическую страницу.");
}
}
return $objResponse;
}
function EditStaticPage($id, $title, $text, $url, $only_admins) {
global $userbank;
$objResponse = new xajaxResponse();
$only_admins = ($only_admins=="true")?1:0;
if (!$userbank->HasAccess(ADMIN_WEB_SETTINGS)) {
$objResponse->addScript('ShowBox("Ошибка!", "У вас недостаточно прав для выполнения этой операции!", "red", "index.php?p=static");');
$log = new CSystemLog("w", "Ошибка доступа", "Администратор пытался отредактировать статическую страницу, не имея на это прав.");
} else if (!preg_match("/^[aA0\--zZ9_]{1,}$/",$url))
$objResponse->addScript('ShowBox("Ошибка!", "В ссылке существуют недопустимые символы! Разрешены только английские символы, цифры и знак минуса и подчёркивания", "red", "", true);');
else {
if ($GLOBALS['db']->Execute(sprintf("UPDATE `%s_pages` SET `title`=%s, `text`=%s, `url`=%s, `hidden`=%d, `editor`=%d, `lastedit`=%d WHERE `pid` = %d", DB_PREFIX, $GLOBALS['db']->qstr($title), $GLOBALS['db']->qstr($text), $GLOBALS['db']->qstr($url), $only_admins, $userbank->GetProperty("aid"), time(), $id))) {
$objResponse->addScript('ShowBox("Успех!", "Статическая страница отредактирована.", "green", "index.php?p=static");');
$log = new CSystemLog("m", "Редактирование статической страницы", sprintf("Изменена статическая страница под уникальным идентификатором %d", $id));
} else {
$objResponse->addScript(sprintf('ShowBox("Ошибка!", "Не удалось отредактировать статическую страницу под идентификатором %d.<br />Смотрите в системный лог для получения подробностей.", "red", "index.php?p=static");', $id));
$log = new CSystemLog("w", "Редактирование статической страницы", sprintf("Не удалось отредактировать статическую страницу под идентификатором %d: Страница не найдена", $id));
}
}
return $objResponse;
}
function RemoveStaticPage($id) {
global $userbank;
$objResponse = new xajaxResponse();
if (!$userbank->HasAccess(ADMIN_WEB_SETTINGS)) {
$objResponse->addScript('ShowBox("Ошибка!", "У вас недостаточно прав для выполнения этой операции!", "red", "index.php?p=static");');
$log = new CSystemLog("w", "Ошибка доступа", "Администратор пытался удалить статическую страницу, не имея на это прав.");
} else {
if ($GLOBALS['db']->Execute(sprintf("DELETE FROM `%s_pages` WHERE `pid` = %s", DB_PREFIX, $id))) {
$objResponse->addScript('ShowBox("Успех!", "Статическая страница удалена.", "green", "index.php?p=static");');
$log = new CSystemLog("m", "Удаление статической страницы", sprintf("Удалена статическая страница под уникальным идентификатором %d", $id));
} else {
$objResponse->addScript(sprintf('ShowBox("Ошибка!", "Не удалось удалить статическую страницу под идентификатором %d.<br />Смотрите в системный лог для подробной информации.", "red", "index.php?p=static");', $id));
$log = new CSystemLog("w", "Удаление статической страницы", sprintf("Не удалось удалить страницу под уникальным идентификатором %d: Страница не найдена.", $id));
}
}
return $objResponse;
}