» » Хак "Количество новостей в меню навигации"

Хак "Количество новостей в меню навигации"

Приветствую, уважаемые мастера и ученики.
Давно искал Хак или модуль, с помощью которого, в меню навигации показывалось бы количество новостей за сегодня и общее количество по конкретной категории. Наверное, я плохо искал и не нашел... Не силен в PHP, но почитав на сайте, как люди делают, решил попробовать сам. Подсказку дал пост "Вывод категорий сайта в меню" (спасибо автору) Это мое первое творение для DataLife Engine, потому прошу камни не очень большие бросать :-) Вот что получилось:
Хак "Количество новостей в меню навигации"

Внимание! Хак работает только с одноранговым меню (нету подкатегорий)
1) Открываем файл index.php, находим код
$tpl->set ( '{AJAX}', $ajax );


выше его вставляем

/*********Главное меню******************************************/
$sql_result = $db->query("select ct.name,
                                 ct.alt_name,
                                 ct.posi,
                                 (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
                          order by ct.posi"
                          );
$main_menu='';
while($row = $db->get_row($sql_result))
{
    $main_menu.='<div>[url=http://.$config[]'.$row['name']."   ".$row['new_']."/".$row['allnews_']."[/url]</div>";
}
$tpl->set('{main_menu}', $main_menu);
/******************************************************************/


2) Немного о формировании ссылок. Пункт меню формируется в коде

$main_menu.='<div>[url=http://.$config[]'.$row['name']."   ".$row['new_']."/".$row['allnews_']."[/url]</div>";


где
- переменная $config['http_home_url'] возвращает значение "http://ваш_домен/" (без кавычек)
- переменная $row['alt_name'] - это название категории латиницей (например: video)
- переменная $row['name'] - это название категории кирилицей (например: Видео)
- $row['new_'] - количество новостей данной категории за сегодня
- $row['allnews_'] - общее количество новостей по данной категории
В код можно вставить класс, согласно которому, будет отображаться менюшка. Например

$main_menu.='<div>[url=http://.$config[]'.$row['name']."   ".$row['new_']."/".$row['allnews_']."[/url]</div>";


В приведенном примере ссылка будет вида
_http://ваш_домен/video
3) Открываем шаблон /templates/ваш_шаблон/main.tpl
В нужном месте ставим {main_menu}
4) работающее меню можно посмотреть на _http://1024kbytes.com
5) тестировалось на DataLife Engine7.5
Спасибо за внимание :-)

Комментарии

На Java скриптах Как совместимость в браузерах

TipTop

Администраторы 18 ноября 2009 22:42
_http://1024kbytes.com там пример можно посмотреть

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.


Личные сообщения

Ваши переписки