Всем привет!
Возникла острая необходимость выводить в модуле {topnews} новости только из определенных категорий. Методом поиска в Google, были найдены некоторые решения, одно из которых "AlterTop News", но проблема состоит в том, что после установки данного хака возникает ошибка 1054 MySQL (в общем-то, в данном случае, это не имеет значения). Я пытался исправить эту ошибку, но у меня не получается. Мои знания в этой области довольно-таки небольшие. Да и в последних версиях структура БД сильно поменялась, удалены некоторые разделы, что затрудняет поиск решения.
Поэтому, возник вопрос: может, кто для себя модифицировал AlterTop News для версии 9.8 и поделиться? :) Либо, возможно, кто-то реализовал вывод рейтинговых новостей другими способами (я так понимаю, что через {custom} это не представляется возможным?). Также хотел бы подметить тот факт, что реализовать вывод рейтинговых публикаций только из некоторых категорий необходимо без установки дополнительных модулей.
Заранее всем спасибо!
- 14.03.2013 06:46
- 14.03.2013 07:15
- Регистрация: 22.05.2011
- Сообщений: 129
- Репутация: 23
я бы при формировании {topnews} указал необходимые категории в запросе и все.
Код:по-моему {topnews} формируется в /modules/function.phpSELECT * FROM dle_POST where category=1 OR category=2 ORDER BY related DESC
сейчас проверить не могу под рукой нет DLEСпасибо сказали:
chak(14.03.2013), - 14.03.2013 07:58
24list,
Код:По идее, вот формируется {topnews}. Это в файле /engine/modules/topnews.php.$db->query( "SELECT p.id, p.date, p.short_story, p.xfields, p.title, p.category, p.alt_name FROM " . PREFIX . "_post p LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) WHERE p.approve=1 AND p.date >= '$this_month' - INTERVAL 1 MONTH AND p.date < '$this_month' ORDER BY rating DESC, comm_num DESC, news_read DESC, date DESC LIMIT 0,{$config['top_number']}" );
Не подскажите ли еще, как правильно вставитьКод:в вышеприведенный запрос? :)SELECT * FROM dle_POST where category=1 OR category=2 ORDER BY related DESC
- 14.03.2013 08:41
- Регистрация: 22.05.2011
- Сообщений: 129
- Репутация: 23
{topnews} - это список самых популярных постов, часто выводится где-то сбоку
мы говорим об одном и том же?
вы привели запрос вывода новостей в текущей категории {custom} - 14.03.2013 09:49
24list,
Да, верно, мне нужно модифицировать {topnews}, который часто выводится где-то сбоку.
Вышеприведенный мною запрос был найден в файле topnews.php. Возникает вопрос: что делает {custom} в topnews.php? Мне кажется, тут вы ошиблись, так как код:Код:и всё что далее, как бы намекает, что идет выборка ТОП публикаций за месяц.INTERVAL 1 MONTH AND
Для вывода {custom} используется немного другой запрос. - 14.03.2013 10:05
- Регистрация: 22.05.2011
- Сообщений: 129
- Репутация: 23
точно
Код:5- ваша категория$db->query( "SELECT p.id, p.date, p.short_story, p.xfields, p.title, p.category, p.alt_name FROM " . PREFIX . "_post p LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) WHERE p.approve=1 and category=5 AND p.date >= '$this_month' - INTERVAL 1 MONTH AND p.date < '$this_month' ORDER BY rating DESC, comm_num DESC, news_read DESC, date DESC LIMIT 0,{$config['top_number']}" );
Последний раз редактировалось 24list; 14.03.2013 в 10:09.
Спасибо сказали:
chak(14.03.2013), - 14.03.2013 20:21
24list, я так понимаю, чтобы добавить еще категории, нужно их через and перечислять? То есть, and category=5 and category=6 and category=7 и так далее?
Спасибо за помощь. Работоспособность проверю немного позже. - 14.03.2013 20:25
- Регистрация: 22.05.2011
- Сообщений: 129
- Репутация: 23
Не совсем так
Код:выбираем самые популярные новости из категорий 5,6,7$db->query( "SELECT p.id, p.date, p.short_story, p.xfields, p.title, p.category, p.alt_name FROM " . PREFIX . "_post p LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) WHERE p.approve=1 and (category=5 or category=6 or category=7) AND p.date >= '$this_month' - INTERVAL 1 MONTH AND p.date < '$this_month' ORDER BY rating DESC, comm_num DESC, news_read DESC, date DESC LIMIT 0,{$config['top_number']}" );
Последний раз редактировалось 24list; 14.03.2013 в 20:29.
Спасибо сказали:
chak(14.03.2013), - 14.03.2013 20:42
а не проще сделать это через custom? там есть атрибуты сортировки по популярности.
PHP код:{custom id="1,2" category="2,7" author="x" days="x" template="custom" aviable="global" from="0" limit="10" fixed="yes" order="date" cache="yes"}
order порядок сортировки новостей, может принимать следующие значения:
date - сортировка новостей по дате
rating - сортировка новостей по рейтингу
reads - сортировка новостей по количеству просмотров
comments - сортировка новостей по количеству комментариев
title - сортировка новостей по заголовкам новостей
rand - сортировка новостей в случайном порядке
---------- Сообщение добавлено 18:42 ---------- Предыдущее 18:38 ----------
в общем здесь все написано _http://dle-news.ru/extras/online/startnews.htmlПоследний раз редактировалось stickman; 14.03.2013 в 20:40.
Спасибо сказали:
chak(28.03.2013), - 11.05.2013 05:19
chak, вам поможет модуль blok pro
Тэги топика:
Похожие темы
Темы | Раздел | Ответов | Последний пост |
---|---|---|---|
Модификация WP меню, возможно ли? | Web программирование | 1 | 16.01.2012 01:12 |
Модификация WP меню, возможно ли? | Вопросы от новичков | 0 | 16.01.2012 00:28 |