Без рубрики - все блоги

1361
Вырожу суть хака через просьбы пользователей

Mr.Queer:
Нужно сделать, чтобы при заходе в любой блог выводились ВСЕ записи этого блога, а не только "Без рубрики". А потом уже при навигации по рубрикам выводились посты из тих конкретных рубрик. Поковырялся в компоненте - не нашел как это сделать.

LG:
Все таки блоги как то не очень смотрятся, когда в них заходишь - много чистого пространства, и категории с записями, наверху многие люди теряются, просят сделать чуть более похоже на тот же вордпресс - чтобы показываль последние записи (новые сначала), а дальше - страницы с более старыми  постами(вне зависимости от разделов, только по дате сортируются, старые в глубине)  так то показваются только категории, а если бы последние записи владельца блога сразу при заходе в блог показывались (вне зависимости от категории опубликованного поста).

Вот выкладываю свой вариант.

1. находим components/blog/model.php

Ищем блок
Код PHP:
/* ==================================================================================================== */
/* ==================================================================================================== */

    public function getPosts($blog_id, $page=0, $perpage=0, $category_id=0, $owner='user'){
...
}
/* ==================================================================================================== */
/* ==================================================================================================== */
Заменяем на

Код PHP:
public function getPosts($blog_id, $page=0, $perpage=0, $category_id=0, $owner='user'){
        $list = array();
        //Получаем записи, относящиеся к нужной странице блога
     
        if ($category_id){
	    $sql = "SELECT p.*, DATE_FORMAT(p.pubdate, '%d-%m-%Y (%H:%i)') as fpubdate, IFNULL(SUM(r.points), 0) as points, u.nickname as author, u.id as author_id
                FROM cms_blogs b, cms_users u, cms_blog_posts p
                LEFT JOIN cms_ratings r ON r.item_id=p.id AND r.target='blogpost'
                WHERE p.cat_id = $category_id AND p.blog_id = b.id AND b.id = $blog_id AND p.user_id = u.id AND p.published = 1 AND b.owner = '$owner'
                GROUP BY p.id
                ORDER BY p.pubdate DESC";

} 
else {
	$sql = "SELECT p.*, DATE_FORMAT(p.pubdate, '%d-%m-%Y (%H:%i)') as fpubdate, IFNULL(SUM(r.points), 0) as points, u.nickname as author, u.id as author_id
                FROM cms_blogs b, cms_users u, cms_blog_posts p
                LEFT JOIN cms_ratings r ON r.item_id=p.id AND r.target='blogpost'
                WHERE p.blog_id = b.id AND b.id = $blog_id AND p.user_id = u.id AND p.published = 1 AND b.owner = '$owner'
                GROUP BY p.id
                ORDER BY p.pubdate DESC";

}

        if ($page && $perpage) { $sql .= " LIMIT ".(($page-1)*$perpage).", $perpage"; }

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

        if ($this->inDB->num_rows($result)){
            while($post = $this->inDB->fetch_assoc($result)){
                $list[] = $post;
            }
        }

        return $list ?  cmsCore::callEvent('GET_POSTS', $list) : false;
    }
2.  находим components/blog/frontend.php

Код PHP:
if ($total){
заменяем на

Код PHP:
if ($total or $cat_id==0){
Вроде все! еще можно раздел без рубрики переименовать в "все разделы", но пока не нашел как
Кат в блогах.
Теги: хак, блог
Комментарии (2)
L.B.Griffin 21 августа 2009 в 21:43 +2
отлично, пойду пробовать с утра)
0 6 ноября 2009 в 00:28 +1
Ну и как успехи у меня лично вообще пропал контент блогов, тоесть пишется сколько новостей в рубриках но не отображается контент, а "Без рубрики" как было так и осталось