Бормотухи.НЕТ

Вернуться   Бормотухи.НЕТ > Web-мастеру > DataLife Engine > Модули, Хаки, Примочки для DLE
Расширенный поиск

Модули, Хаки, Примочки для DLE Тут собираются темы с модулями, хаками и разными примочками для движка DataLife Engine

Ответ
 
Опции темы Поиск в этой теме
Старый 30.03.2013, 09:54 Вверх   #1
Коварный тип
 
Аватар для Serberg
Serberg вне форума
Доп. информация
Хорошо Category Related News (похожие новости только из основной категории) (Версия DLE: 9.6-9.8)

Category Related News

Автор: MSW
Версия DLE: 9.6-9.8
Сайт поддержки: http://0-web.ru/



Хак Category Related News позволяет выводить похожие новости только из основной категории расположения просматриваемой новости.

Таким образом если новость находится в Фильмы->Мультфильмы, то в ней похожие новости будут браться только из категории Фильмы и всех подкатегорий данной категории и новости из других категорий, например Музыка, Программы и т.д., выводится не будут в категории фильмов.

Внимание! Так как делал для себя, то хак рабочий только на версиях DLE 9.6 - 9.8.

Особенности:
- выводит новости из категорий принадлежащей родительской категории просматриваемой новости.
- не создаёт дополнительных запросов, используется стандартный механизм определения похожих новостей но с ограничением по категориям.
- не учитывает разрешённые категории по группам пользователей, в похожих выводит из всех категорий не зависимо имеет юзер доступ к просмотру новостей из неё или нет.

Установка:
1. Файл: /engine/modules/show.full.php
Найти:
Код:
                    $allowed_cats = array();
    
                    foreach ($user_group as $value) {
                        if ($value['allow_cats'] != "all" AND !$value['allow_short'] ) $allowed_cats[] = $db->safesql($value['allow_cats']);
                    }
    
                    if (count($allowed_cats)) {
                        $allowed_cats = implode(",", $allowed_cats);
                        $allowed_cats = explode(",", $allowed_cats);
                        $allowed_cats = array_unique($allowed_cats);
                        sort($allowed_cats);
    
                        if ($config['allow_multi_category']) {
                            
                            $allowed_cats = "category regexp '[[:<:]](" . implode ( '|', $allowed_cats ) . ")[[:>:]]' AND ";
                        
                        } else {
                            
                            $allowed_cats = "category IN ('" . implode ( "','", $allowed_cats ) . "') AND ";
                        
                        }
                    } else $allowed_cats="";
Заменить на:
Код:
#*** Category Related News * by MSW ***#
                    $cat_array = array();
                    foreach($cat_list as $post_cat) {
                        $cat_array = array_unique( array_merge( $cat_array, explode( '|', get_sub_cats( $cat_info[$post_cat]['parentid'] ) ) ) );
                    }
                    if($config['allow_multi_category']) {
                        $allowed_cats = "category regexp '[[:<:]](". implode( '|', $cat_array ) .")[[:>:]]' AND ";
                    } else {
                        $allowed_cats = "category IN ('". implode( "','", $cat_array ) ."') AND ";
                    }
#*** Category Related News * by MSW ***#
2. Выполнить запрос в MySQL:
Код:
UPDATE  `dle_post_extras` SET  `related_ids` =  ""
3. Очистить кеш в админке DLE.

Инструкция в текстовом варианте: category-related-news.txt.zip (1.1 Кб)
  Ответить с цитированием
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 17:26. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc. Перевод: zCarot
 

Время генерации страницы 0.07177 секунды с 13 запросами