Технический сбой

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

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


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

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

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


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

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

LazyDev
PHP-developer

LazyDev - -

BlockPro v3 or BlockPro v4

Мой блог: LazyDev.pro

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

zip
Юзер

zip - -

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 - -

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

Мой блог: LazyDev.pro

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

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

ПафНутиЙ - -

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

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

zip
Юзер

zip - -

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

zip
Юзер

zip - -

Ну создал в БД в таблице 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 - -

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

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

zip
Юзер

zip - -

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

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

BAHO
Юзер

BAHO - -

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

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

zip
Юзер

zip - -

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

denibox
Юзер

denibox - -

BAHO,

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

BAHO
Юзер

BAHO - -

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

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

zip
Юзер

zip - -

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

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

zip
Юзер

zip - -

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

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

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