Перейти к содержанию
IPSGuru.ru - Сообщество веб администраторов

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


MarTeNo

Рекомендуемые сообщения

Количество новостей в панели меню (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)” (без кавычек).

 

  • Нравится 1
Ссылка на комментарий

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйтесь. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...