EREMIT-FORUM - форум о заработке в INTERNET Суббота, 14.02.2026, 01.38.58
Сайт проекта | Регистрация | Вход Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Количество новостей в меню навигации
LozinkaДата: Пятница, 04.12.2009, 15.20.31 | Сообщение # 1
Сержант
Группа: Администраторы
Сообщений: 37
Награды: 0
Репутация: 0
Статус: Offline
выводит количество новостей в меню сайта.
Посмотреть : << Д Е М О >>

Итак, начнем:
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}

Отобразиться как "Супы 0/1" (без кавычек).
(о формировании внешнего вида содержимого тега см. ниже)

Между Супы и 0/1 всегда будет только один пробел, как бы далеко не отодвигать в шаблоне тег. Эта проблема решается просто – ставим &_nbsp;

Тогда в шаблоне будет так:
]Супы   {count_categ_2}

Формировании внешнего вида
Внешний вид количества новостей (то, что заменит тег в шаблоне) формируется в строке

$t = $row['new_'].'/'.$row['allnews_'];

вышеуказанного кода (в п.1)
Для данной строки содержимое отобразится так: “0/1” (без кавычек)

Рассмотрим примеры:

Пример 1:
Если надо скобки – все просто – указанную строку меняем на:
$t = ' ('.$row['new_'].'/'.$row['allnews_']. ' )';
Отобразиться: (0/1)

Пример 2:
$t = ' ('.$row['allnews_'].'/'.$row['new_']. '+)';

Отобразиться: (1/0+)

Пример 3:
$t = ' (всего:'.$row['allnews_'].', сегодня:'.$row['new_']. ')';

Отобразиться: (всего: 1 сегодня: 0)

Кроме того, есть возможность убрать 0 (ноль), если новостей на сегодня нет.
Для этого, в коде из п.1, ВМЕСТО строки
$t = $row['new_'].'/'.$row['allnews_'];

ставим 2 строки:
if( $row['new_'] == '0') {$news_now = '(';} else {$news_now = '('.$row['new_'].'/';};
$t = $news_now.$row['allnews_'].')';

Хак тестился на версии DLE 8.2


<<Здесь можно заработать>>
<< Цветочный рай>>
 
  • Страница 1 из 1
  • 1
Поиск:

Copyright MyCorp © 2026

Web-IP.ru - Система Активной Рекламы

Создать бесплатный сайт с uCoz