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

kab2008

Постоялец
Регистрация
15 Фев 2008
Сообщения
147
Реакции
23
Ищу программиста DLE для доработки модуля:
- Самые просматриваемые посты за текущий день
- Для просмотра ссылки Войди или Зарегистрируйся

На DLE 15.1 хак еще работал, на DLE 18.0 - уже нет.
Кто может взяться и какая цена?
 
Ищу программиста DLE для доработки модуля:
- Самые просматриваемые посты за текущий день
- Для просмотра ссылки Войди или Зарегистрируйся

На DLE 15.1 хак еще работал, на DLE 18.0 - уже нет.
Кто может взяться и какая цена?
вот этот шаг теперь меняется не в show.full.php как у автора а в engine/ajax/adminfunction.php
Открыть файл engine/ajax/adminfunction.php
Найти код (2шт)
news_read=news_read+1

Заменить на:
news_read=news_read+1, day_read=day_read+1
 
Еще раз перепроверил. Не работает. Я с самого начала нашел этот участок, но и вторая перепроверка ничего не дала.
Код:
Сначало делаем запрос к базе

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');
 
Код:
Сначало делаем запрос к базе

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');

Если вы написали этим инструкцию для подключения, то не затруднит ли вас написать это в самом понятном виде?
 
Если вы написали этим инструкцию для подключения, то не затруднит ли вас написать это в самом понятном виде?
1. Делаем запрос к базе
Код:
ALTER TABLE `dle_post_extras` ADD `day_read` INT( 6 ) NOT NULL DEFAULT '0';
2. находим в engine\modules\show.custom.php
Код:
$tpl->set( '', $news_find );
выше вставляем
Код:
$news_find['{day_read}'] = number_format($row['day_read'], 0, ',', ' ');
3. находим в engine\modules\functions.php
Код:
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";
         }
4. находим в engine\modules\cron.php
Код:
if( $cron == 2 ) {
ниже вставляем
Код:
$db->query( "UPDATE " . PREFIX . "_post_extras SET day_read=0" );
5. находим в engine\ajax\adminfunction.php в двух местах
Код:
news_read=news_read+1
и заменяем на
Код:
news_read=news_read+1, day_read=day_read+1
и в шаблоне вставляем
Код:
{custom template="topnews" order="day_read" limit="40"}
например в templates\Default\modules\rightside.tpl
Код:
[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
Код:
<li>
     {title} - ({views} + <b>{day_read}</b>)<br/>
  </li>
как-то так :)
 
1. Делаем запрос к базе
Код:
ALTER TABLE `dle_post_extras` ADD `day_read` INT( 6 ) NOT NULL DEFAULT '0';
2. находим в engine\modules\show.custom.php
Код:
$tpl->set( '', $news_find );
выше вставляем
Код:
$news_find['{day_read}'] = number_format($row['day_read'], 0, ',', ' ');
3. находим в engine\modules\functions.php
Код:
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";
         }
4. находим в engine\modules\cron.php
Код:
if( $cron == 2 ) {
ниже вставляем
Код:
$db->query( "UPDATE " . PREFIX . "_post_extras SET day_read=0" );
5. находим в engine\ajax\adminfunction.php в двух местах
Код:
news_read=news_read+1
и заменяем на
Код:
news_read=news_read+1, day_read=day_read+1
и в шаблоне вставляем
Код:
{custom template="topnews" order="day_read" limit="40"}
например в templates\Default\modules\rightside.tpl
Код:
[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
Код:
<li>
     {title} - ({views} + <b>{day_read}</b>)<br/>
  </li>
как-то так :)

Невероятно, а так работает!
Спасибо огромное!
Не затруднит ли вас подсказать, а как присоединить правильно в эти коды еще и возможность month_read ?
Или это всё делается отдельно от day_read ?
 
Назад
Сверху