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

Как вывести новости в топ за отдельный промежуток времени по просмотрам из числа всех новостей?


     07.07.2015    Все вопросы » Общие вопросы    5251

вопрос
Нужно к примеру выводить новости в топ за весь период, но так чтобы считались популярные новости по просмотрам за неделю или за месяц. т.е из общего числа всех новостей будут браться популярные новости которые больше просматривались за неделю и месяц. А не учитывались новости только добавленные за текущую неделю или месяц. Как такое сделать? Кто подскажет?

Ответил: ПафНутиЙ


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

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

LazyDev
PHP-developer

LazyDev - 7 июля 2015 13:14 -

BlockPro v3 or BlockPro v4

Мой блог: LazyDev.pro

Помогаю с решением проблем на платной основе.

zip
Юзер

zip - 7 июля 2015 13:20 -

Gameer, А каким образом он так выводит?

У меня стоит к примеру так:
{include file="engine/modules/blockpro/block.pro.3.php?template=blockpro/blockpro&nocache=y&limit=5&order="reads"&catId=2&sort=vievs&day=7"}
И он выводит, только популярные новости которые добавились за неделю, и просматривались большее кол-во раз, а не те что просматривались за прошедшую неделю из общего числа всех новостей. Как тогда сделать?

LazyDev
PHP-developer

LazyDev - 7 июля 2015 13:21 -

zip, напишите Павлу (ПафНутиЙ) он поможет

Мой блог: LazyDev.pro

Помогаю с решением проблем на платной основе.

ПафНутиЙ
Админ

ПафНутиЙ - 7 июля 2015 16:33 -

Всё правильно, так и должно быть т.к. определить сколько было просмотров в какой день невозможно по умолчанию.

Каков вопрос - таков и ответ. Просто помните об этом.

zip
Юзер

zip - 7 июля 2015 14:06 -

ПафНутиЙ, спасибо. Только как все это организовать, я без понятия.

BAHO
Юзер

BAHO - 7 июля 2015 14:15 -


zip
Юзер

zip - 8 июля 2015 07:06 -

Ну создал в БД в таблице dle_post_extras колонку с названием news_read2 и скопировал в нее все значения с news_read

в show.full.php изменил функцию на
set news_read=news_read+1, news_read2=news_read2+1
в cron поставил
/cron.php?cronmode=news_read2
на еженедельное обновление.

А дальше что? как ее подключить теперь в блок вывода новостей?

так что-ли?
{custom category="2" template="blockpro/blockpro" order="reads2" days="7" limit="5"}
Но, так не работает она. Что сделал не правильно?

BAHO
Юзер

BAHO - 8 июля 2015 11:44 -

У меня выводится обычным тегом
 {topnews}

Вечером будет время напишу инструкцию.

zip
Юзер

zip - 8 июля 2015 14:08 -

Цитата: BAHO
Вечером будет время напишу инструкцию.

Напишите, пожалуйста. Очень надо. А, то совсем замучился, ни как не получается.

BAHO
Юзер

BAHO - 8 июля 2015 19:13 -

И так приступим!!!

ЗЫ: На примере реализован вывод топа по всем новостям на сайте за 1 день по просмотрам, в 00.00 сбрасывается на 0 и просмотры зачисляются по новой.

zip
Юзер

zip - 9 июля 2015 04:10 -

BAHO , Спасибо конечно. Это Самый просматриваемый материал за текущий день. Я уже пробовал делать по инструкции Сандерса. http://sandev.pro/web/49-samyy-prosmatrivaemyy-material-za-tekuschiy-den.html Но, опять ничего у меня не вышло. Может потому-что у меня DLE 10.5 поэтому может не хочет работать. т.к он писался на 10.1

denibox
Юзер

denibox - 25 января 2016 11:13 -

BAHO,

А если нет этой строчки что тогда делать? DLE 10.5
if ($match[1] == "title" ) $news_msort = "ASC";

BAHO
Юзер

BAHO - 25 января 2016 11:47 -

Попробуйте вставить после
        if ($match[1] == "rand" ) { $fixed = ""; $news_msort = ""; }

На работоспособность не проверял

zip
Юзер

zip - 9 июля 2015 04:40 -

И у меня нет такой строки

if ($match[1] == "title" ) $news_msort = "ASC";
Есть только
if ($match[1] == "rand" ) { $fixed = ""; $news_msort = "";

zip
Юзер

zip - 11 июля 2015 05:39 -

Сделал по инструкции Сандерса, но как мне сделать чтобы Cron сбрасывал значение на 0 не раз в день, а раз в неделю? к примеру. Кто подскажет? Или какую команду можно прописать в Планировщике задач на хостинге? там можно выбирать когда и во сколько сбрасывать.

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

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

 30.08.2014 mozart_dima  Общие вопросы
наверх