Мы в твиттере Мы в телеграме!

Провеббер » DataLife Engine » DLE хаки » Самый просматриваемый материал за текущий день

Самый просматриваемый материал за текущий день

Данный материал предоставлен сайтом ProWebber.cc исключительно в ознакомительных целях. Администрация не несет ответственности за его содержимое.
Скачать бесплатно Самый просматриваемый материал за текущий день.

Самый просматриваемый материал за текущий день

Представляю вашему вниманию хак, который позволяет тегом 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";

После нее вставить:
        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
Найти код:
'{views}' => $row['news_read'],

Заменить на
'{views}' => $row['news_read'], '{day_read}' => $row['day_read'],



В шаблоне сайта выводить, например так:
{custom order="day_read" limit="10"}


Демо: SanDev.pro

С уважением,
Олег Александрович a.k.a. Sander

Missing update?
Checkout our NULLED Web Community


Дополнительные ссылки на скачивание ТОЛЬКО для зарегистрированных


+22
Просмотры: 6 952 :: Комментарии (4) :: :: Нужна помощь? Задайте вопрос на форуме ::
Теги: Sander, custom, views
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

#1sexo

  • 9 декабря 2013 21:33
  • Регистрация: 20.11.2009
  • Был(а) онлайн: 14.07.2016
  • Комментариев: 177
  • -1
Спасибо Sander за хак, На некоторых проектах пригодится

#2Laidman

  • 10 декабря 2013 02:46
  • Регистрация: 13.09.2012
  • Был(а) онлайн: 24.03.2014
  • Комментариев: 27
  • -1
Очень хороший хак, пригодился на проекте.

#3Слон

  • 10 декабря 2013 12:31
  • Регистрация: 14.10.2011
  • Был(а) онлайн: 13.01.2017
  • Комментариев: 333
  • -1
Сандер, не отвлекайся-дописывай мануал... )

#4Aizen sama

  • 4 апреля 2014 18:58
  • Регистрация: 18.02.2013
  • Был(а) онлайн: 16.02.2024
  • Комментариев: 18
  • -1
Так же отдельно стоит отметить, что данный метод работает только при выключенном (!) кешировании счетчика просмотров.

А что мешает в engine/modules/cron.php
news_read=news_read+{$row['count']}

заменить на
news_read=news_read+{$row['count']}, day_read=day_read+{$row['count']}


Или я чего то не понимаю?

Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.

Архив новостей
Апрель 2024 (19)
Март 2024 (18)
Февраль 2024 (27)
Январь 2024 (12)
Декабрь 2023 (12)
Ноябрь 2023 (43)
Друзья сайта