Название: Вывод количества новостей на главной
Автор: webfull
CMS: DLE 9.x — 10.x
Описание:
*Хак будет направлен на вывод количества новостей на главной странице DLE:
1. Вывод общего количества новостей;
2. Вывод количества новостей за месяц;
2. Вывод количества новостей за неделю;
2. Вывод количества новостей за день;*
Скриншоты
И так поехали ковырять движок DLE:
Все правки будут только касаться файла index.php
Первое выведем «общее количество новостей» на главной DLE:
Открыть index.php, найти:
$tpl->load_template ( 'main.tpl' );
После вставить:
$stats_news = dle_cache('news_count');
if(empty($stats_news)){
$row = $db->super_query( "SELECT COUNT(*) as count FROM " . PREFIX . "_post" );
$stats_news = $row['count'];
create_cache('news_count',$stats_news);
}
$tpl->set ( '{news_num}', $stats_news );
В шаблоне будет доступен такой тег:
{news_num}
Выводим новости опубликованные за месяц:
$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 )
В шаблоне будет доступен тег::
{stats_month}
Выводим количество опубликованных новостей за неделю:
$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 );
Теперь в шаблоне доступен тег вывода количества новостей за сутки:
{stats_week}
И так последнее выводим количество новостей за день (сутки):
$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 );
В шаблоне вставляем тег обработки новостей за сутки:
{stats_day}
Все очень просто, не создает дополнительной нагрузки. Все данные кешируються. Такими хаками вы можете разбавить свой проект от надоевшим всем сайты и шаблоны под копирку.