Вход Регистрация
Файл: components/blogs/model.php
Строк: 104
<?php
/******************************************************************************/
//                                                                            //
//                             InstantCMS v1.10                               //
//                        http://www.instantcms.ru/                           //
//                                                                            //
//                   written by InstantCMS Team, 2007-2012                    //
//                produced by InstantSoft, (www.instantsoft.ru)               //
//                                                                            //
//                        LICENSED BY GNU/GPL v2                              //
//                                                                            //
/******************************************************************************/

if(!defined('VALID_CMS')) { die('ACCESS DENIED'); }

class 
cms_model_blogs{

    public function 
__construct(){
        
$this->inDB = cmsDatabase::getInstance();
        
$this->config = cmsCore::getInstance()->loadComponentConfig('blogs');
    }

/* ==================================================================================================== */
/* ==================================================================================================== */

    
public static function getDefaultConfig() {

        
$cfg = array (
              
'perpage' => 10,
              
'perpage_blog' => 15,
              
'update_date' => 0,
              
'update_seo_link' => 0,
              
'min_karma_private' => 0,
              
'min_karma_public' => 5,
              
'min_karma' => 1,
              
'list_min_rating' => 0,
              
'watermark' => 1,
              
'img_on' => 1,
              
'update_seo_link_blog' => 0
            
);

        return 
$cfg;

    }

/* ==================================================================================================== */
/* ==================================================================================================== */

   //
   // этот метод вызывается компонентом comments при создании нового комментария
   // метод обновляет количество комментариев для поста и для блога в целом
   //
   
public function updateCommentsCount($target, $target_id) {

        if (
$target != 'blog') { return false; }

        
cmsCore::loadClass('blog');

        return 
cmsBlogs::updateCommentsCount($target, $target_id);

    }

/* ==================================================================================================== */
/* ==================================================================================================== */

   //
   // этот метод вызывается компонентом comments при создании нового комментария
   // метод должен вернуть массив содержащий ссылку и заголовок поста, к которому
   // добавляется комментарий
   //
   
public function getCommentTarget($target, $target_id) {

        
$result = array();

        switch(
$target){

            case 
'blog': $sql = "SELECT p.title as title,
                                        p.seolink as seolink,
                                        b.seolink as bloglink
                                 FROM cms_blog_posts p
                                 LEFT JOIN cms_blogs b ON b.id = p.blog_id
                                 WHERE p.id = '
{$target_id}' LIMIT 1";
 
                         
$res = $this->inDB->query($sql);
                         if (!
$this->inDB->num_rows($res)){ return false; }
                         
$post = $this->inDB->fetch_assoc($res);
                         
$result['link']  = $this->getPostURL($post['bloglink'], $post['seolink']);
                         
$result['title'] = $post['title'];
                         break;

        }

        return (
$result ? $result : false);

    }

/* ==================================================================================================== */
/* ==================================================================================================== */
   //
   // этот метод вызывается компонентом comments при создании нового комментария
   // метод должен вернуть 0 или 1
   //
   
public function getVisibility($target, $target_id) {

        
$is_hidden = 0;

        switch(
$target){

            case 
'blog': 
                        
// получаем массив поста
                        
$post = $this->inDB->get_fields('cms_blog_posts', "id='$target_id'", 'blog_id, allow_who, published');
                        if(
$post['allow_who'] != 'all' || !$post['published']) { $is_hidden = 1; }
                        
// получаем массив блога
                        
$blog = $this->inDB->get_fields('cms_blogs', "id='{$post['blog_id']}'", 'allow_who');
                        if(
$blog['allow_who'] != 'all') { $is_hidden = 1; }
                        break;

        }

        return 
$is_hidden;

    }
/* ==================================================================================================== */
/* ==================================================================================================== */

    // 
    // этот метод является хуком и вызывается при изменении рейтинга объекта blogpost
    // см. таблицу cms_rating_targets
    //
    
public function updateRatingHook($target, $item_id, $points) {

        if (
$target != 'blogpost' || !$item_id || abs($points)!=1) { return false; }

        
$sql = "UPDATE cms_blogs b, cms_blog_posts p
                SET b.rating = b.rating + (
{$points}), p.rating = p.rating + ({$points})
                WHERE p.blog_id = b.id AND p.id = 
{$item_id}";

        
$this->inDB->query($sql);

        return 
true;

    }

/* ==================================================================================================== */
/* ==================================================================================================== */

    
public static function getPostURL($bloglink, $seolink){

        return 
'/blogs/'.$bloglink.'/'.$seolink.'.html';

    }

/* ==================================================================================================== */
/* ==================================================================================================== */

    
public static function getBlogURL($bloglink, $page=1, $cat_id=0){

        
$cat_section  = ($cat_id >0 ? '/cat-'.$cat_id   : '');
        
$page_section = ($page   >1 ? '/page-'.$page    : '');

        return 
'/blogs/'.$bloglink.$cat_section.$page_section;

    }

/* ==================================================================================================== */
/* ==================================================================================================== */

}
Онлайн: 1
Реклама