DLE 9.8 и модификация {topnews}

(Ответов: 9, Просмотров: 3248)
  1. Banned
    • Регистрация: 07.06.2011
    • Сообщений: 757
    • Репутация: 350
    • Webmoney BL: ?
    Всем привет!

    Возникла острая необходимость выводить в модуле {topnews} новости только из определенных категорий. Методом поиска в Google, были найдены некоторые решения, одно из которых "AlterTop News", но проблема состоит в том, что после установки данного хака возникает ошибка 1054 MySQL (в общем-то, в данном случае, это не имеет значения). Я пытался исправить эту ошибку, но у меня не получается. Мои знания в этой области довольно-таки небольшие. Да и в последних версиях структура БД сильно поменялась, удалены некоторые разделы, что затрудняет поиск решения.

    Поэтому, возник вопрос: может, кто для себя модифицировал AlterTop News для версии 9.8 и поделиться? :) Либо, возможно, кто-то реализовал вывод рейтинговых новостей другими способами (я так понимаю, что через {custom} это не представляется возможным?). Также хотел бы подметить тот факт, что реализовать вывод рейтинговых публикаций только из некоторых категорий необходимо без установки дополнительных модулей.

    Заранее всем спасибо!
    • 0
  2. Banned
    • Регистрация: 22.05.2011
    • Сообщений: 129
    • Репутация: 23
    я бы при формировании {topnews} указал необходимые категории в запросе и все.
    Код:
    SELECT * FROM dle_POST where category=1 OR category=2 ORDER BY related DESC
    по-моему {topnews} формируется в /modules/function.php

    сейчас проверить не могу под рукой нет DLE
    • 1

    Спасибо сказали:

    chak(14.03.2013),
  3. Banned
    • Регистрация: 07.06.2011
    • Сообщений: 757
    • Репутация: 350
    • Webmoney BL: ?
    24list,

    Код:
    $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']}" );
    По идее, вот формируется {topnews}. Это в файле /engine/modules/topnews.php.

    Не подскажите ли еще, как правильно вставить
    Код:
    SELECT * FROM dle_POST where category=1 OR category=2 ORDER BY related DESC
    в вышеприведенный запрос? :)
    • 0
  4. Banned
    • Регистрация: 22.05.2011
    • Сообщений: 129
    • Репутация: 23
    {topnews} - это список самых популярных постов, часто выводится где-то сбоку
    мы говорим об одном и том же?
    вы привели запрос вывода новостей в текущей категории {custom}
    • 0
  5. Banned
    • Регистрация: 07.06.2011
    • Сообщений: 757
    • Репутация: 350
    • Webmoney BL: ?
    24list,
    Да, верно, мне нужно модифицировать {topnews}, который часто выводится где-то сбоку.

    Вышеприведенный мною запрос был найден в файле topnews.php. Возникает вопрос: что делает {custom} в topnews.php? Мне кажется, тут вы ошиблись, так как код:
    Код:
    INTERVAL 1 MONTH AND
    и всё что далее, как бы намекает, что идет выборка ТОП публикаций за месяц.

    Для вывода {custom} используется немного другой запрос.
    • 0
  6. Banned
    • Регистрация: 22.05.2011
    • Сообщений: 129
    • Репутация: 23
    точно

    Код:
    $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']}" );
    5- ваша категория
    Последний раз редактировалось 24list; 14.03.2013 в 10:09.
    • 1

    Спасибо сказали:

    chak(14.03.2013),
  7. Banned
    • Регистрация: 07.06.2011
    • Сообщений: 757
    • Репутация: 350
    • Webmoney BL: ?
    24list, я так понимаю, чтобы добавить еще категории, нужно их через and перечислять? То есть, and category=5 and category=6 and category=7 и так далее?

    Спасибо за помощь. Работоспособность проверю немного позже.
    • 0
  8. Banned
    • Регистрация: 22.05.2011
    • Сообщений: 129
    • Репутация: 23
    Цитата Сообщение от chak Посмотреть сообщение
    То есть, and category=5 and category=6 and category=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']}" );
    выбираем самые популярные новости из категорий 5,6,7
    Последний раз редактировалось 24list; 14.03.2013 в 20:29.
    • 1

    Спасибо сказали:

    chak(14.03.2013),
  9. Дипломник Аватар для stickman
    • Регистрация: 19.01.2011
    • Сообщений: 128
    • Репутация: 41
    • Webmoney BL: ?
    а не проще сделать это через 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.
    • 1

    Спасибо сказали:

    chak(28.03.2013),
  10. Студент Аватар для Dilus
    • Регистрация: 30.04.2012
    • Сообщений: 42
    • Репутация: 1
    chak, вам поможет модуль blok pro
    • 0

Похожие темы

Темы Раздел Ответов Последний пост
Модификация WP меню, возможно ли?
Web программирование 1 16.01.2012 01:12
Модификация WP меню, возможно ли?
Вопросы от новичков 0 16.01.2012 00:28

У кого попросить инвайт?

Вы можете попросить инвайт у любого модератора:

Информеры