Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы по PHP » Запретить вывод определенной категории в "похожих новостях"

Запретить вывод определенной категории в "похожих новостях"


     08.01.2013    Общие вопросы по PHP, Хаки    6850

вопрос
Подскажите, как в похожих новостях и в поиске запретить вывод определенной категории? Ситуация следующая, на сайте имеет каталог фильмов и ведется параллельно категория с новостями, мне нужно что бы в поиске и в related news не выводились материалы с категории новостей.

Ответил: BR0kEN


Открыть show.full.php, найти:
$db->query( "SELECT id, date, short_story, xfields, title, category, alt_name FROM " . PREFIX . "_post WHERE {$allowed_cats}MATCH (title, short_story, full_story, xfields) AGAINST ('$body') AND id != " . $row['id'] . " AND approve=1" . $where_date . " LIMIT " . $config['related_number'] );
и заменить на:
                    if ( $config['not_add_to_related'] !== '' ) $not_add_to_related = "AND category NOT IN (" . $config['not_add_to_related'] . ") ";
                    else $not_add_to_related = "";

                    $db->query( "SELECT id, date, short_story, xfields, title, category, alt_name FROM " . PREFIX . "_post WHERE {$allowed_cats}MATCH (title, short_story, full_story, xfields) AGAINST ('$body') AND id != " . $row['id'] . " {$not_add_to_related}AND approve=1" . $where_date . " LIMIT " . $config['related_number'] );
Открыть /engine/inc/options.php, найти:
        showRow( $lang['opt_sys_reason'], $lang['opt_sys_reasond'], "<textarea class=\"edit bk\" style=\"width:350px;height:100px;\" name=\"save_con[offline_reason]\">{$config['offline_reason']}</textarea>" );
ниже добавить:
        showRow( $lang['not_add_to_related'], $lang['not_add_to_related_d'], "<input class=\"edit bk\" type=text style=\"text-align: center;\" name=\"save_con[not_add_to_related]\" value=\"{$config['not_add_to_related']}\" size=\"40\" />" );
Открыть /language/Russian/adminpanel.lng, найти:
'wysiwyg_language'        =>  "ru",
и ниже добавить:
'not_add_to_related'    =>    "Не выводить в {related-news}",
'not_add_to_related_d'    =>    "Введите, через запятую и без пробелов, ID категорий которые не должны отображаться в похожих новостях",
Затем заходите в админку, открываете настройки и пишете через запятую ID категорий, которые не должны выводиться в похожих публикациях (в таком формате: 29,30,31,32,33). Также не забудьте перестроить кэш похожих новостей.

з.ы. Если в админке поле не нужно, то в show.full.php нужно найти:
$db->query( "SELECT id, date, short_story, xfields, title, category, alt_name FROM " . PREFIX . "_post WHERE {$allowed_cats}MATCH (title, short_story, full_story, xfields) AGAINST ('$body') AND id != " . $row['id'] . " AND approve=1" . $where_date . " LIMIT " . $config['related_number'] );
и заменить на:
$db->query( "SELECT id, date, short_story, xfields, title, category, alt_name FROM " . PREFIX . "_post WHERE {$allowed_cats}MATCH (title, short_story, full_story, xfields) AGAINST ('$body') AND id != " . $row['id'] . " AND category NOT IN (29,30,31,32,33) AND approve=1" . $where_date . " LIMIT " . $config['related_number'] );
В этом варианте придется каждый раз править файл show.full.php чтобы дописать нужный id категории.
Отредактировал 10-01-2013, 08:22 - BR0kEN
Причина: второй раз поправил ответ - парсер съедает код!

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

shadow6630
Юзер

shadow6630 - 8 января 2013 22:26 -

Используйте БлокПро, там есть функция исключения категорий, вот ссыль тык

dj-avtosh
PHP-developer

dj-avtosh - 9 января 2013 01:58 -

А можно и хак написать за долларов 20)))

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

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

Sander
PHP-developer

Sander - 9 января 2013 02:09 -

Это за пару слов в запросе - 20$ ?
WHERE category not in (1,2,3)

SanDev.pro - мой блог.

Telegram: @sandev
Skype: Sander8804

maggotische
Юзер

maggotische - 9 января 2013 14:24 -

а можно подробнее пожалуйста? В какой запрос нужно добавить? Потому что вариант описаный в ответе к сожалению не подходит, каждый день добавляется порядка 5 новостей в категорию, нереально каждый раз провить список постов, нужен вариант именно с закрытием определенной категории

dj-avtosh
PHP-developer

dj-avtosh - 10 января 2013 08:08 -

Это в плане что бы в админке сделать возможность настраивать индивидуально.

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

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

BR0kEN
Эксперт

BR0kEN - 9 января 2013 14:49 -

Ответ изменил, был жутко сонный и написал для публикаций вместо категорий.

maggotische
Юзер

maggotische - 9 января 2013 18:25 -

спасибо большое, а как подобным образом можно исключить категории из поиска?

maggotische
Юзер

maggotische - 9 января 2013 18:33 -

прошу прощения, так и не нашел где вводить то ID категорий?)

maggotische
Юзер

maggotische - 9 января 2013 18:35 -

уже нашел, только нет поля для ввода данных (см. Скрин)
http://storage6.static.itmages.com/i/13/0109/h_1357742077_6994736_ae5c0053b5.png

maggotische
Юзер

maggotische - 9 января 2013 19:17 -

так же с этим хаком после добалвения новой новости если попробовать ее открыть на сайте получаем ошибку (см. Скрин)
http://storage5.static.itmages.com/i/13/0109/h_1357744632_5601100_5fb29a961c.png

iwanowi4
Юзер

iwanowi4 - 9 января 2013 20:01 -

Открыть /engine/inc/options.php, найти:
    showRow( $lang['opt_sys_reason'], $lang['opt_sys_reasond'], "<textarea class=\"edit bk\" style=\"width:350px;height:100px;\" name=\"save_con[offline_reason]\">{$config['offline_reason']}</textarea>" );

ниже добавить:
    showRow( $lang['not_add_to_related'], $lang['not_add_to_related_d'], "<input class=\"edit bk\" type=text style=\"text-align: center;\" name=\"save_con[not_add_to_related]\" value=\"{$config['not_add_to_related']}\" size=\"40\" />" );

BR0kEN
Эксперт

BR0kEN - 9 января 2013 19:40 -

Что-то не так делаете. Проверил на новостях и на категориях, все работает.

BR0kEN
Эксперт

BR0kEN - 10 января 2013 08:22 -

Только заметил что парсер съел кусок кода. Поправил.

maggotische
Юзер

maggotische - 10 января 2013 12:52 -

спасибо, теперь работает. Однако есть 1 баг (может только у меня) если в список запрещенных категорий ввести только одну категорию то хак не работает, как только ввел 2 категории - все заработало.

dimon212909
Юзер

dimon212909 - 19 марта 2013 17:04 -

Если в админке поле не нужно, то в show.full.php нужно найти:

    $db->query( "SELECT id, date, short_story, xfields, title, category, alt_name FROM " . PREFIX . "_post WHERE {$allowed_cats}MATCH (title, short_story, full_story, xfields) AGAINST ('$body') AND id != " . $row['id'] . " AND approve=1" . $where_date . " LIMIT " . $config['related_number'] );


и заменить на:

    $db->query( "SELECT id, date, short_story, xfields, title, category, alt_name FROM " . PREFIX . "_post WHERE {$allowed_cats}MATCH (title, short_story, full_story, xfields) AGAINST ('$body') AND id != " . $row['id'] . " AND category NOT IN (29,30,31,32,33) AND approve=1" . $where_date . " LIMIT " . $config['related_number'] );



Спасибо огромное дружище, не удержался чтоб не поблагодарить! Перерыл весь инет, но кроме "БлокПро" не каких дельных советов, а зачем он мне если единственная надобность - исключить 1 - 2 категории из relatednews. В общем еще раз СПС!!!

itsmyname
Юзер

itsmyname - 23 ноября 2013 02:01 -

Специально зарегался, чтобы сказать большое спасибо! Всё работает отлично, как и нужно.

4sezona
Юзер

4sezona - 24 ноября 2014 05:37 -

Всем привет!
Возникла такая проблема: при выводе похожих новостей выводятся также новости, находящиеся на модерации.
Долго рыл интернет и наткнулся на данное решение.
Но вот почему то оно у меня не работает.
Может для версии 10.3 уже не годится такое решение проблемы?

4sezona
Юзер

4sezona - 24 ноября 2014 05:56 -

Проблема решена:

Выполнить запрос в MySQL:

UPDATE `dle_post_extras` SET `related_ids` = ""

Astral
Юзер

Astral - 24 июня 2017 07:05 -

Ребят, подскажите, на 11.3 все сделал, в админке вписал какие категории исключить, но все равно выводит то что исключил... Кеш чистил, перестроение публикаций делал... ничего не помогло

RedFox
Юзер

RedFox - 11 июля 2018 17:05 -

Для DLE 13 в виде плагина кто-нить адаптирует?
Кину соточку на чипсы (ЯндексД) :)

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

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

наверх