Хак виводу кількості новин на головній сторінці DLE
Створюю і просуваю комерційні сайти та інтернет-магазини з 2008 року. 29-11-2014, 22:30 1 461 0
Все дуже просто, не створює додаткового навантаження. Всі дані кешуються.
Назва: Вивід кількісті новин на головній
Автор: Невідомий
CMS: DLE 9.х - 10.x - в вищих версіях ще не пробував1
Хак виводу кількості новин на головній сторінці DLE:
1. Вивід загальної кількості новин;
2. Вивід кількості новин за місяць;
2. Вивід кількості новин за тиждень;
2. Вивід кількості новин за день;
Реалізація:
Всі правки будуть тільки стосуватися файлу 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}