Файл: CMS/core/modules/board_edit.php
Строк: 158
<?php
if (!defined('CMS')) { die('Access Denied!'); }
$config['board_moder'] = !empty($config['board_moder']) ? num($config['board_moder']) : 0;
if ($is_logged) {
$error = '';
$row = array();
$row = $db->selectRow("SELECT ?_board_posts.*, ?_board_category.*
FROM ?_board_posts LEFT JOIN ?_board_category
ON ?_board_posts.`board_cats_id` = ?_board_category.`cats_id`
WHERE ?_board_posts.`board_id` = ? LIMIT 1;", $id);
if (!empty($row)) {
if ($row['board_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']) : '';
$contatcs = !empty($_POST['contatcs']) ? check($_POST['contatcs']) : '';
if (!empty($_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {
if (!empty($cid)) {
if (cms_strlen($title) >= 5 && cms_strlen($title) <= 100) {
if (cms_strlen($text) >= $config['board_min_text'] && cms_strlen($text) <= $config['board_max_text']) {
if (array_key_exists($cid,$categories)) {
$text = antimat($text);
$text = smiles($text);
// Обновление счетчиков
if ($row['board_cats_id'] != $cid) {
$db->query("UPDATE ?_comments SET `comm_cats` = ? WHERE `comm_post` = ? AND `comm_type` = 'board';", $cid, $id);
$db->query("UPDATE ?_board_category SET `cats_count` = (`cats_count` + 1) WHERE `cats_id` = ?", $cid);
$db->query("UPDATE ?_board_category SET `cats_count` = (`cats_count` - 1) WHERE `cats_id` = ?", $row['board_cats_id']);
del_vars('board_categories');
}
$moders = ($config['board_moder'] == 1) ? 1 : 0;
$db->query("UPDATE ?_board_posts SET `board_cats_id` = ?, `board_title` = ?, `board_text` = ?, `board_moders` = ? WHERE `board_id` = ?;", $cid, $title, $text, $moders, $id);
$inSes->addMessage('Объявление успешно отредактировано!', 'ok');
gen_red('post', $row['board_id'], RND);
}
else $error = 'Ошибка! Выбранного раздела не существует!';
}
else $error = 'Ошибка! Слишком длинный или короткий текст статьи (от ' . $config['board_min_text'] . ' до ' . $config['board_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 (file_exists(ROOTPATH . '/upload/boards/' . $id . '.jpg')) {
unlink(ROOTPATH . '/upload/boards/' . $id . '.jpg');
}
$db->query("UPDATE ?_board_category SET `cats_count` = (`cats_count` - 1) WHERE `cats_id` = ?", $row['board_cats_id']);
$db->query("DELETE FROM ?_board_posts WHERE `board_id` = ? LIMIT 1", $id);
$db->query("OPTIMIZE TABLE ?_board_posts, ?_board_category;");
del_vars('board_categories');
$inSes->addMessage('Объявление успешно удалено!', 'ok');
gen_red('index', '', RND);
}
else $inSes->addMessage('Реферер не определен в вашем браузере. Пожалуйста, активируйте опцию передачи реферера.');
}
else $inSes->addMessage('Ошибка! Неверный идентификатор сессии, повторите действие!');
}
if (!empty($_POST['upload'])) {
if (!empty($_FILES['photo']['name'])) {
if (!empty($_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {
if (is_uploaded_file($_FILES['photo']['tmp_name'])) {
$photoname = check(strtolower($_FILES['photo']['name']));
$photosize = getimagesize($_FILES['photo']['tmp_name']);
$ext = strtolower(substr(strrchr($photoname, '.'), 1));
if ($ext == 'jpg' || $ext == 'jpeg' || $ext == 'gif' || $ext == 'png') {
if ($_FILES['photo']['size'] > 0 && $_FILES['photo']['size'] <= $config['board_max_size']) {
require_once( ENGINE . '/classes/upload.class.php' );
$handle = new upload($_FILES['photo']);
if ($handle -> uploaded) {
$handle -> file_new_name_body = $id;
$handle -> image_resize = true;
$handle -> image_ratio = true;
$handle -> image_convert = 'jpg';
$handle -> image_ratio_no_zoom_in = true;
$handle -> image_y = $config['board_screen_height'];
$handle -> image_x = $config['board_screen_width'];
$handle -> file_overwrite = true;
if (file_exists(ROOTPATH . '/upload/boards/' . $id . '.jpg')) {
unlink(ROOTPATH . '/upload/boards/' . $id . '.jpg');
}
$handle -> process( ROOTPATH . '/upload/boards/' );
if ($handle -> processed) {
$handle -> clean();
$inSes->addMessage('Фотография успешно загружена!', 'ok');
gen_red('post', $id, RND);
}
else $inSes->addMessage('Произошла Ошибка! ' . $handle -> error);
}
else $inSes->addMessage('Ошибка! Не удалось загрузить изображение!');
}
else $inSes->addMessage('Ошибка! Вес изображения должен быть не более ' . size($config['board_max_size']));
}
else $inSes->addMessage('Ошибка! Недопустимое расширение (Разрешено jpg, jpeg, gif и png)!');
}
else $inSes->addMessage('Ошибка! Не удалось загрузить изображение!');
}
else $inSes->addMessage('Ошибка! Неверный идентификатор сессии, повторите действие!');
}
else $inSes->addMessage('Ошибка! Вы не выбрали изображение!');
}
$cats = array();
$cats[0] = 'Список разделов';
foreach($categories as $key => $val) $cats[$key] = $val[0];
show_header('Редактирование ' . $row['board_title']);
if (!empty($_GET['code'])) include( MODULES_PATH . 'code.inc.php' );
else if (!empty($_GET['smiles'])) include( MODULES_PATH . 'smiles.inc.php' );
$row['board_text'] = str_ireplace(array('<br>','<br/>','<br />'), "n", nosmiles($row['board_text']));
$form = new cmsForm(gen_uri('edit', $id, 'rnd=' . $_SESSION['token']), 'post', ' name="form" id="edit"');
$form->addText(blink('*') . ' Заголовок:', 'title', $row['board_title'], ' style="width:98%;" maxlength="100"');
$form->addSelect(blink('*') . ' Категория:', 'cid', num($row['board_cats_id']), $cats);
$form->addCode(blink('*') . ' Текст объявления: ');
$form->addCode('<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['board_text'], ' id="msg" style="width:98%;"');
$form->addTextarea('Контакты: адрес, телефон, факс и т.д.', 'contatcs', $row['board_contacts'], ' style="width:98%;"');
echo $form->Submit('Изменить', 'submit');
unset($form);
if ($config['board_moder'] == 1) {
echo '<div class="b"><span class="blink">Обратите внимание</span>: ';
echo 'включена проверка публикуемых объявлений, Ваше объявление будет опубликовано сразу после проверки модератором.</div>';
}
$form = new cmsForm(gen_uri('edit', $id, 'rnd=' . $_SESSION['token']), 'post');
$form->addFile('- Прикрепить изображение:', 'photo');
echo $form->Submit('Загрузить', 'upload');
unset($form);
echo '<div class="b">';
echo 'Разрешается добавлять файлы с расширением: jpg, gif, png.<br />';
echo 'Весом не более ' . size($config['board_max_size']) . '<br /></div>';
echo '<div class="b">' . icon('error.gif', 'icons');
echo ' <a href="' . gen_uri('edit', $id, 'del=1&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('category', $row['board_cats_id'], RND) . '">' . $row['cats_name'] . '</a> |';
echo ' <a href="' . gen_uri('index', '', RND) . '">Объявления</a> |';
echo ' <a href="' . gen_uri('search', '', RND) . '">Поиск</a><br /></div>';
}
else {
$inSes->addMessage('Ошибка! Изменение невозможно, вы не автор данного объявления!');
gen_red('post', $row['board_id'], RND);
}
}
else {
$inSes->addMessage('Ошибка! Данного объявления не существует!');
gen_red('index', '', RND);
}
}
else {
$inSes->addMessage('Ошибка! Вы не авторизованы!');
redirect( $config['site_url'] . DS . gen_uri('login', '', RND) );
}
?>