Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Хаки » Как скрыть категорию из общей RSS

Как скрыть категорию из общей RSS


     29.08.2011    rss, категории, хак    Все вопросы » Хаки    5351

вопрос
Мне очень нужно исключить попадание новостей из определённой категории в общую ленту новостей RSS. Но я не знаю как это сделать. Помогите пожалуйста recourse

Ответил: ПафНутиЙ


Открываем файл engine/rss.php
ищем:
$db->query( "SELECT * FROM " . PREFIX . "_category ORDER BY posi ASC" );

меняем на:
$db->query( "SELECT * FROM " . PREFIX . "_category ORDER BY NOT IN (1,2,3) posi ASC" );

где 1,2,3 - категории

UPD by Sander
По-моему меняем на:
$db->query( "SELECT * FROM " . PREFIX . "_category WHERE category NOT IN (1,2,3) ORDER BY posi ASC" );

14 комментариев

NANO
Юзер

NANO - 9 ноября 2012 05:28 -

Не работает на DLE 9.7

matro-skin
Юзер

matro-skin - 4 июля 2013 14:19 -

Пробовал 2 варианта, не исключает категории. dle 9.8

matro-skin
Юзер

matro-skin - 4 июля 2013 14:23 -

matro-skin,Кеш чистил

alekun
Юзер

alekun - 28 сентября 2013 18:09 -

Актуально ли это для dle 10.0? Есть ли рабочий вариант? Очень нужно!

dj-avtosh
PHP-developer

dj-avtosh - 28 сентября 2013 18:15 -

Должно работать. Не подскажете как там выглядит сейчас запрос в дле 10?

https://elkhan.ru
По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

alekun
Юзер

alekun - 28 сентября 2013 18:19 -

По умолчанию такой же как в примере.

dj-avtosh
PHP-developer

dj-avtosh - 28 сентября 2013 18:21 -

Значит должно работать.

https://elkhan.ru
По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

alekun
Юзер

alekun - 28 сентября 2013 18:23 -

Попробовал указанные пафнутием способы. Результат в DLE 10.0

для строки $db->query( "SELECT * FROM " . PREFIX . "_category WHERE category NOT IN (1,2,3) ORDER BY posi ASC" ); от Сандера
Итог:
MySQL error in file: /home/site/www/engine/rss.php at line 76
Error Number: 1054
The Error returned was:
Unknown column 'category' in 'where clause'
SQL query:

SELECT * FROM dle_category WHERE category NOT IN (3) ORDER BY posi ASC

//как я понял, в ошибке говорится, что нет такой таблицы, верно? Если префикc не менялся, то нужно заменить category на dle_category? Направьте в верном направлении плиз.

Строка Пафнутия $db->query( "SELECT * FROM " . PREFIX . "_category ORDER BY NOT IN (1,2,3) posi ASC" );
Остается без изменения. выводится без исключения.

alekun
Юзер

alekun - 28 сентября 2013 18:54 -

Если прописать $db->query( "SELECT * FROM " . PREFIX . "_category WHERE ID NOT IN (1,2,3) ORDER BY posi ASC" );

то посты остаются на месте, пропадает только название категории из ссылки.

dj-avtosh
PHP-developer

dj-avtosh - 28 сентября 2013 19:38 -

Покажите запрос с таблицей post, если есть

https://elkhan.ru
По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

alekun
Юзер

alekun - 10 октября 2013 12:49 -

Не очень понял о чем вы. Таблица пост там не запрашивается, только ***_category

alekun
Юзер

alekun - 8 ноября 2013 23:22 -

Вопрос решен, если кому интересно пишите в личку. Продам хак.
Умеет: исключать категории и отдельные посты из RSS

bonnas
Юзер

bonnas - 10 июня 2014 02:02 -

Отдаю даром так как на серчинжайне нашел! Работает на 10.1

Открываете файл /engine/modules/show.short.php, находите строку
Цитата:
while ( $row = $db->get_row( $sql_result ) ) {
и сразу после неё вставляете
Цитата:
$cat_id = 1; // ID категории, которую необходимо исключить
if (isset($view_template) && $view_template == "rss" && preg_match("#[^0-9]*".$cat_id."[^0-9]*#", $row['category'])) continue;

Killerkiss
Юзер

Killerkiss - 17 октября 2014 16:40 -

Тоже мучался в поисках решения. На 10.2. рабочий вариант

Открываете файл /engine/modules/show.short.php, находите строку
while ( $row = $db->get_row( $sql_result ) ) {

и сразу после неё вставляете

$cat_id = '5'; // ID категории, которую необходимо исключить
        if (isset($view_template) && $view_template == "rss" && $row['category'] == $cat_id) continue;

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх