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

Как сделать вывод новостей из архива только из одной категории?


     04.01.2015    Все вопросы » Общие вопросы по PHP    2977

вопрос
Здравствуйте! Я уже задавал вопрос о том, как в календаре сделать вывод новостей только из одной категории. Вот ссылка на мой вопрос:

https://dle-faq.ru/faq/phpquest/13426-kak-v-kalendare-sdelat-vyvod-novostey-tolko-iz-odnoy-kategorii.html

Теперь в календаре выводятся новости из той категории, что мне нужно. Но когда я кликаю на любую дату - выводятся новости из всех категорий за это число. Как сделать, чтобы новости за это число также выводились из одной категории? Буду благодарен за ответ!

Ответил: Sander


Открыть файл engine/ajax/calendar.php
Найти строку
$sql = "";

После нее вставить:
$where_date .= " AND category regexp '[[:<:]]666[[:>:]]'";

где 666 - ID вашей категории.

Если новости отмечаются только в одной категории, то вставлять лучше строку
$where_date .= " AND category = '666'";

3 комментария

FastFud
Юзер

FastFud - 4 января 2015 09:39 -

Найти:
$tpl->result['calendar'] = dle_cache( "calendar", $cache_id );
if( ! $tpl->result['calendar'] ) {
и ниже добавить
$where_cat .= " AND category = '666'";
далее, найти ниже 2 запроса
$sql = "SELECT DISTINCT DAYOFMONTH(date)
в эти запроса
ПОСЛЕ
$where_date
ДОБАВИТЬ
. $where_cat
Очистить кэш в админпанели.

P.S. я не пробовал так что не уверен что будет работать.

Shobo
Юзер

Shobo - 4 января 2015 23:55 -

К сожалению, ни один из ответов не работают( Есть еще какие-нибудь варианты?

zemlia-zemlia
Юзер

zemlia-zemlia - 26 февраля 2016 18:41 -

Есть. Надо в файле engine/engine php найти три блока отвечающие за вывод новостей в архиве.
################ Новости за день #################
################ Новости за месяц #################
################ Новости за год #################

в конце каждого блока есть по 2 строки типа
$sql_select = "SELECT p.id, p.autor, p.date, p.БЛАБЛА БЛА
$sql_count = "SELECT COUNT(*) as counБЛА БЛА

перед ними в каждом блоке надо поставить строку

$where_date .= " AND category = '1'";

где 1 это номер категории из которой выводить.

если же необходимо несколько категорий указать то тогда
$where_date .= " AND category IN (1,2,3)";
выведет новости из 1, 2, 3 категории

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

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

наверх