вопрос
Здравствуйте
у меня есть меню категорий на сайте
например категория видео, я сегодня добавил 4 новые статьи, и нужно чтоб в этом пункте отображалась цифра
количества новых статей.
сейчас так:
а когда есть новые статьи в этой категории за 24 часа тогда должно быть так:
прошу помощи в реализации.
у меня есть меню категорий на сайте
например категория видео, я сегодня добавил 4 новые статьи, и нужно чтоб в этом пункте отображалась цифра
количества новых статей.
сейчас так:
<li><a href="/video/">Видео</a></li>
а когда есть новые статьи в этой категории за 24 часа тогда должно быть так:
<li><a href="/video/">Видео +4</a></li>
прошу помощи в реализации.
Открываем /engine/modules/main.php находим:
Использование:
В нужном месте доступны теги:
$tpl->compile ( 'main' );Выше вставляем:
$tpl->copy_template = preg_replace_callback( "#{cat_all\:(.+?)}#is", function($data) use ($db, $config)Открываем /engine/modules/functions.php находим:
{
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 );
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}- выведет количество новостей за сегодня с этих категорий.