Вход Регистрация
Файл: core/modules/blog_edit.php
Строк: 144
<?php

if (!defined('CMS')) { die('Access Denied!'); }

if (!
$is_logged) {

    
$inSes->addMessage('Ошибка! Вы не авторизованы!');
    
redirect($config['site_url'] . DS . gen_uri('login', '', RND));
}

$row = array();
$row = $db->selectRow("SELECT * FROM ?_blog_posts WHERE `blog_id` = ? LIMIT 1;", $id);

if (empty(
$row)) {

    
$inSes->addMessage('Ошибка! Данной статьи не существует!');
    
gen_red('index', '', RND);
}

if (
$row['blog_user'] != $log && !$is_admin) {

    
$inSes->addMessage('Ошибка! Изменение невозможно, вы не автор данной статьи!');
    
gen_red('post', $row['blog_id'], RND);
}

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'])  : '';
    
$xxx   = !empty($_POST['xxx'])   ? 1 : 0;

    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['blog_min_text'] && cms_strlen($text) <= $config['blog_max_text']) {

            if (
array_key_exists($cid, $categories)) {

                
$text = antimat($text);
                
$text = smiles($text);

                
// Обновление счетчиков
                
if ($row['blog_cats_id'] != $cid) {

                    
$db->query("UPDATE ?_comments SET `comm_cats` = ? WHERE `comm_post` = ? AND `comm_type` = 'blog';", $cid, $id);

                    
$db->query("UPDATE ?_blog_category SET `cats_count` = (`cats_count` + 1) WHERE `cats_id` = ?", $cid);

                    
$db->query("UPDATE ?_blog_category SET `cats_count` = (`cats_count` - 1) WHERE `cats_id` = ?", $row['blog_cats_id']);

                    
del_vars('blog_categories');
                }

                
$moders = ($config['blog_moder'] == 1) ? 1 : 0;

                
$db->query("UPDATE ?_blog_posts SET `blog_cats_id` = ?, `blog_title` = ?, `blog_text` = ?, `blog_moders` = ?, `blog_is_xxx` = ? WHERE `blog_id` = ?;", $cid, $title, $text, $moders, $xxx, $id);

                
$inSes->addMessage('Статья успешно отредактирована!', 'ok');

                
gen_red('post', $row['blog_id'], RND);
            }
            else 
$inSes->addMessage('Ошибка! Выбранного раздела не существует!');
          }
          else 
$inSes->addMessage('Ошибка! Слишком длинный или короткий текст статьи (от ' . $config['blog_min_text'] . ' до ' . $config['blog_max_text'] . ' символов)!');
        }
        else 
$inSes->addMessage('Ошибка! Слишком длинный или короткий заголовок (от 5 до 100 символов)!');
      }
      else 
$inSes->addMessage('Ошибка! Вы не выбрали категорию для добавления статьи!');
    }
    else 
$inSes->addMessage('Ошибка! Неверный идентификатор сессии, повторите действие!');
}

if (!empty(
$_GET['del'])) {

  if (!empty(
$_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {

    if ( 
check_referer() ) {

      if (empty(
$row['blog_comments'])) {

          
$files = array();
          
$files = $db->select("SELECT * FROM ?_blog_files WHERE `files_post` = ?", $id);

          if (!empty(
$files) && count($files) > 0) {

              foreach (
$files as $numFile => $file) {

                  
$fname = $id . '_' . $file['files_name'];

                  if ( @
file_exists( ROOTPATH . '/upload/blogs/' . $fname ) ) {

                      @
chmod( ROOTPATH . '/upload/blogs/' . $fname, 0777 );

                      
unlink( ROOTPATH . '/upload/blogs/' . $fname );
                  }
              }
          }

          
$db->query("UPDATE ?_blog_category SET `cats_count` = (`cats_count` - 1) WHERE `cats_id` = ?", $row['blog_cats_id']);

          
//$db->query("DELETE FROM ?_comments WHERE `comm_post` = ? AND `comm_type` = 'blog';", $id);

          
$db->query("DELETE FROM ?_blog_files WHERE `files_post` = ?", $id);

          
$db->query("DELETE FROM ?_blog_rated WHERE `rated_blog` = ?", $id);

          
$db->query("DELETE FROM ?_blog_posts WHERE `blog_id` = ? LIMIT 1", $id);

          
$db->query("OPTIMIZE TABLE ?_blog_posts, ?_blog_category, ?_blog_files, ?_blog_rated");

          
$inSes->addMessage('Статья успешно удалена!', 'ok');

          
gen_red('index', '', RND);

      }
      else 
$inSes->addMessage('Ошибка! Запрещено удалять статьи к которым имеются комментарии!');
    }
    else 
$inSes->addMessage('Реферер не определен в вашем браузере. Пожалуйста, активируйте опцию передачи реферера.');
  }
  else 
$inSes->addMessage('Ошибка! Неверный идентификатор сессии, повторите действие!');
}

if (!empty(
$_POST['upload'])) {

  if (!empty(
$_GET['rnd']) && $_GET['rnd'] == $_SESSION['token']) {

    if (
$config['blog_upload_file'] > 0 || is_admin(array(101))) {

      
$count = (int) $db->selectCell("SELECT COUNT(`files_id`) FROM ?_blog_files WHERE `files_post` = ? LIMIT 1;", $id);

      if (
$count <= $config['blog_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['blog_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['blog_file_size']) {

                    
$files_path = ROOTPATH . '/upload/blogs/' . $id . '_' . $filename;

                    if (!
file_exists($files_path)) {

                        
move_uploaded_file($_FILES['loadfile']['tmp_name'], $files_path);

                        @
chmod($files_path, 0644);

                        
$db->query("INSERT INTO ?_blog_files
                                    SET `files_post` = ?, `files_name` = ?, `files_size` = ?"
, $id, $filename, $_FILES['loadfile']['size']);

                        
$inSes->addMessage('Файл успешно загружен!', 'ok');

                        
gen_red('post', $row['blog_id'], RND);
                    }
                    else 
$inSes->addMessage('Ошибка! Файл ' . $filename . ' уже прикреплён к посту!');
                  }
                  else 
$inSes->addMessage('Ошибка! Максимальный размер загружаемого файла ' . size($config['blog_photos_max_weight']) . '!');
                }
                else 
$inSes->addMessage('Ошибка! В названии файла присутствуют недопустимые расширения!');
              }
              else 
$inSes->addMessage('Ошибка! Недопустимое расширение файла!');
            }
            else 
$inSes->addMessage('Ошибка! В названии файла присутствуют недопустимые символы!');
          }
          else 
$inSes->addMessage('Ошибка! Слишком длинное имя файла (не более 50 символов)!');
        }
        else 
$inSes->addMessage('Ошибка! Не удалось загрузить файл!');
      }
      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['blog_title']);

if (!empty(
$_GET['code'])) include( MODULES_PATH . 'code.inc.php' );
else if (!empty(
$_GET['smiles'])) include( MODULES_PATH . 'smiles.inc.php' );
$row['blog_text'] = str_ireplace(array('<br>','<br/>','<br />'), "n", nosmiles($row['blog_text']));
$form = new cmsForm(gen_uri('edit', $id, 'rnd=' . $_SESSION['token']), 'post', ' name="form" id="edit"');
$form->addSelect('Категория:', 'cid', num($row['blog_cats_id']), $cats);
$form->addText('Заголовок:', 'title', $row['blog_title'], ' style="width:100%;" maxlength="100"');
$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['blog_text'], ' id="msg"');
//$form->addCheckBox(array('', ' Для взрослых'), 'xxx', $row['blog_is_xxx']);
echo $form->Submit('Изменить', 'submit');
unset(
$form);

if (
$config['blog_moder'] == 1) {

    
show_error('<span class="blink">Обратите внимание</span>: включена проверка публикуемых статей, Ваша статья будет опубликована сразу после проверки модератором.');
}

if (
$config['blog_upload_file'] > 0 || 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="bl">';
    echo 
'Разрешается добавлять файлы с расширением ' . str_replace(',', ', ', $config['blog_ext_file']) . '<br />';
    echo 
'Весом не более ' . size($config['blog_file_size']) . '</div>';
}

echo 
'<div class="link"><a href="?del=' . $id . '&amp;rnd=' . $_SESSION['token'] . '" onclick="return confirm('Вы действительно хотите удалить данную статью?')">Удалить публикацию</a></div>';

echo 
'<div class="blocks"><table><tr>';
echo 
'<td class="w25"><a href="' . gen_uri('post', $id, RND) . '">Назад</a></td>';
echo 
'<td class="w25"><a href="' . gen_uri('search', '', RND) . '">Поиск</a></td>';
echo 
'<td class="w25"><a href="' . gen_uri('top', '', RND) . '">Топ статей</a></td>';
echo 
'<td class="w25"><a href="' . gen_uri('category', '', RND) . '">Категории</a></td></tr></table></div>';

?>
Онлайн: 0
Реклама