Самый просматриваемый материал за текущий день
Пошел ажиотаж данной темы, много обсуждений и т.п. Вот я и решил сделать свой вариант.
Вывод производится стандартным тегом {custom}.
Прошу внимательно прочитать принцип работы.
Метод основан на алгоритме предложенном в этой теме.
Его особенность заключается в том, что в счетчике просмотров учитываются только просмотры за текущий день, т.е. с 00:01 до текущего момента.
Вот для примера включил у себя:
Как видно, сначала сортируется по наибольшему количеству дневного просмотра, потом по общему количеству (если количества дневных просмотров равны).
Шаблон:
{title} - просто заголовок
{views} - общее количество просмотров, стандартно
{day_read} - количество просмотров за текущий день
Так же отдельно стоит отметить, что данный метод работает только при выключенном (!) кешировании счетчика просмотров.
Установка:
Выполнить запрос в БД:
Открыть файл engine/modules/functions.php
Найти строку:
DLE 11:
После нее вставить:
Открыть файл engine/modules/show.full.php
Найти код (2шт):
Заменить на:
Открыть файл engine/modules/cron.php
Найти строку:
После нее вставить:
Это будет сбрасывать ежедневный счетчик.
Этот пункт выполнять только если нужна возможность вывода тега {day_read}
Открыть файл engine/modules/show.custom.php
Найти строку:
После нее вставить:
В шаблоне сайта выводить, например так:
С уважением,
Олег Александрович a.k.a. Sander
Вывод производится стандартным тегом {custom}.
Прошу внимательно прочитать принцип работы.
Метод основан на алгоритме предложенном в этой теме.
Его особенность заключается в том, что в счетчике просмотров учитываются только просмотры за текущий день, т.е. с 00:01 до текущего момента.
Вот для примера включил у себя:
Как видно, сначала сортируется по наибольшему количеству дневного просмотра, потом по общему количеству (если количества дневных просмотров равны).
Шаблон:
{title} - ({views} + <b>{day_read}</b>)<br/>
{title} - просто заголовок
{views} - общее количество просмотров, стандартно
{day_read} - количество просмотров за текущий день
Так же отдельно стоит отметить, что данный метод работает только при выключенном (!) кешировании счетчика просмотров.
Установка:
Выполнить запрос в БД:
ALTER TABLE `dle_post_extras` ADD `day_read` INT( 6 ) NOT NULL DEFAULT '0';
Открыть файл engine/modules/functions.php
Найти строку:
if ($match[1] == "title" ) $news_msort = "ASC";
DLE 11:
if ($match[1] == "rand" ) { $fixed = ""; $news_msort = ""; }
После нее вставить:
if ($match[1] == "day_read" ){
$sql_select = str_replace("e.news_read, ","e.news_read, e.day_read, ",$sql_select);
$news_sort = $match[1]." DESC, news_read";
}
Открыть файл engine/modules/show.full.php
Найти код (2шт):
news_read=news_read+1
Заменить на:
news_read=news_read+1, day_read=day_read+1
Открыть файл engine/modules/cron.php
Найти строку:
if( $cron == 2 ) {
После нее вставить:
$db->query( "UPDATE " . PREFIX . "_post_extras SET day_read=0" );
Это будет сбрасывать ежедневный счетчик.
Этот пункт выполнять только если нужна возможность вывода тега {day_read}
Открыть файл engine/modules/show.custom.php
Найти строку:
$news_find = array (
После нее вставить:
$news_find['{day_read}'] = $row['day_read'];
В шаблоне сайта выводить, например так:
{custom order="day_read" limit="10"}
С уважением,
Олег Александрович a.k.a. Sander