Вход Регистрация
Файл: CMS/core/admin/news.php
Строк: 206
<?php

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

if (
is_admin(array(101102))) {

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

        
$del intar($_POST['del']);

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

            
$del is_array($del) ? $del : array($del);
            
$del implode(','$del);
            
$db->query("DELETE FROM ?_news WHERE `news_id` IN (" $del ");");
            
$db->query("DELETE FROM ?_comments WHERE `comm_post` IN (" $del ") AND `comm_type` = 'news';");
            
$db->query("OPTIMIZE TABLE ?_news, ?_comments");
            
$inSes->addMessage('Выбранные новости успешно удалены!''ok');
        }
        else 
$inSes->addMessage'Ошибка! Неверный идентификатор сессии, повторите действие!');
    }

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

        if (
is_admin(array(101))) {

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

                
$db->query("UPDATE ?_news SET `news_comments` = (SELECT COUNT(*) FROM ?_comments WHERE ?_news.`news_id` = ?_comments.`comm_post` AND `comm_type` = 'news');");

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

    switch(
$mod):
    default:

        
show_header('Управление новостями');

        
$onpage = !empty($config['post_num']) ? num($config['post_num']) : 10;

        if (
$page 1$from = ($page 1) * $onpage; else $from 0;

        
$rows $db->selectPage($total"SELECT * FROM ?_news ORDER BY `news_id` DESC LIMIT ?d, ?d"$from$onpage);

        if (!empty(
$rows) && $total 0) {

            echo 
'<form action="?m=news&amp;page=' $page '&amp;rnd=' $_SESSION['token'] . '" method="post" name="news">';

            foreach(
$rows as $row) {

                
$nid num($row['news_id']);

                
$icon = ($row['news_closed'] == 0) ? icon('document_plus.gif') . ' ' icon('document_minus.gif') . ' ';

                echo 
'<div class="b">';
                echo 
'<a href="/news/' gen_uri('news'$nid) . '">' $row['news_title'] . '</a> ';
                echo 
'(<small>' get_date($row['news_time']) . '</small>)<br />';
                echo 
format_text($row['news_text'], 0$config['substr_text'], 'UTF-8') . '<br />';

                echo 
'Разместил: <b>' users_anketa($row['news_author']) . '</b> / ';
                echo 
'<a href="../news/' gen_uri('comments'$nid) . '">Комментарии</a> (' $row['news_comments'] . ')<br />';
                echo 
'<input type="checkbox" name="del[]" value="' $nid '" /> ';
                echo 
'<a href="?m=edit_news&amp;id=' $nid '&amp;page=' $page '">Редактировать</a><br />';
                echo 
'</div>';
            }

            echo 
'<div class="b">';
            echo 
'<input type="checkbox" name="master_box" title="Отметить всё" onclick="javascript:ckeck_uncheck_all()">';
            echo 
'<input type="submit" class="btns" value="Удалить выбранное" /></div></form>';

            echo 
show_pages('?');

            echo 
'<div class="b">Всего новостей: <b>' num($total) . '</b><br /></div>';
        }
        else {

            
show_error('Новостей еще нет!');
        }

        echo 
'<div class="b">' icon('add.png') . ' <a href="?m=add_news">Добавить</a><br /></div>';

        if (
is_admin(array(101))) {

            echo 
'<div class="b">' icon('mail.png');
            echo 
' <a href="?m=news&amp;restatement=1&amp;rnd=' $_SESSION['token'] . '">Пересчитать</a><br /></div>';
        }

        echo <<<JSCRIPT

<script language='JavaScript' type="text/javascript">
<!--
function ckeck_uncheck_all() {
    var frm = document.news;
    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;

    break;
    case 
'edit_news':

      
$row $db->selectRow"SELECT * FROM ?_news WHERE `news_id` = ? LIMIT 1;"$id );

      if (!empty(
$row)) {

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

            
$title  = !empty($_POST['title'])  ? check($_POST['title']) : '';
            
$text   = !empty($_POST['text'])   ? check($_POST['text'])  : '';
            
$closed = !empty($_POST['closed']) ? 0;

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

                if (
cms_strlen($title) >= && cms_strlen($title) < 100) {

                    if (
cms_strlen($text) >= && cms_strlen($text) < 10000) {

                        
$text smiles($text);

                        
$db->query("UPDATE ?_news SET `news_title` = ?, `news_text` = ?, `news_closed` = ?
                                    WHERE `news_id` = ?"
$title$text$closed$id );

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

                        
redirect('?m=news&' RND);
                    }
                    else 
$inSes->addMessage('Ошибка! Слишком длинный или короткий текст новости!');
                }
                else 
$inSes->addMessage('Ошибка! Слишком длинный или короткий заголовок новости!');
            }
            else 
$inSes->addMessage('Ошибка! Неверный идентификатор сессии, повторите действие!');
        }

        
show_header('Управление новостями');
        
$row['news_text'] = nosmiles($row['news_text']);
        
$row['news_text'] = str_replace(array('<br>','<br/>','<br />'), "n"$row['news_text']);
        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=edit_news&amp;id=' $id '&amp;rnd=' $_SESSION['token'], 'post'' name="form" id="form"');
        
$form->addText('Заголовок новости:''title'$row['news_title'], ' size="50"');
        
$form->addCode('Новость: <small>[<a href="?m=edit_news&amp;id=' $id '&amp;smiles=1">Смайлы</a>] ');
        
$form->addCode('[<a href="?m=edit_news&amp;id=' $id '&amp;code=1">ББ-коды</a>]</small>');
        
$form->addCode(' [<a href="#form" onclick="document.form.msg.rows += 5;">+</a>]');
        
$form->addCode(' [<a href="#form" onclick="document.form.msg.rows -= 5;">-</a>]');

        
$form->addTextarea('''text'$row['news_text'], ' id="msg" style="width:98%;"');
        
$form->addCheckbox(array(''' Закрыть комментарии'), 'closed'1$row['news_closed']);
        echo 
$form->Submit('Изменить''submit');
        unset(
$form);
        echo 
'<div class="b"> ' icon('return.png');
        echo 
' <a href="?m=news&amp;page=' $page '">Вернуться</a><br /></div>';
      }
      else {

          
$inSes->addMessage('Ошибка! Выбранная новость не существует, возможно она была удалена!');
          
redirect('?m=news&' RND);
      }

    break;
    case 
'add_news':

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

            
$msg    = !empty($_POST['text'])   ? check($_POST['text'])  : '';
            
$title  = !empty($_POST['title'])  ? check($_POST['title']) : '';
            
$closed = !empty($_POST['closed']) ? 0;

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

                if (
cms_strlen(trim($title)) >= && cms_strlen($title) < 100) {

                    if (
cms_strlen(trim($msg)) >= && cms_strlen($msg) < 10000) {

                        
$msg smiles($msg);

                        
$db->query("INSERT INTO ?_news (`news_title`, `news_text`, `news_author`, `news_time`, `news_comments`, `news_closed`)
                                    VALUES (?, ?, ?, ?, ?, ?);"
$title$msg$logSITE_TIME0$closed);

                        
$inSes->addMessage'Новость успешно добавлена!''ok' );

                        
redirect('?m=news&' RND);
                    }
                    else 
$inSes->addMessage'Ошибка! Слишком длинный или короткий текст новости!');
                }
                else 
$inSes->addMessage'Ошибка! Слишком длинный или короткий заголовок новости!');
            }
            else 
$inSes->addMessage'Ошибка! Неверный идентификатор сессии, повторите действие!');
        }

        
show_header('Создание новости');
        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=add_news&amp;rnd=' $_SESSION['token'], 'post'' name="form" id="form"');
        
$form->addText('Заголовок новости:''title'request('title'), ' size="50"');
        
$form->addCode(blink('*') . ' Новость: <small>[<a href="?m=add_news&amp;smiles=1">Смайлы</a>] ');
        
$form->addCode('[<a href="?m=add_news&amp;code=1">ББ-коды</a>]</small>');
        
$form->addCode(' [<a href="#form" onclick="document.form.msg.rows += 5;">+</a>]');
        
$form->addCode(' [<a href="#form" onclick="document.form.msg.rows -= 5;">-</a>]');
        
$form->addTextarea('''text'request('text'), ' id="msg" style="width:98%;"');
        
$form->addCheckbox(array(''' Закрыть комментарии'), 'closed');
        echo 
$form->Submit('Добавить''submit');
        unset(
$form);
        echo 
'<div class="b">' icon('return.png') . ' <a href="?m=news&' RND '">Вернуться</a><br /></div>';

    break;

    endswitch;

    echo 
'<div class="b">' icon('return.png') . ' <a href="?' RND '">В админку</a><br /></div>';

    
show_footer();
}
else {

    
redirect('/?' RND);
}

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