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

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

if (
is_admin(array(101, 102))) {

    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']) ? 1 : 0;

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

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

                    if (
cms_strlen($text) >= 3 && 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']) ? 1 : 0;

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

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

                    if (
cms_strlen(trim($msg)) >= 5 && 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, $log, SITE_TIME, 0, $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
Реклама