Сначало делаем запрос к базе
ALTER TABLE `dle_post_extras` ADD `day_read` INT( 6 ) NOT NULL DEFAULT '0';
*** templates\Default\modules\rightside.tpl
--- templates\Default\modules\rightside.tpl
***************
*** 1,19 ****
[not-available=showfull]
<aside class="rightside">
<!-- Популярное -->
<div class="block top_block">
<h4 class="title"><b>Популярное</b></h4>
<ol class="topnews">
{topnews}
</ol>
</div>
--- 1,19 ----
[not-available=showfull]
<aside class="rightside">
<!-- Популярное -->
<div class="block top_block">
<h4 class="title"><b>Популярное</b></h4>
<ol class="topnews">
{custom template="topnews" order="day_read" limit="40"}
</ol>
</div>
*** templates\Default\topnews.tpl
--- templates\Default\topnews.tpl
***************
*** 1,6 ****
<li>
<a href="{link}" title="{title}">
<b>{title}</b>
<span>{category}</span>
</a>
</li>
--- 1,3 ----
<li>
{title} - ({views} + <b>{day_read}</b>)<br/>
</li>
*** engine\modules\show.custom.php
--- engine\modules\show.custom.php
***************
*** 270,282 ****
$row['category'] = intval( $row['category'] );
if( !$allow_comments_in_cat ) $row['comm_num'] = 0;
$news_find = array ('{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}' => '' );
$tpl->set( '', $news_find );
$compare_date = compare_days_date($row['date'], $short_news_cache);
if( !$compare_date ) {
--- 270,284 ----
$row['category'] = intval( $row['category'] );
if( !$allow_comments_in_cat ) $row['comm_num'] = 0;
$news_find = array ('{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}' => '' );
$news_find['{day_read}'] = number_format($row['day_read'], 0, ',', ' ');
$tpl->set( '', $news_find );
$compare_date = compare_days_date($row['date'], $short_news_cache);
if( !$compare_date ) {
*** engine\modules\functions.php
--- engine\modules\functions.php
***************
*** 2139,2150 ****
--- 2139,2155 ----
$match[1] = strtolower($match[1]);
if ( $allowed_sort[$match[1]] ) $news_sort = $allowed_sort[$match[1]];
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";
}
if($match[1] == "id_as_list" AND $ids_for_sort){
$news_sort = $ids_for_sort;
$news_msort = "";
}
*** engine\modules\cron.php
--- engine\modules\cron.php
***************
*** 54,66 ****
if ( $cron_clear_cache ) clear_cache( array('news_', 'full_') );
}
if( $cron == 2 ) {
$db->query( "TRUNCATE TABLE " . PREFIX . "_login_log" );
$db->query( "TRUNCATE TABLE " . PREFIX . "_flood" );
$db->query( "TRUNCATE TABLE " . PREFIX . "_mail_log" );
$db->query( "TRUNCATE TABLE " . PREFIX . "_read_log" );
$db->query( "TRUNCATE TABLE " . PREFIX . "_spam_log" );
$db->query( "TRUNCATE TABLE " . PREFIX . "_banners_logs" );
--- 54,66 ----
if ( $cron_clear_cache ) clear_cache( array('news_', 'full_') );
}
if( $cron == 2 ) {
$db->query( "UPDATE " . PREFIX . "_post_extras SET day_read=0" );
$db->query( "TRUNCATE TABLE " . PREFIX . "_login_log" );
$db->query( "TRUNCATE TABLE " . PREFIX . "_flood" );
$db->query( "TRUNCATE TABLE " . PREFIX . "_mail_log" );
$db->query( "TRUNCATE TABLE " . PREFIX . "_read_log" );
$db->query( "TRUNCATE TABLE " . PREFIX . "_spam_log" );
$db->query( "TRUNCATE TABLE " . PREFIX . "_banners_logs" );
*** engine\ajax\adminfunction.php 2024-12-29
--- engine\ajax\adminfunction.php 2025-02-19
***************
*** 216,236 ****
$readcount = $db->super_query( "SELECT count(*) as count FROM " . PREFIX . "_read_log WHERE news_id='{$row['news_id']}' AND ip='{$_IP}'" );
if( !$readcount['count'] ) {
if( $config['cache_count'] ) $db->query( "INSERT INTO " . PREFIX . "_views (news_id) VALUES ('{$row['news_id']}')" );
else $db->query( "UPDATE " . PREFIX . "_post_extras SET news_read=news_read+1 WHERE news_id='{$row['news_id']}'" );
$db->query( "INSERT INTO " . PREFIX . "_read_log (news_id, ip) VALUES ('{$row['news_id']}', '{$_IP}')" );
}
} else {
if( $config['cache_count'] ) $db->query( "INSERT INTO " . PREFIX . "_views (news_id) VALUES ('{$row['news_id']}')" );
else $db->query( "UPDATE " . PREFIX . "_post_extras SET news_read=news_read+1 WHERE news_id='{$row['news_id']}'" );
}
}
die('ok');
--- 216,236 ----
$readcount = $db->super_query( "SELECT count(*) as count FROM " . PREFIX . "_read_log WHERE news_id='{$row['news_id']}' AND ip='{$_IP}'" );
if( !$readcount['count'] ) {
if( $config['cache_count'] ) $db->query( "INSERT INTO " . PREFIX . "_views (news_id) VALUES ('{$row['news_id']}')" );
else $db->query( "UPDATE " . PREFIX . "_post_extras SET news_read=news_read+1, day_read=day_read+1 WHERE news_id='{$row['news_id']}'" );
$db->query( "INSERT INTO " . PREFIX . "_read_log (news_id, ip) VALUES ('{$row['news_id']}', '{$_IP}')" );
}
} else {
if( $config['cache_count'] ) $db->query( "INSERT INTO " . PREFIX . "_views (news_id) VALUES ('{$row['news_id']}')" );
else $db->query( "UPDATE " . PREFIX . "_post_extras SET news_read=news_read+1, day_read=day_read+1 WHERE news_id='{$row['news_id']}'" );
}
}
die('ok');