Вход Регистрация
Файл: usr/modules/blog/index.php
Строк: 500
<?php

/**
* @name        JMY CMS
* @link        http://jmy.su/
* @copyright   Copyright (C) 2012-2015 JMY LTD
* @license     LICENSE.txt (see attached file)
* @version     VERSION.txt (see attached file)
* @author      Komarov Ivan
* @revision       01.03.2015
*/ 


if (!defined('ACCESS')) 
{
    
header('Location: /');
    exit;
}

loadConfig('blog');

function 
menu($path '')
{
global 
$core;

        
$core->tpl->open('blog_menu');
        
$core->tpl->loadFile('blog/blog.menu');
        
$core->tpl->setVar('B_ALL', ($path == '<strong>'._BLOG_ALL.'</strong>' _BLOG_ALL));
        
$core->tpl->setVar('B_THEMES', ($path == '<strong>'._BLOG_THEME_BLOG.'</strong>' _BLOG_THEME_BLOG));
        
$core->tpl->setVar('B_PERS', ($path == '<strong>'._BLOG_PERSONAL_BLOG.'</strong>' _BLOG_PERSONAL_BLOG));
        
$core->tpl->setVar('B_LIST', ($path == '<strong>'._BLOG_LIST.'</strong>' _BLOG_LIST));
        
$core->tpl->setVar('B_WRITE', ($path == '<strong>'._BLOG_WRITE2.'</strong>' _BLOG_WRITE2));
        
$core->tpl->setVar('B_CREATE', ($path == '<strong>'._BLOG_CREATE2.'</strong>' _BLOG_CREATE2));
        
$core->tpl->setVar('B_MY', ($path == '<strong>'._BLOG_MY.'</strong>' _BLOG_MY));
        
$core->tpl->setVar('B_MY_URL''blog/user/' $core->auth->user_id);    
        
$core->tpl->end();
        
$core->tpl->close();
}

switch(isset(
$url[1]) ? $url[1] : null
{
        
    case 
'write':
        
set_title(array(_BLOGS_BLOG_WRITE));        
        
menu(5);
        if(
$core->auth->isUser)
        {
            
$textArea bb_area('postText'''5'textarea'falsetrue);
            
$query $db->query("SELECT id, title FROM `" DB_PREFIX "_blogs`");
            
$blogList '<option value="0">'._BLOG_PERSONAL.'</option><option disabled>---------</option>';
            while(
$blogs $db->getRow($query)) 
            {
                
$blogList .= '<option value="' $blogs['id'] . '" ' . (isset($url[2]) && $url[2] == $blogs['id'] ? 'selected' '') . '>' $blogs['title'] . '</option>';
            }
            
$core->tpl->open('blog_add');
            
$core->tpl->loadFile('blog/add.post');
            
$core->tpl->setVar('BLOGS'$blogList);
            
$core->tpl->setVar('TITLE''');
            
$core->tpl->setVar('TAGS''');
            
$core->tpl->setVar('NOTE''');
            
$core->tpl->setVar('ACTIONS''');
            
$core->tpl->setVar('BLOGCHOOSE''');
            
$core->tpl->setVar('TEXTAREA'$textArea);
            
$core->tpl->end();
            
$core->tpl->close();
        }
        else
        {
            
$core->tpl->info(_BLOG_NOTIFY1);
        }
        break;
        
    case 
'savePost':
        if(
$core->auth->isUser)
        {
            
$blog = isset($_POST['blog']) ? intval($_POST['blog']) : '';
            
$title = isset($_POST['title']) ? filter($_POST['title'], 'title') : '';
            
$postText = isset($_POST['postText']) ? filter($_POST['postText']) : '';
            
$tags = isset($_POST['tags']) ? filter($_POST['tags'], 'a') : '';
            
$note = !empty($_POST['note']) ? 0;
            
$pid = !empty($_POST['pid']) ? intval($_POST['pid']) : '';                        
            
$blogCheck $db->query("SELECT altname FROM `" DB_PREFIX "_blogs` WHERE id = '" $blog "' LIMIT 1");
            if(!empty(
$title) && !empty($postText) && ($db->numRows($blogCheck) == || $blog == 0))
            {
                if(
$blog != 0$blogInfo $db->getRow($blogCheck);
                
                if(
$pid != 0)
                {
                    list(
$puid) = $db->fetchRow($db->query("SELECT uid FROM ".DB_PREFIX."_blog_posts WHERE id = '" $pid "' LIMIT 1"));
                    if(empty(
$puid)) location('blog');
                    
$isAdmin = (($core->auth->isUser && $puid == $core->auth->user_info['id']) || ($core->auth->isUser && eregStrt(','.$core->auth->user_info['id'].','$blogInfo['admins'])) || $core->auth->isAdmin) ? true false;
                }

                if(empty(
$pid) || $pid == 0)
                {
                    if(
$blog != && $blog_conf['preModer'] == && $note == 0)
                    {
                    
                    }
                    else
                    {                        
                        
menu(5);                        
                        
$query $db->query("SELECT * FROM `" DB_PREFIX "_blog_posts` WHERE title = '" $title "' AND bid = '" $blog "'");
                        if(
$db->numRows($query) == 0)
                        {
                            
$t time();
                            
$db->query("INSERT INTO `" DB_PREFIX "_blog_posts` (`bid` ,`title` ,`text` ,`date` ,`tags` ,`uid` ,`status` ) VALUES ('" $blog "', '" $db->safesql(processText($title)) . "', '" $db->safesql(parseBB(processText($postText))) . "', '" $t "', '" $tags "', '" $core->auth->user_info['id'] . "', '" . ($note == 1) . "');");
                            
$core->tpl->info(_BLOG_POST_ADD_OK.' <a href="' . ($blog == 'blog/user/' $core->auth->user_info['id'] : 'blog/view/'.$blogInfo['altname']) . '" title="'._BLOG_MOVE_TO_BLOG.'">'._BLOG_SSELECTED_BLOG.'</a>. <a href="blog/write" title="'._BLOG_WRITE.'">'._BLOG_WANT_ADD_MORE.'</a>');
                            if(
$blog != 0)
                            {
                                
$db->query("UPDATE `" DB_PREFIX "_blogs` SET `posts` = `posts`+1,`lastUpdate` = '" $t "' WHERE `id` =" $blog ";");
                            }
                        }
                        else
                        {
                            
$core->tpl->info(_BLOG_NOTIFY3'warning');
                        }
                    }
                }
                elseif(isset(
$_POST['delete']) && $isAdmin == true)
                {
                    
$db->query("DELETE FROM `" DB_PREFIX "_blog_posts` WHERE `id` = ".$pid);
                    if(
$blog != 0)
                    {
                        
$db->query("UPDATE `" DB_PREFIX "_blogs` SET `posts` = `posts`-1 WHERE `id` =" $blog ";");
                    }
                    
menu();
                    
$core->tpl->info(_BLOG_POST_DELETE_OK.' <a href="blog/" title="'._BLOG_TO_HOME.'">'._BLOG_TO_HOME.'</a>');                    
                }
                elseif(
$isAdmin == true)
                {
                    if(
$blog != && $blog_conf['preModer'] == && $note == 0)
                    {
                    
                    }
                    else
                    {                        
                        
menu();
                        
$db->query("UPDATE `" DB_PREFIX "_blog_posts` SET `title` = '" $db->safesql(processText($title)) . "', `text` = '" $db->safesql(parseBB(processText($postText))) . "', `tags` = '" $db->safesql(processText($tags)) . "', `status` = '" . ($note == 1) . "' WHERE `id` =" $pid ";");
                        
$core->tpl->info(_BLOG_POST_REFRESH_OK.' <a href="blog/read/' $pid '" title="'._BLOG_VIEW_POST2.'">'._BLOG_VIEW_POST2.'</a>');

                    }
                }
                else
                {
                    
location('blog');
                }
            }
            else
            {                
                
menu(5);
                
$core->tpl->info(_BLOG_NOTIFY2'warning');
            }
        }
        else
        {
            
location();
        }
        break;
        
    case 
'user':
        
$uid intval($url[2]);
        
$num $blog_conf['postsPerPage'];
        
$page init_page();
        
$cut = ($page-1)*$num;
        
        if(
$core->auth->isUser && $core->auth->user_info['id'] == $uid)
        {
            
$admin 1;
            
$userInfo $core->auth->user_info;
            
$where '';
        }
        else
        {
            
$admin 0;
            
$query $db->query("SELECT * FROM `" DB_PREFIX "_users` WHERE id = '" $uid "' LIMIT 1");
            
$where "AND status='1'";
            if(
$db->numRows($query) == 1)
            {
                
$userInfo $db->getRow($query);
            }
            else
            {
                
location('blog');
            }
        }        
        
menu($admin == 0);
        
set_title(array(_BLOGS_BLOG_FROM.' '.$userInfo['nick']));
        
$core->tpl->title(_BLOG_FROM.' '.$userInfo['nick']);
        
        
$queryP $db->query("SELECT * FROM `" DB_PREFIX "_blog_posts` WHERE bid = '0' AND uid= '" $userInfo['id'] . "' " $where " ORDER BY date DESC LIMIT " $cut ", ".$num);
        if(
$db->numRows($queryP) > 0)
        {
            while(
$posts $db->getRow($queryP)) 
            {
                
$isAdmin = (($core->auth->isUser && $core->auth->user_info['id'] == $posts['uid']) || $core->auth->isAdmin) ? true false;
                
$tag_list explode(','$posts['tags']);
                foreach(
$tag_list as $tag
                {
                    
$tag trim($tag);
                    
$tags[] = '<a href="blog/tags/'.urlencode($tag).'" title="' $tag '">'.$tag.'</a>';
                }
                
                
$core->tpl->loadFile('blog/view.post');
                
$core->tpl->setVar('BLOG_NAME''<a href="blog/user/' $userInfo['id']. '" title="'._BLOG_MOVE_TO_BLOG.'">'._BLOG_FROM.' '$userInfo['nick']. '</a>');
                
$core->tpl->setVar('POST_TITLE''<a href="blog/read/' $posts['id'] . '" title="'._BLOG_READ_POST.'">'.$posts['title'].'</a>');
                
$core->tpl->setVar('TEXT'$core->bbDecode($posts['text']));
                
$core->tpl->setVar('STATUS', ($posts['status'] == '[ <font color="red">'._BLOG_ON_SMODERATE.'</font> ] ' : ($posts['status'] == '[ <font color="blue">'._BLOG_SDRAFT.'</font> ] ' '')));
                
$core->tpl->setVar('TAGS'implode(', '$tags));
                
$core->tpl->setVar('ADMIN'$isAdmin '<a href="blog/editPost/' $posts['id'] . '" title="'._BLOG_EDIT_POST.'">Редактировать</a>' '');
                
$core->tpl->setVar('RATING''<a href="javascript:void(0)" title="'._BLOG_POST_VOTE.'" onclick="' . ($core->auth->isUser ? ($core->auth->user_info['id'] != $posts['uid'] ? (!eregStrt(','.$core->auth->user_info['id'].','$posts['ratingUsers']) ? 'blogRating('' . $posts['id'] . '', 'rate_' . $posts['id'] . '')' 'alert(''._BLOG_ALREADY_VOTED.'')') : 'alert(''._BLOG_YOURSELF_VOTED.'');') : 'alert(''._BLOG_AUTHORIZED_VOTING_ONLY.'');') . '">Рэйтинг</a> <span id="rate_' $posts['id'] . '" class="blog_postRating">' . ($posts['rating'] > '+' '') . $posts['rating'] . '</span>');
                
$core->tpl->setVar('USER''<a href="profile/'.$userInfo['nick'].'" title="'._BLOG_VIEW_PROFILE.'">'.$userInfo['nick'].'</a>');
                
$core->tpl->setVar('COMMENTS''<a href="blog/read/' $posts['id'] . '#comm" title="'._BLOG_VIEW_COMMENTS.'">'.$posts['comments'].'</a>');
                
$core->tpl->setVar('DATE'formatDate($posts['date']));
                
$core->tpl->end();
                unset(
$tags$tag_list);
            }
            list(
$numPosts) = $db->fetchRow($db->query("SELECT Count(id) FROM ".DB_PREFIX."_blog_posts WHERE bid = '0' AND uid= '" $userInfo['id'] . "' " $where));
            
$core->tpl->pages($page$num$numPosts'blog/user/' $userInfo['id'] . '/{page}');

        }
        else
        {
            
$core->tpl->info(_BLOG_EMPTY);
        }
        break;
        
    case 
'create':
        
set_title(array(_BLOGS_BLOG_CREATE));        
        
menu(6);        
        if(
$core->auth->isUser)
        {
            
$core->tpl->open('blog_create');
            
$core->tpl->loadFile('blog/add.blog');
            
$core->tpl->setVar('TITLE''');
            
$core->tpl->setVar('ALTNAME''');
            
$core->tpl->setVar('DESCRIPTION''');
            
$core->tpl->setVar('AVATAR_REPLACE''');
            
$core->tpl->end();
            
$core->tpl->close();
        }
        else
        {
            
$core->tpl->info(_BLOG_NOTIFY4);
        }
        break;
        
    case 
'saveBlog':
        if(
$core->auth->isUser)
        {
            
$bid = isset($_POST['bid']) ? intval($_POST['bid']) : '';
            
$title filter($_POST['title'], 'title');
            
$description filter($_POST['description']);
            
$altname = !empty($_POST['altname']) ? translit(filter($_POST['altname'], 'a')) : translit($title);            
            if(!empty(
$title) && !empty($description) && !empty($altname))
            {
                if(empty(
$bid))
                {
                        
                    
menu(6);                        
                    
$query $db->query("SELECT * FROM `" DB_PREFIX "_blogs` WHERE title = '" $title "' OR altname = '" $db->safesql($altname) . "'");
                    if(
$db->numRows($query) == 0)
                    {
                        
$avatar '';
                        if(!empty(
$_FILES['blogAvatar']['name']))
                        {
                            if(
$foo = new Upload($_FILES['blogAvatar']))
                            {
                                
$foo->file_new_name_body 'blogAvatar_'.$altname;
                                
$foo->image_resize true;
                                
$foo->image_x 50;
                                
$foo->image_ratio_y true;
                                
$foo->Process(ROOT.'files/blog');
                                
                                if (
$foo->processed
                                {
                                    
$avatar 'files/blog/blogAvatar_'.$altname.'.'.$foo->file_dst_name_ext;
                                    
$foo->Clean();
                                }
                            }
                        }
                        
$db->query("INSERT INTO `" DB_PREFIX "_blogs` (`title` ,`altname` ,`description` ,`avatar` ,`date` ,`admins`) VALUES ('" $db->safesql(processText($title)) . "', '" $altname "', '" $db->safesql(processText($description)) . "', '" $avatar "', '" time() . "', '," $core->auth->user_info['id'] . ",');");
                        
$core->tpl->info(_BLOG_BLOG_CREATE_OK.' <a href="blog/view/' $altname '" title="'._BLOG_VIEW_BLOG.'">'._BLOG_VIEW_BLOG2.'</a> '._BLOG_S_OR_NOW.' <a href="blog/write" title="'._BLOG_WRITE.'">'._BLOG_SLEAVE_POST.'</a> '._BLOG_IN_THIS);
                    }
                    else
                    {
                        
$core->tpl->info(_BLOG_NOTIFY5'warning');
                    }
                }
                else
                {
                    
                    
$query $db->query("SELECT * FROM `" DB_PREFIX "_blogs` WHERE id = '" $bid "' LIMIT 1");
                    if(
$db->numRows($query) == 1)
                    {
                        
$blog $db->getRow($query);
                        
$isAdmin = ($core->auth->isAdmin || eregStrt(','.$core->auth->user_info['id'].','$blog['admins'])) ? true false;
                        if(
$isAdmin == true)
                        {
                            if(isset(
$_POST['deleteAvatar']))
                            {
                                @
unlink($blog['avatar']);
                                
$avatar '';
                            }
                            
                            if(!empty(
$_FILES['blogAvatar']['name']))
                            {
                                @
unlink($blog['avatar']);
                                
                                if(
$foo = new Upload($_FILES['blogAvatar']))
                                {
                                    
$foo->file_new_name_body 'blogAvatar_'.$altname;
                                    
$foo->image_resize true;
                                    
$foo->image_x 50;
                                    
$foo->image_ratio_y true;
                                    
$foo->Process(ROOT.'files/blog');
                                    
                                    if (
$foo->processed
                                    {
                                        
$avatar 'files/blog/blogAvatar_'.$altname.'.'.$foo->file_dst_name_ext;
                                        
$foo->Clean();
                                    }
                                }
                            }            
                            
                            
menu();
                            
$db->query("UPDATE `" DB_PREFIX "_blogs` SET `title` = '" $db->safesql(processText($title)) . "', `altname` = '" $db->safesql(processText($altname)) . "', `description` = '" $db->safesql(processText($description)) . "'" . (isset($avatar) ? ", `avatar` = '" $avatar "'" '') . " WHERE `id` =" $blog['id'] . ";");
                            
$core->tpl->info(_BLOG_BLOG_SAVE_OK.' <a href="blog/view/' $altname '" title="'._BLOG_VIEW_BLOG.'">'._BLOG_VIEW_BLOG.'</a>.');
                        }
                        else
                        {
                            
location('blog');
                        }
                    }
                    else
                    {
                        
location('blog');
                    }
                }
            }
            else
            {                
                
menu(6);
                
$core->tpl->info(_BLOG_NOTIFY6'warning');
            }
        }
        else
        {
            
location();
        }
        break;
        
    case 
'list':
        
$num $blog_conf['blogsPerPage'];
        
$page init_page();
        
$cut = ($page-1)*$num;        
        
set_title(array(_BLOGS_BLOG_LIST));        
        
menu(4);
        
$core->tpl->open('blogList');
        
        
$query $db->query("SELECT id as blogId, title, altname, description, avatar, posts, readersNum, date, lastUpdate, admins, readers, (SELECT sum(rating) FROM ".DB_PREFIX."_blog_posts WHERE bid = blogId) as sumRate FROM `" DB_PREFIX "_blogs` ORDER BY posts DESC LIMIT " $cut ", ".$num."");
        while(
$blog $db->getRow($query)) 
        {
            
$sumRate = empty($blog['sumRate']) ? $blog['sumRate'];
            
$core->tpl->loadFile('blog/list.blog');
            
$core->tpl->setVar('AVATAR', ($blog['avatar'] ? $blog['avatar'] : 'usr/tpl/' $config['tpl'] . '/assest/images/engine/default-blog-avatar.png'));
            
$core->tpl->setVar('BLOG_NAME''<a href="blog/view/' $blog['altname'] . '" title="'._BLOG_MOVE_TO_BLOG_VIEW.'">'.$blog['title'].'</a>');
            
$core->tpl->setVar('READERS'$blog['readersNum']);
            
$core->tpl->setVar('POSTS'$blog['posts']);
            
$core->tpl->setVar('RATING'$blog['posts'] == round($sumRate/$blog['posts'], 2));
            
$core->tpl->setVar('LAST_UPDATE'$blog['lastUpdate'] ? formatDate($blog['lastUpdate']) : _BLOG_SNEVER);
            
$core->tpl->setVar('ADMINISTRATION'$blog['posts']);
            
$core->tpl->end();
        }
        
$core->tpl->close();
        list(
$numBlogs) = $db->fetchRow($db->query("SELECT Count(id) FROM ".DB_PREFIX."_blogs"));
        
$core->tpl->pages($page$num$numBlogs'blog/list/{page}');
        break;

    case 
'view':
        
$query $db->query("SELECT * FROM `" DB_PREFIX "_blogs` WHERE altname = '" $url[2] . "'");
        if(
$db->numRows($query) == 1)
        {
            
$blog $db->getRow($query);
            
set_title(array(_BLOGS$blog['title']));
            
menu();
            
$qAdm $db->query("SELECT nick FROM `" DB_PREFIX "_users` WHERE id IN (" mb_substr($blog['admins'], 1, -1) . ")");
            
$admins '';
            
$adminBlog false;
            while(
$zAdm $db->getRow($qAdm))
            {
                
$admins .= '<span class="_userfriends"><a href="profile/'.$zAdm['nick'].'" title="'._BLOG_TO_ADMIN_PAGE.'">'.$zAdm['nick'].'</a></span>';
            }
            
            if(
$core->auth->isUser && eregStrt(','.$core->auth->user_info['id'].','$blog['admins'])) $adminBlog true;
            
            if(!empty(
$blog['readers']))
            {
                
$readers '';
                foreach(
explode(','$blog['readers']) as $reader)
                {
                    if(!empty(
$reader))
                    {
                        
$readers .= '<span class="_userfriends"><a href="profile/'.$reader.'" title="'._BLOG_TO_READER_PAGE.'">'.$reader.'</a></span>';
                    }
                }
            }
            
            list(
$sumRate) = $db->fetchRow($db->query("SELECT sum(rating) FROM ".DB_PREFIX."_blog_posts WHERE bid = '" $blog['id'] . "'"));
            
$sumRate = empty($sumRate) ? $sumRate;
            
$rating $blog['posts'] > round($sumRate/$blog['posts'], 2) : 0;
            
$core->tpl->open('blogView');
            
$core->tpl->loadFile('blog/view.blog');
            
$core->tpl->setVar('AVATAR', ($blog['avatar'] ? $blog['avatar'] : 'usr/tpl/' $config['tpl'] . '/assest/images/engine/default-blog-avatar.png'));
            
$core->tpl->setVar('BLOG_NAME''<a href="blog/view/' $blog['altname'] . '" title="'._BLOG_MOVE_TO_BLOG_VIEW.'">'.$blog['title'].'</a>');
            
$core->tpl->setVar('DESCRIPTION'$blog['description'] ? $blog['description'] : _BLOG_NO_DESCRIPTION);
            
$core->tpl->setVar('READERS'$blog['readers'] ? $readers _BLOG_NO_READERS);
            if(
$core->auth->isUser$core->tpl->setVar('BECOME_READER', !eregStrt(',' $core->auth->user_info['nick'] . ','$blog['readers']) ? _BLOG_TO_BE_READER _BLOG_UNSUBSCRIBE);            
            
$core->tpl->setVar('ADMINS'$admins);
            
$core->tpl->setVar('RATING'$rating);
            
$core->tpl->setVar('EDIT'$adminBlog '[ <a href="blog/blogEdit/' $blog['id'] . '">'._BLOG_SEDIT.'</a> - '._BLOG_SDELETE.' ]' '');
            
$core->tpl->setVar('ID'$blog['id']);
            
$core->tpl->setVar('POSTS'$blog['posts']);
            
$core->tpl->setVar('LAST_UPDATE'$blog['lastUpdate'] ? formatDate($blog['lastUpdate']) : _BLOG_SNEVER);
            
$core->tpl->end();
            
$core->tpl->close();
            
            
            
$num $blog_conf['postsPerPage'];
            
$page init_page();
            
$cut = ($page-1)*$num;
            
            
$queryP $db->query("SELECT u.nick, b.* FROM `" DB_PREFIX "_blog_posts` as b LEFT JOIN `" DB_PREFIX "_users` as u ON (u.id = b.uid) WHERE b.bid = '" $blog['id'] . "' ORDER BY b.date DESC LIMIT " $cut ", ".$num);

            if(
$db->numRows($queryP) > 0)
            {

                while(
$posts $db->getRow($queryP)) 
                {
                    
$isAdmin = (($core->auth->isUser && $posts['uid'] == $core->auth->user_info['id']) || ($core->auth->isUser && eregStrt(','.$core->auth->user_info['id'].','$blog['admins'])) || $core->auth->isAdmin || $adminBlog == true) ? true false;
                    if(
$posts['status'] == || $isAdmin)
                    {
                        
$tag_list explode(','$posts['tags']);
                        foreach(
$tag_list as $tag
                        {
                            
$tag trim($tag);
                            
$tags[] = '<a href="blog/tags/'.urlencode($tag).'" title="' $tag '">'.$tag.'</a>';
                        }
                        
                        
$status = ($isAdmin ? ($posts['status'] == '[ <font color="red">'._BLOG_ON_SMODERATE.'</font> ] ' : ($posts['status'] == '[ <font color="blue">'._BLOG_SDRAFT.'</font> ] ' '')) : '');
                        
                        
$core->tpl->loadFile('blog/view.post');
                        
$core->tpl->setVar('BLOG_NAME''<a href="blog/view/' $blog['altname']. '" title="'._BLOG_MOVE_TO_BLOG.'">'$blog['title']. '</a>');
                        
$core->tpl->setVar('POST_TITLE''<a href="blog/read/' $posts['id'] . '" title="'._BLOG_READ_POST.'">'.$posts['title'].'</a>');
                        
$core->tpl->setVar('TEXT'$core->bbDecode($posts['text']));
                        
$core->tpl->setVar('STATUS'$status);
                        
$core->tpl->setVar('RATING''<a href="javascript:void(0)" title="'._BLOG_POST_VOTE.'" onclick="' . ($core->auth->isUser ? ($core->auth->user_info['id'] != $posts['uid'] ? (!eregStrt(','.$core->auth->user_info['id'].','$posts['ratingUsers']) ? 'blogRating('' . $posts['id'] . '', 'rate_' . $posts['id'] . '')' 'alert(''._BLOG_ALREADY_VOTED.'')') : 'alert(''._BLOG_YOURSELF_VOTED.'');') : 'alert(''._BLOG_AUTHORIZED_VOTING_ONLY.'');') . '">Рэйтинг</a> <span id="rate_' $posts['id'] . '" class="blog_postRating">' . ($posts['rating'] > '+' '') . $posts['rating'] . '</span>');
                        
$core->tpl->setVar('TAGS'implode(', '$tags));
                        
$core->tpl->setVar('ADMIN'$isAdmin '<a href="blog/editPost/' $posts['id'] . '" title="'._BLOG_EDIT_POST.'">Редактировать</a>' '');
                        
$core->tpl->setVar('USER''<a href="profile/'.$posts['nick'].'" title="'._BLOG_VIEW_PROFILE.'">'.$posts['nick'].'</a>');
                        
$core->tpl->setVar('COMMENTS''<a href="blog/read/' $posts['id'] . '#comm" title="'._BLOG_VIEW_COMMENTS.'">'.$posts['comments'].'</a>');
                        
$core->tpl->setVar('DATE'formatDate($posts['date']));
                        
$core->tpl->end();
                        unset(
$tags$tag_list);
                    }
                }
                
                list(
$numPosts) = $db->fetchRow($db->query("SELECT Count(id) FROM ".DB_PREFIX."_blog_posts  WHERE bid = '" $blog['id'] . "'"));
                
$core->tpl->pages($page$num$numPosts'blog/view/' $blog['altname'] . '/{page}');
            }
            else
            {
                
$core->tpl->info('Блог пуст. <a href="blog/write/' $blog['id'] . '" title="'._BLOG_ADD_MYSELF_POST.'">'._BLOG_ADD_POST.'</a>?');
            }
        }
        else
        {
            
location('blog');
        }
        break;
            
            
    default:
    case 
'show':
        
$num $blog_conf['postsPerPage'];
        
$page init_page();
        
$cut = ($page-1)*$num;
        
        switch(isset(
$url[2]) ? $url[2] : '')
        {
            default:
                
$info _BLOG_NO_POSTS_IN_BLOGS;
                
$title _BLOG_LAST_POSTS;
                
$menu '';
                
$where '';
                
$query $db->query("SELECT id, title, altname FROM `" DB_PREFIX "_blogs`");
                while(
$blog $db->getRow($query)) $blogName[$blog['id']] = array($blog['title'], $blog['altname']);
                break;
                
            case 
'all':
                
$info _BLOG_NO_POSTS_IN_BLOGS;
                
$title _BLOG_ALL_POSTS;
                
$menu 1;
                
$where '';
                
$query $db->query("SELECT id, title, altname FROM `" DB_PREFIX "_blogs`");
                while(
$blog $db->getRow($query)) $blogName[$blog['id']] = array($blog['title'], $blog['altname']);
                break;
                
            case 
"thematic":
                
$info _BLOG_NO_POSTS_IN_THEME_BLOGS;
                
$title _BLOG_THEME_POSTS;
                
$menu 2;
                
$where "WHERE bid != '0'";
                
$query $db->query("SELECT id, title, altname FROM `" DB_PREFIX "_blogs`");
                while(
$blog $db->getRow($query)) $blogName[$blog['id']] = array($blog['title'], $blog['altname']);
                break;
                
            case 
"personal":
                
$info _BLOG_NO_POSTS_IN_PERSONAL_BLOGS;
                
$title _BLOG_POSTS_FROM_PERSONAL_BLOGS;
                
$menu 3;
                
$where "WHERE bid = '0'";
                break;
        }
        
        
set_title(array(_BLOGS$title));    
        
menu($menu);
        
$queryP $db->query("SELECT u.nick, b.* FROM `" DB_PREFIX "_blog_posts` as b LEFT JOIN `" DB_PREFIX "_users` as u ON (u.id = b.uid) " $where " ORDER BY b.date DESC LIMIT " $cut ", ".$num."");
        if(
$db->numRows($queryP) > 0)
        {
            while(
$posts $db->getRow($queryP)) 
            {
                
$blogTitle $posts['bid'] == '<a href="blog/user/' $posts['uid'] . '" title="'._BLOG_VIEW_BLOG.'">'._BLOG_FROM.' '.$posts['nick'].'</a>' '<a href="blog/view/' $blogName[$posts['bid']][1] . '" title="'._BLOG_VIEW_BLOG.'">' $blogName[$posts['bid']][0] . '</a>';
                
$tag_list explode(','$posts['tags']);
                foreach(
$tag_list as $tag
                {
                    
$tag trim($tag);
                    
$tags[] = '<a href="blog/tags/'.urlencode($tag).'" title="' $tag '">'.$tag.'</a>';
                }

                
$isAdmin = (($core->auth->isUser && $posts['uid'] == $core->auth->user_info['id']) || $core->auth->isAdmin) ? true false;
                
                
$status = ($core->auth->isUser && $posts['uid'] == $core->auth->user_info['id'] ? ($posts['status'] == '[ <font color="red">'._BLOG_ON_SMODERATE.'</font> ] ' : ($posts['status'] == '[ <font color="blue">'._BLOG_SDRAFT.'</font> ] ' '')) : '');
                
                
$core->tpl->loadFile('blog/view.post');
                
$core->tpl->setVar('BLOG_NAME'$blogTitle);
                
$core->tpl->setVar('POST_TITLE''<a href="blog/read/' $posts['id'] . '" title="'._BLOG_READ_POST.'">'.$posts['title'].'</a>');
                
$core->tpl->setVar('TEXT'$core->bbDecode($posts['text']));
                
$core->tpl->setVar('STATUS'$status);
                
$core->tpl->setVar('RATING''<a href="javascript:void(0)" title="'._BLOG_POST_VOTE.'" onclick="' . ($core->auth->isUser ? ($core->auth->user_info['id'] != $posts['uid'] ? (!eregStrt(','.$core->auth->user_info['id'].','$posts['ratingUsers']) ? 'blogRating('' . $posts['id'] . '', 'rate_' . $posts['id'] . '')' 'alert(''._BLOG_ALREADY_VOTED.'')') : 'alert(''._BLOG_YOURSELF_VOTED.'');') : 'alert(''._BLOG_AUTHORIZED_VOTING_ONLY.'');') . '">Рэйтинг</a> <span id="rate_' $posts['id'] . '" class="blog_postRating">' . ($posts['rating'] > '+' '') . $posts['rating'] . '</span>');
                
$core->tpl->setVar('TAGS'implode(', '$tags));
                
$core->tpl->setVar('ADMIN'$isAdmin '<a href="blog/editPost/' $posts['id'] . '" title="'._BLOG_EDIT_POST.'">Редактировать</a>' '');
                
$core->tpl->setVar('USER''<a href="profile/'.$posts['nick'].'" title="._BLOG_VIEW_PROFILE.">'.$posts['nick'].'</a>');
                
$core->tpl->setVar('COMMENTS''<a href="blog/read/' $posts['id'] . '#comm" title="'._BLOG_VIEW_COMMENTS.'">'.$posts['comments'].'</a>');
                
$core->tpl->setVar('DATE'formatDate($posts['date']));
                
$core->tpl->end();
                unset(
$tags$tag_list);
            }
            
            list(
$numPosts) = $db->fetchRow($db->query("SELECT Count(id) FROM ".DB_PREFIX."_blog_posts " $where));
            
$core->tpl->pages($page$num$numPosts'blog/show/' . (isset($url[2]) ? $url[2] : '') . '/{page}');
        }
        else
        {
            
$core->tpl->info($info);
        }
        break;
        
        
    case 
'read':
        
$postId intval($url[2]);
        
$queryP $db->query("SELECT bp.*, b.id as blogid, b.title as btitle, b.altname as balt FROM `" DB_PREFIX "_blog_posts` as bp LEFT JOIN `" DB_PREFIX "_blogs` as b on (bp.bid = b.id) WHERE bp.id = '" $postId "' LIMIT 1");
        if(
$db->numRows($queryP) > 0)
        {
            
$posts $db->getRow($queryP);
            list(
$nick) = $db->fetchRow($db->query("SELECT nick FROM `" DB_PREFIX "_users` WHERE id = " $posts['uid'] . " LIMIT 1"));

            
set_title(array(_BLOGS_BLOG_VIEW_POST$posts['title']));
            
menu();
            
            
$blogTitle $posts['bid'] == '<a href="blog/user/' $posts['uid'] . '" title="'._BLOG_VIEW_BLOG.'">'._BLOG_FROM.' '.$nick.'</a>' '<a href="blog/view/' $posts['balt'] . '" title="'._BLOG_VIEW_BLOG.'">' $posts['btitle'] . '</a>';
            
$tag_list explode(','$posts['tags']);
            foreach(
$tag_list as $tag
            {
                
$tag trim($tag);
                
$tags[] = '<a href="blog/tags/'.urlencode($tag).'" title="' $tag '">'.$tag.'</a>';
            }

            
$isAdmin = (($core->auth->isUser && $posts['uid'] == $core->auth->user_info['id']) || $core->auth->isAdmin) ? true false;
            
            
$status = ($core->auth->isUser && $posts['uid'] == $core->auth->user_info['id'] ? ($posts['status'] == '[ <font color="red">'._BLOG_ON_SMODERATE.'</font> ] ' : ($posts['status'] == '[ <font color="blue">'._BLOG_SDRAFT.'</font> ] ' '')) : '');
                
            
$core->tpl->loadFile('blog/view.post');
            
$core->tpl->setVar('BLOG_NAME'$blogTitle);
            
$core->tpl->setVar('POST_TITLE''<a href="blog/read/' $posts['id'] . '" title="'._BLOG_READ_POST.'">'.$posts['title'].'</a>');
            
$core->tpl->setVar('TEXT'$core->bbDecode($posts['text']));
            
$core->tpl->setVar('STATUS'$status);
            
$core->tpl->setVar('RATING''<a href="javascript:void(0)" title="'._BLOG_POST_VOTE.'" onclick="' . ($core->auth->isUser ? ($core->auth->user_info['id'] != $posts['uid'] ? (!eregStrt(','.$core->auth->user_info['id'].','$posts['ratingUsers']) ? 'blogRating('' . $posts['id'] . '', 'rate_' . $posts['id'] . '')' 'alert(''._BLOG_ALREADY_VOTED.'')') : 'alert(''._BLOG_YOURSELF_VOTED.'');') : 'alert(''._BLOG_AUTHORIZED_VOTING_ONLY.'');') . '">Рэйтинг</a> <span id="rate_' $posts['id'] . '" class="blog_postRating">' . ($posts['rating'] > '+' '') . $posts['rating'] . '</span>');
            
$core->tpl->setVar('TAGS'implode(', '$tags));
            
$core->tpl->setVar('ADMIN'$isAdmin '<a href="blog/editPost/' $posts['id'] . '" title="'._BLOG_EDIT_POST.'">Редактировать</a>' '');
            
$core->tpl->setVar('USER''<a href="profile/'.$nick.'" title="._BLOG_VIEW_PROFILE.">'.$nick.'</a>');
            
$core->tpl->setVar('COMMENTS''<a href="blog/read/' $posts['id'] . '#comm" title="'._BLOG_VIEW_COMMENTS.'">'.$posts['comments'].'</a>');
            
$core->tpl->setVar('DATE'formatDate($posts['date']));
            
$core->tpl->end();
            
            if(
$blog_conf['comments'] == 1)
            {
                
show_comments('blog'$posts['id'], $blog_conf['comperpage']);
            }
        }
        break;
        
    case 
'editPost':
        
$postId intval($url[2]);
        
        
$queryP $db->query("SELECT * FROM `" DB_PREFIX "_blog_posts` WHERE id = '" $postId "' LIMIT 1");
        if(
$db->numRows($queryP) > && $core->auth->isUser)
        {
            
set_title(array(_BLOGS_BLOG_EDIT_POST));
            
            
menu();
            
            
$posts $db->getRow($queryP);
            
$isAdmin = (($core->auth->isUser && $posts['uid'] == $core->auth->user_info['id']) || ($core->auth->isUser && eregStrt(','.$core->auth->user_info['id'].','$blog['admins'])) || $core->auth->isAdmin) ? true false;
            if(
$isAdmin == true)
            {
                
$textArea bb_area('postText'html2bb($posts['text']), 10'textarea'falsetrue);
                
$query $db->query("SELECT id, title FROM `" DB_PREFIX "_blogs`");
                
$blogList '<option value="0">'._BLOG_PERSONAL.'</option><option disabled>---------</option>';
                while(
$blogs $db->getRow($query)) 
                {
                    
$blogList .= '<option value="' $blogs['id'] . '" ' . ($posts['bid'] == $blogs['id'] ? 'selected' '') . '>' $blogs['title'] . '</option>';
                }
                
                
$core->tpl->open('blog_add');
                
$core->tpl->loadFile('blog/add.post');
                
$core->tpl->setVar('BLOGS'$blogList);
                
$core->tpl->setVar('TEXTAREA'$textArea);
                
$core->tpl->setVar('TITLE'prepareTitle($posts['title']));
                
$core->tpl->setVar('BLOGCHOOSE''disabled');
                
$core->tpl->setVar('TAGS'$posts['tags']);
                
$core->tpl->setVar('NOTE',  $posts['status'] == 'checked' '');
                
$core->tpl->setVar('ACTIONS''<input name="delete" type="submit" value="'._BLOG_DELETE_POST.'"  /><input type="hidden" name="pid" value="' $postId '" /><hr />'._BLOG_POST_STATUS.': <strong>'.($posts['status'] == '<font color="green">'._BLOG_ACTIVE.'</font>' : ($posts['status'] == '<font color="red">'._BLOG_ON_MODERATE.'</font>' '<font color="blue">'._BLOG_DRAFT.'</font>')).'</strong>' . ($blog_conf['preModer'] == _BLOG_NOTIFY7 ''));
                
$core->tpl->end();
                
$core->tpl->close();
            }
            else
            {
                
location('blog');
            }
        }
        else
        {
            
location('blog');
        }
        break;
        
    case 
'becomeReader':
        
$blogId intval($url[2]);
        if(
$core->auth->isUser)
        {
            
$query $db->query("SELECT * FROM `" DB_PREFIX "_blogs` WHERE id = '" $blogId "'");
            if(
$db->numRows($query) == 1)
            {
                
$blog $db->getRow($query);
                
set_title(array(_BLOGS_BLOG_SUBSCRIBE));                
                
menu();
                if(
eregStrt(',' $core->auth->user_info['nick'] . ','$blog['readers']))
                {
                    
$db->query("UPDATE `" DB_PREFIX "_blogs` SET `readers` = '" str_replace(',' $core->auth->user_info['nick'] . ','''$blog['readers']) . "' WHERE `id` =" $blogId ";");
                    
$core->tpl->info(_BLOG_UNSUBSCRIBE_OK.' "<a href="blog/view/' $blog['altname'] . '">' $blog['title'] . '</a>".');
                }
                elseif(
eregStrt(','.$core->auth->user_info['id'].','$blog['admins']))
                {
                    
$core->tpl->info(_BLOG_NOTIFY8'warning');
                }
                else
                {
                    
$add = empty($blog['readers']) ? ',' $core->auth->user_info['nick'] . ',' $core->auth->user_info['nick'] . ',';
                    
$db->query("UPDATE `" DB_PREFIX "_blogs` SET `readers` = '" $add "' WHERE `id` =" $blogId ";");
                    
$core->tpl->info(_BLOG_SUBSCRIBE_OK.' "<a href="blog/view/' $blog['altname'] . '">' $blog['title'] . '</a>".');
                }
            }
            else
            {
                
location('blog');
            }
        }        
        break;
        
    case 
'blogEdit':
        
$blogId intval($url[2]);
        
        
$queryB $db->query("SELECT * FROM `" DB_PREFIX "_blogs` WHERE id = '" $blogId "' LIMIT 1");
        if(
$db->numRows($queryB) == && $core->auth->isUser)
        {
            
$blog $db->getRow($queryB);
            
$isAdmin = ($core->auth->isAdmin || eregStrt(','.$core->auth->user_info['id'].','$blog['admins'])) ? true false;
            if(
$isAdmin == true)
            {
                
set_title(array(_BLOGS_BLOG_EDIT));
                
                
menu();
                
$core->tpl->open('blog_create');
                
$core->tpl->loadFile('blog/add.blog');
                
$core->tpl->setVar('TITLE'prepareTitle($blog['title']));
                
$core->tpl->setVar('ALTNAME'$blog['altname']);
                
$core->tpl->setVar('DESCRIPTION'$blog['description']);
                
$core->tpl->setVar('AVATAR_REPLACE', ($blog['avatar'] ? '<div style="width:120px; text-align:center"><img src="' $blog['avatar'] . '" border="0" class="blogAvatar" /><br /><input name="deleteAvatar" type="checkbox" /> '._BLOG_DELETE_AVATAR.'</div>' '<strong>'._BLOG_NO_AVATAR.'</strong>') . '<hr/><input type="hidden" name="bid" value="' $blogId '" />');
                
$core->tpl->end();
                
$core->tpl->close();
            }
            else
            {
                
location('blog');
            }    
        }
        else
        {
            
location('blog');
        }

        break;
        
    case 
'ajaxRating':
        
$no_head true;
        
$pid intval($_POST['pid']);
        
ajaxInit();
        if(
$core->auth->isUser)
        {
            list(
$postUser$rating$rus) = $db->fetchRow($db->query("SELECT uid, rating, ratingUsers FROM ".DB_PREFIX."_blog_posts WHERE id = '" $pid "'"));
            if(!empty(
$postUser) && $core->auth->user_info['id'] != $postUser && !eregStrt(','.$core->auth->user_info['id'].','$rus))
            {
                
$rU = empty($rus) ? ','.$core->auth->user_info['id'].',' $rus.$core->auth->user_info['id'].',';
                
$db->query("UPDATE `".DB_PREFIX."_blog_posts` SET `rating` = `rating`+1, `ratingUsers` = '" $rU "' WHERE `id` =" $pid ";");
                echo 
'+'.$rating+1;
            }
            elseif(!empty(
$postUser))
            {
                echo (
$rating '+' '').$rating;
            }
        }
        break;
}
Онлайн: 1
Реклама