
Хак dle выводит количество новых опубликованных новостей в меню навигации(NEW).
А также несколько примеров отображения в меню навигации смотрите ниже.
Итак установка: Хак дле количество новостей в панели меню (NEW) DLE
1) В файле index.php, находим строку:
$tpl->set ( '{AJAX}', $ajax );
Перед этой строчкой добавляем :
/
*********Главное меню**********/$count_news = dle_cache( "count_news_of_category", $config[’skin’] );if( !$count_news ){ //кэш с количеством новостей пуст $sql_result = $db->query("select ct.id, (select count(*) from ". PREFIX ."_post ps where ps.category = ct.id AND (DATE_FORMAT(date, '%Y%m%d')=CURDATE()) AND approve = '1') as new_, (select count(*) from ". PREFIX ."_post ps where ps.category = ct.id AND approve = '1') as allnews_ from ". PREFIX ."_category ct" ); $count_news_of_category = ''; while($row = $db->get_row($sql_result)) { $t = $row['new_'].'/'.$row['allnews_']; $tpl->set('{count_categ_'.$row['id'].'}', $t); $count_news_of_category .= $row['id'].'#'.$t.'|'; } /**В кэш **/ create_cache( 'count_news_of_category', $count_news_of_category); $db->free();}else{ //достанем количество новостей из кэша $arr_newscount = explode('|', $count_news); for ($i = 0; $i <= count($arr_newscount) - 2; $i++) { $arr_onenews = explode('#', $arr_newscount[$i]); $tpl->set('{count_categ_'.$arr_onenews[0].'}', $arr_onenews[1]); }}/************************************/
2) Открываем файл ./engine/modules/addnews.php .Находим строку :
if( $config['allow_alt_url'] == "yes" )
Перед этой строчкой добавляем :
clear_cache('count_news_of_category');
3) Открываем файл /engine/ajax/editnews.php Ищем строку:
clear_cache( 'news_' );
После этой строчкой добавляем :
clear_cache('count_news_of_category');
4) Теперь ставим в шаблоне теги на количество новостей.
Тег выглядит так: “{count_categ_2}” (без кавычек), где 2 – это id категории.
К примеру шаблон main.tpl, где и находиться меню навигации, будет выглядит так:
Софт {count_categ _2}
После добавления в браузере мы увидим "Софт 5/258" (без кавычек).
Если расстояние между Софт и 5/258 слишко близко, то увеличить расстояние можно с помощью добавления в шаблоне тега.
&_nbsp;
Тогда в шаблоне будет так: (между Софт и 5/258 будет 3 пробела)
Софт {count_categ _2}
Для того что изменить внешний вид количества новостей достаточно немного подправить код тега
Итак данный код тега :
$t = $row['new_'].'/'.$row['allnews_'];
Как уже известно отобразится так: “8/2358” (без кавычек)
Рассмотрим примеры другого отображения:
Пример 1:
Если надо скобки – все просто – указанную строку меняем на:
$t = ' ('.$row['new_'].'/'.$row['allnews_']. ' )';
Отобразиться: (8/2358)
Пример 2:
$t = ' ('.$row['allnews_'].'/'.$row['new_']. '+)';
Отобразиться: (2358/8+)
Пример 3:
$t = ' (всего:'.$row['allnews_'].', сегодня:'.$row['new_']. ')';
Отобразиться: (всего: 2358 сегодня: 8)
Так же есть возможность убрать 0 (ноль), при отсутствии новостей на сегодня .
Для этого, в коде из п.1, ВМЕСТО строчки
$t = $row['new_'].'/'.$row['allnews_'];
ставим 2 строки
if( $row['new_'] == '0') {$news_now = '(';} else {$news_now = '('.$row['new_'].'/';};$t = $news_now.$row['allnews_'].')';
Тогда количество новых новостей, отобразится: “(8/2358)” (без кавычек).
Если новостей нет на сегодня, отобразится: “(2358)” (без кавычек).
Советуем хак dle cms скачать количество новостей в панели меню (NEW)