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

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

# Функция проверки возраста 18+
function show_xxx_form($back_id '') {

    global 
$id$config;

    if (empty(
$_SESSION['xxx']) || !isset($_SESSION['xxx'])) {

        if (!empty(
$_POST['xxx_code']) && $_POST['xxx_code'] == $_SESSION['captcha_key']) {

            
$_SESSION['xxx'] = $_POST['xxx_code'];
        }
        else {

            
$config['blog_warning'] = str_replace('{SITE_NAME}'$config['site_name'], $config['blog_warning']);
            
$form = new cmsForm();
            
$form->addCaptcha($config['blog_warning'],'xxx_code');
            echo 
$form->Submit('согласен');
            echo 
'<div class="b">';
            echo 
icon('return.png') . ' <a href="' gen_uri('index'$back_idRND) . '">Назад</a><br />';
            echo 
'</div>';
            
show_footer();
            die;
        }
    }
}

if (!empty(
$id)) {

    
$parse parse_url($_SERVER['REQUEST_URI']);

    
$blogs $db->selectRow("SELECT `p`.*, `c`.`cats_id`, `c`.`cats_name`,
                            (SELECT COUNT(1) FROM ?_users_bookmarks WHERE `book_path` = ?) AS `bookmarks`
                             FROM ?_blog_posts `p` LEFT JOIN ?_blog_category `c` 
                             ON `p`.`blog_cats_id` = `c`.`cats_id`
                             WHERE `p`.`blog_id` = ? LIMIT 1;"
$parse['path'], $id);

    if (!empty(
$blogs)) {

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

            
$vote check($_GET['vote']);

            if (
$is_logged) {

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

                    if (
$vote == 'up' || $vote == 'down') {

                        
$score = ($vote == 'up') ? : -1;

                        if (
$log != $blogs['blog_user']) {

                            
$is_rated = (int) $db->selectCell("SELECT `rated_id` FROM ?_blog_rated 
                                                               WHERE `rated_blog` = ? AND `rated_user` = ? LIMIT 1;"
$id$log);

                            if (
$is_rated 1) {

                                
$expiresrated SITE_TIME 3600 $config['blog_exp_rated'];

                                
$db->query("DELETE FROM ?_blog_rated WHERE `rated_time` < ?;"SITE_TIME);

                                
$db->query("INSERT INTO ?_blog_rated (`rated_blog`, `rated_user`, `rated_time`) 
                                            VALUES (?, ?, ?);"
$id$log$expiresrated);

                                
$db->query("UPDATE ?_blog_posts SET `blog_rating` = (`blog_rating` + ?) WHERE `blog_id` = ?;"$score$id);

                                
$inSes->addMessage('Ваша оценка принята! Рейтинг статьи: ' format_num($blogs['blog_rating'] + $score), 'ok');
                            }
                            else 
$inSes->addMessage('Ошибка! Вы уже оценивали данную статью!');
                        }
                        else 
$inSes->addMessage('Ошибка! Вы не можете оценивать свою публикацию!');
                    }
                    else 
$inSes->addMessage('Ошибка! Необходимо проголосовать за или против статьи!');
                }
                else 
$inSes->addMessage('Ошибка! Неверный идентификатор сессии, повторите действие!');
           }
           else 
$inSes->addMessage('Ошибка! Голосовать за публикации, могут только обитатели сайта!');

           
gen_red('post'$idRND);
        }

        if (
$is_logged) {

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

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

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

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

                if (
is_quarantine($log)) {

                  if (
is_flood($log)) {

                      
$msg  antimat($msg);
                      
$msg  smiles($msg);
                      
$date date('Y-m-d H:i:s'SITE_TIME);

                      
$db->query("INSERT INTO ?_comments SET `comm_post` = ?, `comm_text` = ?, `comm_author` = ?, `comm_type` = 'blog', `comm_date` = ?, `comm_ip` = ?, `comm_ua` = ?"$id$msg$log$date$ip$brow);

                      
$db->query("UPDATE ?_blog_posts SET `blog_comments` = (`blog_comments` + 1) WHERE `blog_id` = ?;"$id);

                      
$db->query("UPDATE ?_users SET `users_allcomments` = (`users_allcomments` + 1), `users_point` = (`users_point` + ?), `users_money` = (`users_money` + ?) WHERE `users_login` = ?"$config['comm_add_point'], $config['comm_add_money'], $log);

                      
$inSes->addMessage('Комментарий успешно добавлен!''ok');

                      
gen_red('post'$idRND);

                  }
                  else 
$inSes->addMessage('Антифлуд! Разрешается отправлять сообщения раз в ' flood_period() . ' секунд!');
                }
                else 
$inSes->addMessage('Карантин! Вы не можете писать в течении ' round($config['karantin'] / 3600) . ' часов!');
              }
              else 
$inSes->addMessage('Ошибка! Слишком длинное или короткое сообщение!');
            }
            else 
$inSes->addMessage('Ошибка! Неверный идентификатор сессии, повторите действие!');
          }

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

            if (
is_admin()) {

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

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

                if (!empty(
$del)) {

                    
$del is_array($del) ? $del : array($del);

                    
$del implode(','$del);

                    
$delcom = (int) $db->query("DELETE FROM ?_comments WHERE `comm_type` = 'blog' 
                                                AND `comm_id` IN (" 
$del ") AND `comm_post` = ?"$id);

                    
$db->query("UPDATE ?_blog_posts SET `blog_comments` = (`blog_comments` - ?) WHERE `blog_id` = ?;",$delcom$id);

                    
$inSes->addMessage('Выбранные комментарии успешно удалены!''ok');

                    
gen_red('post'$idRND);

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

        
show_header($blogs['blog_title'], $blogs['blog_text'], $blogs['blog_text']);

        if (!empty(
$blogs['blog_is_xxx'])) show_xxx_form();

        if ( empty(
$_SESSION['view'][$id]) ) {

            
$db->query"UPDATE ?_blog_posts SET `blog_read` = (`blog_read` + 1) WHERE `blog_id` = ?"$id );
        }
        
$_SESSION['view'][$id] = 1;

        echo 
'<div class="b">' icon('myblog.png''icons');
        echo 
'<a href="' gen_uri('index'''RND) . '">Блоги</a> | ';
        echo 
'<a href="' gen_uri('category'$blogs['cats_id'], RND) . '">' $blogs['cats_name'] . '</a>';

        if (
$is_logged && $blogs['blog_user'] == $log) {

            echo 
' | <a href="' gen_uri('edit'$idRND) . '">Изменить</a>';
        }
        echo 
'<div class="imgrss">';
        echo 
'<a href="' gen_uri('print'$idRND) . '">' icon('printer.png') . '</a> &nbsp;</div>';
        echo 
'</div>';

        if (
is_admin()) {

            echo 
'<div class="b">' icon('edit.png''icons');
            echo 
'<a href="' gen_admin('?m=blog_edit&amp;id=' $id '&amp;' RND) . '">Редактировать</a> | ';
            echo 
'<a href="' gen_admin('?m=blog&amp;del_post=' $id '&amp;rnd=' $_SESSION['token']) . '" onclick="return confirm('Вы действительно хотите удалить данную статью?')">Удалить</a></div>';
        }

        echo 
'<div class="b">' nl2br(bb_code($blogs['blog_text'])) . '</div>';

        
$files $db->select("SELECT * FROM ?_blog_files WHERE `files_post` = ? ORDER BY `files_id` ASC"$id );
        
        if (!empty(
$files)) {

            echo 
'<div class="b">Прикрепленные файлы:<br />';
            
$c 1;
            foreach(
$files as $file) {

                echo 
$c++ . '. <a href="' gen_uri('download'$file['files_id']) . '">' $file['files_name'] . '</a><br />';

                if ((
$is_logged && $blogs['blog_user'] == $log) || is_admin()) {

                    echo 
'<div class="text">
                    - Скачано: <b>' 
intval($file['files_count']) . '</b><br />
                    - Размер: ' 
size($file['files_size']) . '<br />
                    - <a href="' 
gen_uri('del_file'num($file['files_id']), 'rnd=' $_SESSION['token']) . '">Удалить</a>
                    <br /></div>'
;
                }
            }
            echo 
'</div>';
        }

        echo 
'<div class="b">- Рейтинг: ';
        echo 
'<a href="' gen_uri('post'$id'vote=down&amp;rnd=' $_SESSION['token'] . '&amp;' RND) . '" title="Минус"><img src="/images/icons/1_14_down.png" class="icon" alt="Минус" /></a> <big><b>' format_num($blogs['blog_rating']) . '</b></big> <a href="' gen_uri('post'$id'vote=down&amp;rnd=' $_SESSION['token'] . '&amp;' RND) . '" title="Плюс"><img src="/images/icons/1_14_up.png" class="icon" alt="Плюс" /></a><br />';
        echo 
'- Автор статьи: ' users_anketa($blogs['blog_user']) . '<br />';
        echo 
'- Опубликована: ' get_date($blogs['blog_time']) . '<br />';
        echo 
'- Просмотров: '.$blogs['blog_read'].'<br />';
        echo 
'</div>';
        echo 
show_bookmarks($blogs['blog_title'], ''$blogs['bookmarks']);
/*
        if ($config['share_links'] == 1) echo '<div class="b"><script type="text/javascript" src="//yandex.st/share/share.js" charset="utf-8"></script><div class="yashare-auto-init" data-yashareL10n="ru" data-yashareType="button" data-yashareQuickServices="yaru,vkontakte,facebook,twitter,odnoklassniki,moimir,lj,moikrug"></div></div>';

*/

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

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

        
$_SESSION[SP]['comm'] = !empty($_SESSION[SP]['comm']) ? num($_SESSION[SP]['comm']) : 1;

        
$_SESSION[SP]['comm'] = (!empty($_GET['sort']) && in_array($_GET['sort'],array(1,2))) ? num($_GET['sort']) : num($_SESSION[SP]['comm']);

        
$order = ($_SESSION[SP]['comm'] == 1) ? 'DESC' 'ASC';

        
$coms $db->selectPage$total"SELECT `c`.*, `v`.`visit_nowtime`, `u`.`users_gender`
                                          FROM ?_comments `c` 
                                          LEFT JOIN ?_users_visit `v`
                                          ON `c`.`comm_author` = `v`.`visit_user`
                                          LEFT JOIN ?_users `u`
                                          ON `c`.`comm_author` = `u`.`users_login`
                                          WHERE `c`.`comm_type` = 'blog' AND `c`.`comm_post` = ? 
                                          ORDER BY `c`.`comm_date` " 
$order 
                                          LIMIT ?d, ?d"
$id$from$onpage );


        echo 
'<div class="b">' icon('comment.png''icons');
        echo 
'<span id="comm"><b>Комментарии</b> (' num($total) . ')</span><br />';
        echo 
'Показывать новые: ';
        if (
$_SESSION[SP]['comm'] == 1) echo '<a href="' gen_uri('post'$id'sort=2&amp;' RND) . '">вверху</a> | <b>внизу</b>';
        else echo 
'<b>вверху</b> | <a href="' gen_uri('post'$id'sort=1&amp;' RND) . '">внизу</a>';    
        echo 
'</div>';


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

            if (
is_admin()) {

                echo 
'<form action="' gen_uri('post'$id'rnd=' $_SESSION['token'] . '&amp;' RND) . '" method="post" name="post">';
            }
            
$i $from 1;
            foreach(
$coms as $com) {

                
$cid num($com['comm_id']);

                echo 
'<div class="b">';
                echo 
'<div class="img">' $i++ .  '. ' user_visit_icon($com['comm_author'], $com['users_gender'], $com['visit_nowtime']) . '</div>'
                echo 
'<b>' users_anketa($com['comm_author']) . '</b>';
                echo 
'<div class="right"> (' get_date(strtotime($com['comm_date'])) . ')</div><br />';
                echo 
nl2br(bb_code($com['comm_text'])) . '<br />';

                if (
is_admin()) {

                    echo 
'<input type="checkbox" name="del[]" value="' $cid '" />';
                }
                if (!empty(
$config['anonymity'])) {
                
                    echo 
'<span class="data">(' $com['comm_ua'] . ', ' $com['comm_ip'] . ')</span>';
                }
                echo 
'</div>';
            }

            echo 
show_pages(gen_uri('post'$idRND));

           if (
is_admin()) {

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

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

JSCRIPT;
           }
        }

        if (
$is_logged) {

            
$form = new cmsForm(gen_uri('post'$id'rnd=' $_SESSION['token']), 'post');
            
$form->addTextarea('Напишите комментарий:''text'request('text'));
            echo 
$form->Submit('Добавить''submit');
            unset(
$form);
        }
        else {

            
show_login('Вы не авторизованы, для комментирования, необходимо');
        }
        echo 
'<div class="b">' icon('return.png');
        echo 
' <a href="' gen_uri('category'$blogs['cats_id'], RND) . '">Назад</a><br /></div>';

    }
    else {

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

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

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