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

Необходимо реализовать вывод рейтинговых новостей на сайте за все время


     15.03.2014    Все вопросы » Модули    1611

вопрос
Всем Привет. Как в topnews.php изменить код, отвечающий за лимит времени вывода популярных новостей?!

В дле 10.1 вот этот код, где, как я понял INTERVAL 1 MONTH AND означает вывод популярных новостей на 1 месяц.

$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']}" );

Как сделать так, что бы там было отображение за все время существования сайта. )) Или можно указать немалую циферку? 50 месяцев например?! ))

Ответил: D0Gmatist


p.date >= '$this_month' - INTERVAL 1 MONTH AND p.date < '$this_month'


Значение Type => Ожидаемый формат expr

SECOND => SECONDS
MINUTE => MINUTES
HOUR => HOURS
DAY => DAYS
MONTH => MONTHS
YEAR => YEARS
MINUTE_SECOND => "MINUTES:SECONDS"
HOUR_MINUTE => "HOURS:MINUTES"
DAY_HOUR => "DAYS HOURS"
YEAR_MONTH => "YEARS-MONTHS"
HOUR_SECOND => "HOURS:MINUTES:SECONDS"
DAY_MINUTE => "DAYS HOURS:MINUTES"
DAY_SECOND => "DAYS HOURS:MINUTES:SECONDS"

если за всё время то по идее просто вырезать условия селекта ограничивающие вывод датой
$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 ORDER BY rating DESC, comm_num DESC, news_read DESC, date DESC LIMIT 0,{$config['top_number']}" );

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

D0Gmatist
Местный

D0Gmatist - 15 марта 2014 16:49 -

p.date >= '$this_month' - INTERVAL 1 MONTH
- INTERVAL 1 MONTH

Значение Type => Ожидаемый формат expr

SECOND => SECONDS
MINUTE => MINUTES
HOUR => HOURS
DAY => DAYS
MONTH => MONTHS
YEAR => YEARS
MINUTE_SECOND => "MINUTES:SECONDS"
HOUR_MINUTE => "HOURS:MINUTES"
DAY_HOUR => "DAYS HOURS"
YEAR_MONTH => "YEARS-MONTHS"
HOUR_SECOND => "HOURS:MINUTES:SECONDS"
DAY_MINUTE => "DAYS HOURS:MINUTES"
DAY_SECOND => "DAYS HOURS:MINUTES:SECONDS"

если за всё время то по идее просто вырезать условия селекта ограничивающие вывод датой
$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 ORDER BY rating DESC, comm_num DESC, news_read DESC, date DESC LIMIT 0,{$config['top_number']}" );

Каждый программист знает - в правильном софте все должно быть прекрасно:
и пользовательский интерфейс, и программные решения, и гениальные ошибки!
Болтовня ничего не стоит. Покажите мне код.

D0Gmatist
Местный

D0Gmatist - 15 марта 2014 16:55 -

Если помогло отпишитесь,,, самому интересно... просто не затрагивал эту часть DLE... не было нужды

Каждый программист знает - в правильном софте все должно быть прекрасно:
и пользовательский интерфейс, и программные решения, и гениальные ошибки!
Болтовня ничего не стоит. Покажите мне код.

Timkab
Юзер

Timkab - 15 марта 2014 16:59 -

Я написал вместо 1 -50 просто, типа 50 месяцев. )) Так вроде сработало. )

D0Gmatist
Местный

D0Gmatist - 15 марта 2014 19:56 -

лучше тогда заменить MONTH на HOUR и число 4
50 месяцев это округлённо 4 года

Каждый программист знает - в правильном софте все должно быть прекрасно:
и пользовательский интерфейс, и программные решения, и гениальные ошибки!
Болтовня ничего не стоит. Покажите мне код.

dj-avtosh
шашлычник

dj-avtosh - 16 марта 2014 06:47 -

Ответ же был правильный дан. Для чего это 50 месяцев?

skype: elhan.isaev

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

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

наверх