
Представляем новый хак дле Category Related News, который удобен и прост в установке, позволяет выводить похожие новости только из определенных категорий, где расположена просматриваемая новость. И это логичная функция, вместо вывода из всех категорий на сайте. Итак, представляем на dle9.com из рубрики хаки для DLE похожие новости только из одной категории под названием Category Related News для DLE 9.6 и 9.7.
Краткое описание, если новость расположена в категории «Фильмы»->«Мультфильмы», то в ней похожие новости будут браться только из категории «Фильмы» и всех подкатегорий данной категории и новости из других категорий, например Музыка, Программы и т.д., выводится не будут в категории фильмов.
Category Related News модуль dle похожие новости
Внимание! Так как делал для себя, то хак рабочий только на версиях DLE 9.6 и 9.7.
Особенности:- выводит новости из категорий принадлежащей родительской категории просматриваемой новости.
- не создаёт дополнительных запросов, используется стандартный механизм определения похожих новостей но с ограничением по категориям.
- не учитывает разрешённые категории по группам пользователей, в похожих выводит из всех категорий не зависимо имеет юзер доступ к просмотру новостей из неё или нет.
Установка:
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="";
Заменить на:
$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 ";
}
2. Выполнить запрос в MySQL:
UPDATE `dle_post_extras` SET `related_ids` = ""
3. Очистить кеш в админке DLE.
Инструкция в текстовом варианте:
* Внимание! Это инструкция по изменению логики работы стандартной функции вывода похожих новостей! Она не включает в себя инструкцию по оформлению вывода похожих новостей как на скриншоте!
Хак для Dle Category Related News похожие новости только из одной категории.
Автор: MSW 0-web ru
Версия datalife engine: 9.7-9.6
Ознакомится с установку в текстовом файле