Вход Регистрация
Файл: core/modules/blog_post.php
Строк: 209
<?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('согласен');
            unset(
$form);
            echo 
show_link(gen_uri('index', $back_id, RND), 'Назад');
            
show_footer();
            die;
        }
    }
}

if (empty(
$id) || $id < 1) {

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

$blogs = array();
$blogs = $db->selectRow("SELECT `p`.*, `c`.`cats_id`, `c`.`cats_name`, `u`.`users_id` AS `uid`
                         FROM ?_blog_posts `p`
                         LEFT JOIN ?_blog_category `c` 
                         ON `p`.`blog_cats_id` = `c`.`cats_id`
                         LEFT JOIN ?_users `u` 
                         ON `p`.`blog_user` = `u`.`users_login`
                         WHERE `p`.`blog_id` = ? LIMIT 1;"
, $id);

if (empty(
$blogs)) {

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

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 : -1;

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

            
$is_rated = 0;
            
$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', $id, RND);
}

if (
$is_logged) {

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

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

        
$_SESSION[SP]['crc32'] = !empty($_SESSION[SP]['crc32']) ? $_SESSION[SP]['crc32'] : NULL;

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

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

            if ( 
crc32($text) <> $_SESSION[SP]['crc32'] ) {

              if (
is_flood($log)) {

                  
$_SESSION[SP]['crc32'] = crc32($text);

                  
$text = antimat($text);
                  
$text = smiles($text);
                  
$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, $text, $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', $id, RND);

              }
              else 
$inSes->addMessage('Антифлуд! Разрешается отправлять сообщения раз в ' . flood_period() . ' секунд!');
            }
            else 
$inSes->addMessage('Ошибка! Ваш комментарий <u>уже был</u> успешно добавлен!');
          }
          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', $id, RND);

            }
            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 
show_link(gen_uri('category', $blogs['cats_id'], RND), $blogs['cats_name']);

    if (
$is_admin) {

        echo 
'<div class="blocks"><table><tr>';
        echo 
'<td class="w50"><a href="' . gen_uri('edit', $id, RND) . '">Редактировать</a></td>';
        echo 
'<td class="w50"><a href="' . gen_admin('?m=blog&amp;del_post=' . $id . '&amp;rnd=' . $_SESSION['token']) . '" onclick="return confirm('Вы действительно хотите удалить данную статью?')">Удалить</a></td></tr></table></div>';

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

        echo 
show_link(gen_uri('edit', $id, RND), 'Изменить');
    }

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

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

    if (!empty(
$files)) {

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

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

        
$author = users_anketa($blogs['uid'], $blogs['blog_user']);
    }
    else {

        
$author = !empty($blogs['blog_guest']) ? $config['guest_name'] . ' ' . $blogs['blog_guest'] : $config['guest_name'];
    }

    echo 
'<div class="bl">Рейтинг: ';
    echo 
'<a href="' . gen_uri('post', $id, 'vote=down&amp;rnd=' . $_SESSION['token'] . '&amp;' . RND) . '" title="Минус"><img src="/images/icons/down.gif" class="ico" 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/up.gif" class="ico" alt="Плюс" /></a><br />';
    echo 
'Автор статьи: ' . $author . '<br />';
    echo 
'Опубликована: ' . get_date($blogs['blog_time']) . '<br />';
    echo 
'Просмотров: '.$blogs['blog_read'].'<br />';
    echo 
'</div>';

    if (
$config['share_links'] == 1) echo '<div class="bl"><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 = array();
    
$coms = $db->selectPage($total, "SELECT `c`.*, `v`.`visit_nowtime`, `u`.`users_id`, `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="bl">';
    echo 
'<span id="comm"><b>Комментарии</b> (' . num($total) . ')</span><br />';
    echo 
'Показывать новые: ';
    if (
$_SESSION[SP]['comm'] == 1) echo '<b>вверху</b> | <a href="' . gen_uri('post', $id, 'sort=2&amp;' . RND) . '">внизу</a>';
    else echo 
'<a href="' . gen_uri('post', $id, 'sort=1&amp;' . RND) . '">вверху</a> | <b>внизу</b>';     
    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 $numCom => $com) {

            echo 
'<div class="bl">';
            echo 
'<table class="w100"><tr>';
            echo 
'<td class="vhr" valign="top">' . user_avatars($com['comm_author']) . '';
            if (
$is_admin) echo '<br /><input type="checkbox" name="del[]" value="' . num($com['comm_id']) . '" />';
            echo 
'</td><td valign="top">';
            echo 
'<span class="fr xsmall">' . get_date(strtotime($com['comm_date'])) . '</span>';
            echo 
user_visit_icon($com['comm_author'], $com['users_gender'], $com['visit_nowtime']);
            echo 
' ' . users_anketa($com['users_id'], $com['comm_author']) . '<hr />';
            echo 
nl2br(bb_code($com['comm_text'])) . '</td></tr></table></div>';
        }

        echo 
show_pages(gen_uri('post', $id, RND));

        if (
$is_admin) {

            echo 
'<div class="bl">&nbsp;';
            echo 
'<input type="checkbox" name="master_box" title="Отметить всё" onclick="javascript:ckeck_uncheck_all()"> ';
            echo 
'<input type="submit" class="btns" value="Удалить выбранное" /></form></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 
show_link(gen_uri('category', $blogs['cats_id'], RND), 'Назад');

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