Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru FAQ (все вопросы) Общие вопросы Как вывести новости в топ за отдельный промежуток времени по просмотрам из числа всех новостей?

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


     07.07.2015    Общие вопросы    1540

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

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


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

Комментарии пользователей (15)

Gameer
224

1120 | 395

Gameer - 7 июля 2015 13:14 - Эксперт

BlockPro v3 or BlockPro v4

Истина в противоречии.​

zip
129 | 7

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"}
И он выводит, только популярные новости которые добавились за неделю, и просматривались большее кол-во раз, а не те что просматривались за прошедшую неделю из общего числа всех новостей. Как тогда сделать?

Gameer
224

1120 | 395

Gameer - 7 июля 2015 13:21 - Эксперт

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

Истина в противоречии.​

ПафНутиЙ
1064

3394 | 2433

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

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

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

zip
129 | 7

zip - 7 июля 2015 14:06 - Юзер

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

BAHO
48

171 | 54

BAHO - 7 июля 2015 14:15 - Юзер


zip
129 | 7

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
48

171 | 54

BAHO - 8 июля 2015 11:44 - Юзер

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

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

zip
129 | 7

zip - 8 июля 2015 14:08 - Юзер

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

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

BAHO
48

171 | 54

BAHO - 8 июля 2015 19:13 - Юзер

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

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

zip
129 | 7

zip - 9 июля 2015 04:10 - Юзер

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

denibox
16

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

BAHO,

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

BAHO
48

171 | 54

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

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

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

zip
129 | 7

zip - 9 июля 2015 04:40 - Юзер

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

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

zip
129 | 7

zip - 11 июля 2015 05:39 - Юзер

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

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

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

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