Счетчик добавленных новостей в определенную категорию
Счетчик добавленных новостей в определенную категорию хак дополнение для DataLife Engine
Установка:
Нам нужен файл /engine/modules/main.php Открываем его и ищем строку:
$tpl->compile ( 'main' );
Выше вставляем следующее:
$tpl->copy_template = preg_replace_callback( "#{cat_all\:(.+?)}#is", function($data) use ($db, $config) {
return catCountFunction($data, $config, $db); }, $tpl->copy_template );
$tpl->copy_template = preg_replace_callback( "#{cat_today\:(.+?)}#is", function($data) use ($db, $config) {
return catCountFunction($data, $config, $db, true); }, $tpl->copy_template );
Теперь нам нужен файл /engine/modules/functions.php Открываем его и ищем строку:
function get_url($id) {
Выше вставляем:
function catCountFunction($cat_id, $config, $db, $curdate = false) { $cat_ids = array(); if(substr_count($cat_id[1], ",")) $cat_ids = explode(",", $db->safesql(trim(strip_tags(stripslashes($cat_id[1]))))); else $cat_ids[] = is_numeric($cat_id[1]) ? intval($cat_id[1]) : false; if(!count($cat_ids)) return; $cache_cat_news = false; $cache_cat_news = dle_cache("news_acn" . intval($curdate), $config['skin'] . implode($cat_ids), false); if ($config['allow_multi_category']) $cat_query = "category regexp '[[:<:]](" . implode ( '|', $cat_ids ) . ")[[:>:]]'"; else $cat_query = "category IN ('" . implode ( "','", $cat_ids ) . "')"; if (!$cache_cat_news) { if($curdate == false) $row = $db->super_query( "SELECT COUNT(*) as count FROM " . PREFIX . "_post WHERE {$cat_query}"); else $row = $db->super_query( "SELECT COUNT(*) as count FROM " . PREFIX . "_post WHERE {$cat_query} AND date LIKE '".date("Y-m-d")."%'"); $newscount = ($row['count'] > 0) ? intval($row['count']) : false; if($newscount) $cache_cat_news = $newscount; create_cache("news_acn" . intval($curdate), $cache_cat_news, $config['skin'] . implode($cat_ids), false); } return ($cache_cat_news > 0 ? (($curdate == true) ? "+" : "") . $cache_cat_news : ""); }
Как это использовать?
Теперь нам доступны такие теги
{cat_all:1} или {cat_all:1,2,3,4} - выведет количество новостей за все время с этих категорий.
{cat_today:1} или {cat_today:1,2,3,4} - выведет количество новостей за сегодня с этих категорий.