Файл: CMS/core/modules/journal_edit.php
Строк: 199
<?php
if (!defined('CMS')) { die('Access Denied!'); }
if ($is_logged) {
$error = '';
$row = $db->selectRow("SELECT * FROM ?_journal_posts WHERE `journal_id` = ? LIMIT 1;", $id);
if (!empty($row)) {
if ($row['journal_user'] == $log) {
if (!empty($_POST['submit'])) {
$cid = !empty($_POST['cid']) ? num($_POST['cid']) : 0;
$title = !empty($_POST['title']) ? check($_POST['title']) : '';
$text = !empty($_POST['text']) ? check($_POST['text']) : '';
if (!empty($_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {
if (!empty($cid)) {
if (cms_strlen($title) >= 3 && cms_strlen($title) <= 100) {
if (cms_strlen($text) >= $config['journal_min_text'] && cms_strlen($text) <= $config['journal_max_text']) {
if (array_key_exists($cid,$categories)) {
$text = antimat($text);
$text = smiles($text);
// Обновление счетчиков
if ($row['journal_cats_id'] != $cid) {
$db->query("UPDATE ?_comments SET `comm_cats` = ? WHERE `comm_post` = ? AND `comm_type` = 'journal';", $cid, $id);
$db->query("UPDATE ?_journal_category SET `cats_count` = (`cats_count` + 1) WHERE `cats_id` = ?", $cid);
$db->query("UPDATE ?_journal_category SET `cats_count` = (`cats_count` - 1) WHERE `cats_id` = ?", $row['journal_cats_id']);
del_vars('journal_categories');
}
$moders = ($config['journal_moder'] == 1) ? 1 : 0;
$moders = is_admin() ? 0 : $moders;
$db->query("UPDATE ?_journal_posts SET `journal_cats_id` = ?, `journal_title` = ?, `journal_text` = ?, `journal_moders` = ? WHERE `journal_id` = ?;", $cid, $title, $text, $moders, $id);
$inSes->addMessage('Ваша публикация успешно отредактирована!', 'ok');
gen_red('post', $row['journal_id'], RND);
}
else $error = 'Ошибка! Выбранного раздела не существует!';
}
else $error = 'Ошибка! Слишком длинный или короткий текст статьи (от ' . $config['journal_min_text'] . ' до ' . $config['journal_max_text'] . ' символов)!';
}
else $error = 'Ошибка! Слишком длинный или короткий заголовок (от 5 до 100 символов)!';
}
else $error = 'Ошибка! Вы не выбрали категорию для добавления статьи!';
}
else $error = 'Ошибка! Неверный идентификатор сессии, повторите действие!';
if (!empty($error)) $inSes->addMessage($error, 'error');
}
if (!empty($_GET['del'])) {
if (!empty($_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {
if ( check_referer() ) {
if (empty($row['journal_comments'])) {
$files = $db->select("SELECT * FROM ?_journal_files WHERE `files_post` = ?", $id);
if (!empty($files) && count($files) > 0) {
foreach($files as $file) {
$fname = $id . '_' . $file['files_name'];
if ( @file_exists( ROOTPATH . '/upload/journal/' . $fname ) ) {
@chmod( ROOTPATH . '/upload/journal/' . $fname, 0777 );
unlink( ROOTPATH . '/upload/journal/' . $fname );
}
}
}
$db->query("UPDATE ?_journal_category SET `cats_count` = (`cats_count` - 1) WHERE `cats_id` = ?", $row['journal_cats_id']);
$db->query("DELETE FROM ?_comments WHERE `comm_post` = ? AND `comm_type` = 'journal';", $id);
$db->query("DELETE FROM ?_journal_files WHERE `files_post` = ?", $id);
$db->query("DELETE FROM ?_journal_rated WHERE `rated_journal` = ?", $id);
$db->query("DELETE FROM ?_journal_posts WHERE `journal_id` = ? LIMIT 1", $id);
$db->query("OPTIMIZE TABLE ?_journal_posts, ?_journal_category, ?_journal_files, ?_journal_rated");
$inSes->addMessage('Публикация успешно удалена!', 'ok');
gen_red('index', '', RND);
}
else $inSes->addMessage('Ошибка! Запрещено удалять статьи к которым имеются комментарии!');
}
else $inSes->addMessage('Реферер не определен в вашем браузере. Пожалуйста, активируйте опцию передачи реферера.');
}
else $inSes->addMessage('Ошибка! Неверный идентификатор сессии, повторите действие!');
}
if (!empty($_POST['upload'])) {
if (!is_dir(ROOTPATH . '/upload/journal')) mkdir(ROOTPATH . '/upload/journal', 0755);
if (!empty($_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {
if ($config['journal_upload_file'] > 0 || is_admin(array(101))) {
$count = (int) $db->selectCell("SELECT COUNT(`files_id`) FROM ?_journal_files
WHERE `files_post` = ? LIMIT 1;", $id);
if ($count <= $config['journal_upload_file']) {
if (is_uploaded_file($_FILES['loadfile']['tmp_name'])) {
$filename = check(strtolower($_FILES['loadfile']['name']));
if (strlen($filename) <= 50) {
if (preg_match('|^[a-z0-9_.-]+$|i', $filename)) {
$arrext = explode(',', $config['journal_ext_file']);
$ext = strtolower(substr(strrchr($filename, '.'), 1));
if (in_array($ext, $arrext) && $ext != 'php') {
if (!preg_match('/.(php|pl|cgi|phtml|htaccess)/i', $filename)) {
if ($_FILES['loadfile']['size'] > 0 && $_FILES['loadfile']['size'] <= $config['journal_file_size']) {
$files_path = ROOTPATH . '/upload/journal/' . $id . '_' . $filename;
if (!file_exists($files_path)) {
move_uploaded_file($_FILES['loadfile']['tmp_name'], $files_path);
@chmod($files_path, 0644);
$db->query("INSERT INTO ?_journal_files
SET `files_post` = ?, `files_name` = ?, `files_size` = ?", $id, $filename, $_FILES['loadfile']['size']);
$inSes->addMessage('Файл успешно загружен!', 'ok');
gen_red('post', $row['journal_id'], RND);
}
else $error = 'Ошибка! Файл ' . $filename . ' уже прикреплён к данной публикации!';
}
else $error = 'Ошибка! Максимальный размер загружаемого файла ' . size($config['journal_photos_max_weight']) . '!';
}
else $error = 'Ошибка! В названии файла присутствуют недопустимые расширения!';
}
else $error = 'Ошибка! Недопустимое расширение файла!';
}
else $error = 'Ошибка! В названии файла присутствуют недопустимые символы!';
}
else $error = 'Ошибка! Слишком длинное имя файла (не более 50 символов)!';
}
else $error = 'Ошибка! Не удалось загрузить файл!';
}
else $error = 'Ошибка! Файл уже загружен!';
}
else $error = 'Ошибка! Загрузка файлов запрещена администратором!';
}
else $error = 'Ошибка! Неверный идентификатор сессии, повторите действие!';
if (!empty($error)) $inSes->addMessage($error, 'error');
}
$cats = array();
$cats[0] = 'Список разделов';
foreach($categories as $key => $val) $cats[$key] = $val[0];
show_header('Редактирование ' . $row['journal_title']);
if (!empty($_GET['code'])) include( MODULES_PATH . 'code.inc.php' );
else if (!empty($_GET['smiles'])) include( MODULES_PATH . 'smiles.inc.php' );
$row['journal_text'] = str_ireplace(array('<br>','<br/>','<br />'), "n", nosmiles($row['journal_text']));
$form = new cmsForm(gen_uri('edit', $id, 'rnd=' . $_SESSION['token']), 'post', ' name="form" id="edit"');
$form->addText(blink('*') . ' Заголовок:', 'title', $row['journal_title'], ' style="width:98%;" maxlength="100"');
$form->addSelect('Категория:', 'cid', num($row['journal_cats_id']), $cats);
$form->addCode(blink('*') . ' Текст: <small>[<a href="' . gen_uri('edit', $id, 'smiles=1') . '">Смайлы</a>] ');
$form->addCode('[<a href="' . gen_uri('edit', $id, 'code=1') . '">ББ-коды</a>]</small>');
$form->addCode(' [<a href="#edit" onclick="document.edit.msg.rows += 5;">+</a>]');
$form->addCode(' [<a href="#edit" onclick="document.edit.msg.rows -= 5;">-</a>]');
$form->addTextarea('', 'text', $row['journal_text'], ' id="msg" style="width:98%;"');
$form->addCheckBox(array('', ' - Для взрослых'), 'xxx', $row['journal_is_xxx']);
echo $form->Submit('Изменить', 'submit');
unset($form);
if ($config['journal_moder'] == 1) {
echo '<div class="b"><span class="blink">Обратите внимание</span>: включена проверка публикуемых статей, Ваша статья будет опубликована сразу после проверки модератором.<br /></div>';
}
if ($config['journal_upload_file'] == 1 || is_admin(array(101))) {
$form = new cmsForm(gen_uri('edit', $id, 'rnd=' . $_SESSION['token']), 'post');
$form->addFile('- Прикрепить файл:', 'loadfile');
echo $form->Submit('Загрузить', 'upload');
unset($form);
echo '<div class="b">';
echo 'Разрешается добавлять файлы с расширением ' . str_replace(',', ', ', $config['journal_ext_file']) . '<br />';
echo 'Весом не более ' . size($config['journal_file_size']) . '<br /></div>';
}
echo '<div class="b">' . icon('error.gif', 'icons');
echo ' <a href="?del=' . $id . '&rnd=' . $_SESSION['token'] . '" onclick="return confirm('Вы действительно хотите удалить данную статью?')">Удалить публикацию</a><br /></div>';
echo '<div class="b">' . icon('return.png');
echo ' <a href="' . gen_uri('post', $id, RND) . '">Назад</a> |';
echo ' <a href="' . gen_uri('index', '', RND) . '">Журнал</a> |';
echo ' <a href="' . gen_uri('category', '', RND) . '">Категории</a> |';
echo ' <a href="' . gen_uri('top', '', RND) . '">Топ статей</a> |';
echo ' <a href="' . gen_uri('search', '', RND) . '">Поиск</a><br /></div>';
}
else {
$inSes->addMessage('Ошибка! Изменение невозможно, вы не автор данной публикации!');
gen_red('post', $row['journal_id'], RND);
}
}
else {
$inSes->addMessage('Ошибка! Данной публикации не существует!');
gen_red('index', '', RND);
}
}
else {
$inSes->addMessage('Ошибка! Вы не авторизованы!');
redirect( $config['site_url'] . DS . gen_uri('login', '', RND) );
}
?>