22
дек
Автор: MSW
Версия DLE: 9.6-9.8
Сайт поддержки: /
Хак 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.
Инструкция в текстовом варианте:
78
918 b
category-related-news.txt.zip
Загружен: 22-12-2012, 12:03 / MD5: e46011ff9d5526a864853c1c6584d49e
* Внимание! Это инструкция по изменению логики работы стандартной функции вывода похожих новостей! Она не включает в себя инструкцию по оформлению вывода похожих новостей как на скриншоте!
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.