Все для DataLife Engine / DLE хаки / Хак для DLE / Хак количество новостей в панели меню (NEW) DLE

Хак количество новостей в панели меню (NEW) DLE

Хак количество новостей в панели меню (NEW) DLE

Хак 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 пробела)

Софт&nbsp;&nbsp;&nbsp;{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)

kolichestvo-novostey-v-menyu-navigaciinew.rar [2,47 Kb] (cкачиваний: 230)
  • 80

Комментарии 7

Никита от 5 февраля 2013 07:15
Повторю уже сказанное: "можно как-то объединить подкатегории... ?)
Хотелось бы очень что-то типо {count_categ_16,18} такого плана )
хелп ! :)"! Помогите, кто может! С Ув. Никита.
_TuriK_ от 27 декабря 2012 04:32
можно както объеденить подкатегории... ?)
Хотелось бы очень чтото типо {count_categ_16,18} такого плана )
хелп ! :)
shkiper2006 от 23 февраля 2012 15:03
dle9,
Был рад подсказать )
dle9.com от 23 февраля 2012 14:43
shkiper2006,
Поправил Спасибо!
shkiper2006 от 23 февраля 2012 14:12
Andre,
4) Теперь ставим в шаблоне теги на количество новостей.
Тег выглядит так: “{count_categ _2}” (без кавычек), где 2 – это id категории.

К примеру шаблон main.tpl, где и находиться меню навигации, будет выглядит так:

Софт {count_categ _2}

Тут надо исправить - убрать пробел в “{count_categ _2}” (без кавычек) т.е. должно выглядеть так : “{count_categ_2}” (без кавычек) и все заработает.
Пример можно посмотреть тут: b-g-o(точка)ru :) В меню "Флеш игры" слева.
dle9.com от 21 мая 2011 00:27
Цитата: Andre
сделал все по инструкцие, неработает. Вместо "Название кат. 8/888" просто "Название кат. {count_categ_3}"


А на какую версию ... устанавливаете ?
Хорошо отображается в браузерах на версии ниже DLE 9.0 , выше не исзветсно...
Andre от 20 мая 2011 23:20
сделал все по инструкцие, неработает. Вместо "Название кат. 8/888" просто "Название кат. {count_categ_3}"
Добавить комментарий

Оставить комментарий

    • bowtiesmilelaughingblushsmileyrelaxedsmirk
      heart_eyeskissing_heartkissing_closed_eyesflushedrelievedsatisfiedgrin
      winkstuck_out_tongue_winking_eyestuck_out_tongue_closed_eyesgrinningkissingstuck_out_tonguesleeping
      worriedfrowninganguishedopen_mouthgrimacingconfusedhushed
      expressionlessunamusedsweat_smilesweatdisappointed_relievedwearypensive
      disappointedconfoundedfearfulcold_sweatperseverecrysob
      joyastonishedscreamtired_faceangryragetriumph
      sleepyyummasksunglassesdizzy_faceimpsmiling_imp
      neutral_faceno_mouthinnocent