Файл: CMS/core/admin/static.php
Строк: 152
<?php
if (!defined('CMS')) { die('Access Denied!'); }
$error = '';
$no_add_pages = array('index','admin','smiles','code','stat','category','comments','reg','login','forgot','feedbsck','country','cite');
if (is_admin(array(101))) {
if (!empty($_REQUEST['del'])) {
$del = intar($_REQUEST['del']);
if (!empty($_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {
if (is_array($del)) {
$del = implode(',', $del);
$db->query("DELETE FROM ?_pages WHERE `id` IN (" . $del . ");");
$inSes->addMessage('Выбранные страницы успешно удалены!', 'ok');
}
else {
$db->query("DELETE FROM ?_pages WHERE `id` = ? LIMIT 1;", $del);
$inSes->addMessage('Страница успешно удалена!', 'ok');
}
$db->query("OPTIMIZE TABLE ?_pages");
del_vars('static_pages');
}
else $inSes->addMessage('Ошибка! Неверный идентификатор сессии, повторите действие!');
}
if (!empty($_POST['add'])) {
if (!empty($_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {
$name = !empty($_POST['name']) ? check($_POST['name']) : '';
$title = !empty($_POST['title']) ? check($_POST['title']) : '';
$text = !empty($_POST['text']) ? check($_POST['text']) : '';
$active = !empty($_POST['active']) ? 1 : 0;
$allow = !empty($_POST['allow']) ? 1 : 0;
if (!empty($name) && !empty($title)) {
if (!empty($text)) {
$is_page = (int) $db->selectCell("SELECT * FROM ?_pages WHERE `name` = ? LIMIT 1", $name );
if ( $is_page < 1 && !in_array($name,$no_add_pages)) {
$thisdate = date( 'Y-m-d H:i:s', time() );
$last_id = (int) $db->query( "INSERT INTO ?_pages SET `name` = ?, `title` = ?, `text` = ?, `date` = ?, `active` = ?, `allow_br` = ?", $name, $title, $text, $thisdate, $active, $allow );
if ($last_id > 0) {
$inSes->addMessage('Страница успешно добавлена!', 'ok');
del_vars('static_index');
del_vars('static_pages');
redirect( '?m=static' );
}
else $error = 'Ошибка! В данный момент не удалось создать страницу!';
}
else $error = 'Ошибка! Страница с таким названием уже есть в базе!';
}
else $error = 'Ошибка! Вы не ввели текст страницы!';
}
else $error = 'Ошибка! Вы не ввели заголовок страницы!';
}
else $error = 'Неверный идентификатор сессии, повторите действие!';
if (!empty($error)) $inSes->addMessage($error,'error');
}
if (!empty($_POST['edit'])) {
$id = !empty($_GET['edit_page']) ? num($_GET['edit_page']) : 0;
$row = $db->selectRow( "SELECT * FROM ?_pages WHERE `id` = ? LIMIT 1", $id );
if (!empty($row)) {
if (!empty($_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {
$name = !empty($_POST['name']) ? check($_POST['name']) : $row['name'];
$title = !empty($_POST['title']) ? check($_POST['title']) : $row['title'];
$text = !empty($_POST['text']) ? check($_POST['text']) : $row['text'];
$keys = !empty($_POST['keys']) ? $_POST['keys'] : genKeywords($title . ' ' . $row['text']);
$desc = !empty($_POST['desc']) ? $_POST['desc'] : genDescription($row['text']);
$active = !empty($_POST['active']) ? 1 : 0;
$index = !empty($_POST['index']) ? 1 : 0;
$allow = !empty($_POST['allow']) ? 1 : 0;
$views = !empty($_POST['views']) ? 0 : $row['views'];
$date = !empty($_POST['date']) ? date('Y-m-d H:i:s', time()) : $row['date'];
if (!empty($name) && !empty($title)) {
if (!empty($text)) {
if (!in_array($name,$no_add_pages)) {
$q = (bool) $db->query("UPDATE ?_pages SET `name` = ?, `title` = ?, `text` = ?, `keys` = ?, `desc` = ?, `active` = ?, `is_index` = ?, `allow_br` = ?, `date` = ?, `views` = ? WHERE `id` = ?", $name, $title, $text, $keys, $desc, $active, $index, $allow, $date, $views, $id );
if ( !$q ) {
$inSes->addMessage('Ошибка! Вы не чего не изменили или БД не доступна!');
}
else {
del_vars('static_index');
del_vars('static_pages');
$inSes->addMessage('Страница успешна изменёна!', 'ok');
}
redirect('?m=static');
}
else $error = 'Ошибка! Такая страница уже есть!';
}
else $error = 'Ошибка! Вы не ввели текст страницы!';
}
else $error = 'Ошибка! Вы не ввели заголовок страницы!';
}
else $error = 'Ошибка! Неверный идентификатор сессии, повторите действие!';
}
else $error = 'Ошибка! Редактируемая страница не найдена!';
if (!empty($error)) $inSes->addMessage($error,'error');
}
show_header('Управление страницами');
$onpage = !empty($config['post_num']) ? (int) $config['post_num'] : 10;
if ($page > 1) $from = ($page - 1) * $onpage; else $from = 0;
$rows = $db->selectPage( $total, "SELECT * FROM ?_pages ORDER BY `id` DESC LIMIT ?d, ?d", $from, $onpage );
if ( !empty($rows) && $total > 0 ) {
echo '<form action="?m=static&rnd=' . $_SESSION['token'] . '" method="post" name="mass">';
$i = $from + 1;
foreach( $rows as $row ) {
$active = ($row['active'] == 1) ? '<span style="color:green;">[Вкл]</span>' : '<span style="color:red;">[Выкл]</span>';
echo '<div class="b">' . $i . '. <a href="/' . gen_uri($row['name']) . '">' . $row['title'] . '</a> ' . $active . '<br />';
echo 'Просмотров: <b>' . num($row['views']) . '</b><br />';
echo '<input type="checkbox" name="del[]" value="' . $row['id'] . '" /> ';
echo ' <a href="?m=static&edit_page=' . $row['id'] . '#form">Ред.</a> | ';
echo '<a href="?m=static&del=' . $row['id'] . '&rnd=' . $_SESSION['token'] . '">Уд.</a></div>';
$i++;
}
echo '<div class="b">';
echo '<input type="checkbox" name="master_box" title="Отметить всё" onclick="javascript:ckeck_uncheck_all()">';
echo '<input type="submit" class="btns" onclick="return confirm('Вы действительно хотите удалить выбранные страницы?')" value="Удалить выбранное" /></form></div>';
echo show_pages('?m=static');
}
else {
show_error('Статических страниц пока не создано!');
}
if (!empty($_GET['add_page'])) {
include_once( MODULES_PATH . 'bb_code.inc.php' );
if (!empty($_GET['code'])) include( MODULES_PATH . 'code.inc.php' );
else if (!empty($_GET['smiles'])) include( MODULES_PATH . 'smiles.inc.php' );
$form = new cmsForm('?m=static&add_page=1&rnd=' . $_SESSION['token'], 'post', ' name="form" id="form"');
$form->addText('Название страницы (a-z,A-Z,0-9):', 'name', request('name'));
$form->addText('Заголовок страницы:', 'title', request('title'));
$form->addCode('Текст страницы: <small>[<a href="?m=static&smiles=1&add_page=1">Смайлы</a>] ');
$form->addCode('[<a href="?m=static&code=1&add_page=1">ББ-коды</a>]</small>');
$form->addCode(' [<a href="#form" onclick="document.form.text.rows += 5;">+</a>]');
$form->addCode(' [<a href="#form" onclick="document.form.text.rows -= 5;">-</a>]');
$form->addTextarea('', 'text', request('text'), ' id="text" style="width:98%;"');
$form->addCode(quickpaste('text',1) . quicktags(1));
$form->addCheckBox(array('', ' - Опубликована'), 'active', request('active',1));
$form->addCheckBox(array('', ' - Автоперенос'), 'allow', request('allow',1));
$form->Submit('Создать', 'add');
unset($form);
echo '<div class="b">' . blink('[?]') . ' Название страницы - т.е страница будет доступна по адресу:<br />' . $config['site_url'] . '/Название страницы.html<br />разрешенные символы (a-z,A-Z,0-9), первый <b>буква</b>, а не цифра...<br />' . blink('[?]') . ' Автоперенос - все "n" будут заменены на <br /><br /></div>';
}
else if (!empty($_GET['edit_page'])) {
$id_page = num($_GET['edit_page']);
$row = $db->selectRow("SELECT * FROM ?_pages WHERE `id` = ? LIMIT 1", $id_page);
if (!empty($row)) {
include_once( MODULES_PATH . 'bb_code.inc.php' );
if (!empty($_GET['code'])) include( MODULES_PATH . 'code.inc.php' );
else if (!empty($_GET['smiles'])) include( MODULES_PATH . 'smiles.inc.php' );
$form = new cmsForm('?m=static&edit_page=' . $id_page . '&rnd=' . $_SESSION['token'], 'post', ' name="form" id="form"');
$form->addText('Название страницы (a-z,A-Z,0-9):', 'name', $row['name']);
$form->addText('Заголовок страницы:', 'title', $row['title']);
$form->addCode('Текст страницы: <small>[<a href="?m=static&smiles=1&edit_page=' . $id_page . '">Смайлы</a>] ');
$form->addCode('[<a href="?m=static&code=1&edit_page=' . $id_page . '">ББ-коды</a>]</small>');
$form->addCode(' [<a href="#form" onclick="document.form.text.rows += 5;">+</a>]');
$form->addCode(' [<a href="#form" onclick="document.form.text.rows -= 5;">-</a>]');
$form->addTextarea('', 'text', html_entity_decode($row['text'], ENT_QUOTES, 'UTF-8'), ' id="text" style="width:98%;"');
$form->addCode(quickpaste('text',1) . quicktags(1));
$form->addTextarea('Описание (description):', 'desc', $row['desc']);
$form->addTextarea('Ключевые слова (keywords через запятую):', 'keys', $row['keys']);
$form->addCheckBox(array('', ' - Опубликована'), 'active', $row['active']);
$form->addCheckBox(array('', ' - Автоперенос'), 'allow', $row['allow_br']);
$form->addCheckBox(array('', ' - Обновить дату'), 'date');
$form->addCheckBox(array('', ' - Обнулить просмотры'), 'view');
$form->Submit('Изменить', 'edit');
unset($form);
echo '<div class="b">' . blink('[?]') . ' Описание и кл. слова можно оставить пустыми,
тогда они будут сгенерированы автоматически из текста статьи.<br /></div>';
}
else show_error('Ошибка! Запрашиваемая страница не найдена!');
}
echo '<div class="b">' . icon('add.png');
echo ' <a href="?m=static&add_page=1#form">Создать новую страницу</a><br /></div>';
echo <<<JSCRIPT
<script language='JavaScript' type="text/javascript">
<!--
function ckeck_uncheck_all() {
var frm = document.mass;
if(frm.master_box.checked == true){ frm.master_box.checked = false; }
else{ frm.master_box.checked = true; }
for (var i=0;i<frm.elements.length;i++) {
var elmnt = frm.elements[i];
if (elmnt.type=='checkbox') {
if(frm.master_box.checked == true){ elmnt.checked=false; }
else{ elmnt.checked=true; }
}
}
//if(frm.master_box.checked == true){ frm.master_box.checked = false; }
//else{ frm.master_box.checked = true; }
}
-->
</script>
JSCRIPT;
}
else {
redirect('/?' . RND);
}
?>