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

Самый просматриваемый материал за текущий день. Как сделать для 11-йй версии DLE?


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

вопрос
В общем Инструкция такая:

Шаблон:

{title} - ({views} + {day_read})
{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"}


Такого в 11-й версии нету:

Открыть файл engine/modules/show.custom.php

Найти код:
'{views}' => $row['news_read'],


Но, есть такой код:
'{views}' => number_format($row['news_read']
,

Такого в 11-й версии нету:

Открыть файл engine/modules/functions.php

Найти строку:
if ($match[1] == "title" ) $news_msort = "ASC";


Но, есть такой код:
if ($match[1] == "rand" ) { $fixed = ""; $news_msort = "";


Кто подскажет, как сделать?

Ответил: Sander


Скажу по секрету, у этого хака есть автор.
http://sandev.pro/web/49-samyy-prosmatrivaemyy-material-za-tekuschiy-den.html

PS. Через пару минут дополню инструкцию для 11 версии.

2 комментария

zip
Юзер

zip - 31 мая 2016 12:46 -

SANDER, Спасибо

Но, что-то в последнем пункте у вас не правильно:

$news_find = array ( $news_find['{day_read}'] = $row['day_read']; '{comments-num}' => number_format($row['comm_num'], 0, ',', ' '), '{views}' => number_format($row['news_read'], 0, ',', ' '), '{category}' => $my_cat, '{link-category}' => $my_cat_link, '{news-id}' => $row['id'], '{rssdate}' => date( "r", $row['date'] ), '{rssauthor}' => $row['autor'], '{approve}' => '' );


Как в инструкции у вас пишу, выходит ошибка: engine/modules/show.custom.php on line 93

Sander
PHP-developer

Sander - 31 мая 2016 13:23 -

Вы вставляете после кода, а не после всей строки как указано в инстуркции

SanDev.pro - мой блог.

Telegram: @sandev
Skype: Sander8804

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

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

наверх