Исключение категорий из {related-news}

Исключение категорий из {related-news}

Простой хак, позволяющий исключить вывод определенных категорий в блоке Похожие новости. Работает только для одиночных категорий.
Установка:
1. Открыть engine/modules/show.full.php и найти, ~1140 строка:
					$db->query( "SELECT id, date, short_story, xfields, title, category, alt_name, MATCH (title, short_story, full_story, xfields) AGAINST ('{$body}') as score FROM " . PREFIX . "_post {$join_category}WHERE {$where_category}{$allowed_cats}{$not_allowed_cats}MATCH (title, short_story, full_story, xfields) AGAINST ('{$body}') AND id != " . $row['id'] . " AND approve=1" . $where_date . " ORDER BY score DESC LIMIT " . $config['related_number'] );

Участок кода:
" AND approve=1"

Заменить на:
" AND approve=1 AND category NOT IN (10,15,17)"

где 10,15,17 - ID категорий, через запятую, вывод которых нужно исключить.

Готово!
 
Версия DLE: 13.х
Кодировка: utf-8
 
Автор: ss.seregin
Источник:
  • Oxigen
  • 6
  • 666
Информация
Посетители, находящиеся в группе Гость, не могут оставлять комментарии к данной публикации.

Комментариев 6

GANKSTER 19 июня 2020 17:25
Oxigen, а почему я поместил свой вывод похожих новостей в тег [related-news][/related-news] это чтобы не лазить в шаблон , и выключить можно было просто в админке похожие новости если не нужны.
GANKSTER 19 июня 2020 17:13
Oxigen, Новости которые выводятся тегом [related-news][/related-news] они выводятся все которые есть на сайте, а если у вас новость в 2-х категориях? у вас будет сыр бор. А моя конструкция исключает сыр бор и выводит только из нужных категорий похожие новости!

Внимательно посмотрите на конструкцию!
Oxigen 18 июня 2020 20:07
GANKSTER, то что вывод через custom засунут между
[related-news][/related-news]

не делает Статьи похожими. За это в dle отвечает отдельный функционал. У вас просто выводятся новости рандомно, с использованием доп.шаблона relatednews.
GANKSTER 18 июня 2020 15:56
Oxigen, легко, в полной новости убираем тег {related-news}:
[related-news]
{related-news} - этот тег убираем или скрываем [not-group=1,2,3,4,5]{related-news}[/not-group]
[/related-news]

И используем так:
[related-news]
[catlist=1]{custom category="1"  template="relatednews" aviable="global" from="0" limit="3" cache="no" order="rand"}[/catlist]
[catlist=2]{custom category="2"  template="relatednews" aviable="global" from="0" limit="3" cache="no" order="rand"}[/catlist]
[catlist=3]{custom category="3"  template="relatednews" aviable="global" from="0" limit="3" cache="no" order="rand"}[/catlist]
[/related-news]

И все!
Oxigen 4 июня 2020 05:33
GANKSTER, как ваше подключение через custom выводит именно похожие новости?
GANKSTER 3 июня 2020 06:32
Проще и правильнее это сделать через custom, вывести стандартным методом, чем лезть куда не надо.

1. Подобной конструкцией выведет которые категории нужны к показу:
{custom category="1,2,3,4,5,6,7"  template="relatednews" aviable="global" from="0" limit="3" cache="no" order="rand"}

2. Я вообще использую вывод только похожих новостей из этой категории:
[catlist=1]{custom category="1"  template="relatednews" aviable="global" from="0" limit="3" cache="no" order="rand"}[/catlist]
[catlist=2]{custom category="2"  template="relatednews" aviable="global" from="0" limit="3" cache="no" order="rand"}[/catlist]