• Автор:

    Flesha
  • Добавлено:

    дек 22, 2012
  • Комментариев:

    0
  • Просмотров:

    2 478

Хак Category Related News

Хак Category Related News

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

Внимание! Хак рабочий только на версиях 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="";


Заменить на:
#*** 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.

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

Внимание! У Вас нет прав для просмотра скрытого текста.

MD5: e46011ff9d5526a864853c1c6584d49e

*Внимание! Это инструкция по изменению логики работы стандартной функции вывода похожих новостей! Она не включает в себя инструкцию по оформлению вывода похожих новостей как на скриншоте! dle
Вернуться
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.