Вывод количества новостей на главной

Вывод количества новостей на главной

Набор хаков, которые позволяют вывести количество опубликованных новостей на главной странице сайта за сутки, за неделю и за месяц.


Установка:
1. Открыть engine/modules/main.php и найти:
$tpl->load_template ( 'main.tpl' );

Добавить ниже:
Для вывода количества новостей за сутки:
$stats_day = dle_cache("stats_day");
if (!$stats_day) {
$time = time() - $cached;
$temp_date = date( 'Y-m-d H:i', $_TIME - (3596 * 24) );
    $row = $db->super_query( "SELECT COUNT(*) as count FROM " . PREFIX . "_post WHERE date >= '$temp_date'AND date <= '$temp_date' + INTERVAL 24 HOUR AND approve ='1'" );
    $stats_day = $row['count'];
create_cache("stats_day",$stats_day);
}
$tpl->set ( '{stats_day}', $stats_day );

В шаблоне main.tpl добавить тег обработки новостей за сутки:
{stats_day}


Для вывода количества новостей за неделю:
$stats_week = dle_cache("stats_week");
if (!$stats_week) {
$time = time() - $cached;
$temp_date = date( 'Y-m-d H:i', $_TIME - (3600 * 24 * 7) );
    $row = $db->super_query( "SELECT COUNT(*) as count FROM " . PREFIX . "_post WHERE date >= '$temp_date'AND date <= '$temp_date' + INTERVAL 7 DAY AND approve ='1'" );
    $stats_week = $row['count'];
  
     create_cache("stats_week",$stats_week);
}
$tpl->set ( '{stats_week}', $stats_week );

В шаблоне main.tpl добавить тег вывода количества новостей за неделю:
{stats_week}


Для вывода количества новостей за месяц:
$cached = 3500;
$stats_month = dle_cache("stats_month");
if (!$stats_month) {
$time = time() - $cached;
    $temp_date = date( 'Y-m-d H:i', $_TIME - (3600 * 24 * 31) );
    $row = $db->super_query( "SELECT COUNT(*) as count FROM " . PREFIX . "_post WHERE date >= '$temp_date'AND date <= '$temp_date' + INTERVAL 31 DAY AND approve ='1'" );
    $stats_month = $row['count'];
    create_cache("stats_month",$stats_month);
}
$tpl->set ( '{stats_month}', $stats_month );

В шаблоне main.tpl добавить тег вывода количества новостей за месяц:
{stats_month}

Готово!
 
Версия DLE: 13.x-14.x
Информация
Посетители, находящиеся в группе Гость, не могут оставлять комментарии к данной публикации.

Комментариев 2

Oxigen 27 сентября 2021 04:00
rondella, хабр подсказывает:
$allcount = dle_cache('news_count');
if(empty($allcount)){
    $allcount = $db->super_query("SELECT count(*) as c FROM ".PREFIX."_post WHERE approve");
    $allcount = $allcount['c'];
    create_cache('news_count',$allcount);
}
$tpl->set ( '{allcount}', $allcount );

Тег {allcount} будет выводить общее количество новостей, кроме тех, что на модерации.
--------------------
Всё, что вы напишите, будет использовано против вас при показе контекстной рекламы :)
rondella 25 сентября 2021 23:55
Здравствуйте, а как сделать чтобы показывало общее количество новостей за всё время?