Хак Хак "Количество новостей в меню навигации"
Приветствую, уважаемые мастера и ученики.
Давно искал Хак или модуль, с помощью которого, в меню навигации показывалось бы количество новостей за сегодня и общее количество по конкретной категории. Наверное, я плохо искал и не нашел... Не силен в PHP, но почитав на сайте, как люди делают, решил попробовать сам. Подсказку дал пост "Вывод категорий сайта в меню" (спасибо автору) Это мое первое творение для DataLife Engine, потому прошу камни не очень большие бросать :-) Вот что получилось:
Внимание! Хак работает только с одноранговым меню (нету подкатегорий)
1) Открываем файл index.php, находим код
выше его вставляем
/*********Главное меню******************************************/
$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>'.$row['name']." ".$row['new_']."/".$row['allnews_']."</div>";
}
$tpl->set('{main_menu}', $main_menu);
/******************************************************************/
2) Немного о формировании ссылок. Пункт меню формируется в коде
$main_menu.='<div>'.$row['name']." ".$row['new_']."/".$row['allnews_']."</div>";
где
- переменная $config['http_home_url'] возвращает значение "http://ваш_домен/" (без кавычек)
- переменная $row['alt_name'] - это название категории латиницей (например: video)
- переменная $row['name'] - это название категории кирилицей (например: Видео)
- $row['new_'] - количество новостей данной категории за сегодня
- $row['allnews_'] - общее количество новостей по данной категории
В код можно вставить класс, согласно которому, будет отображаться менюшка. Например
$main_menu.='<div>'.$row['name']." ".$row['new_']."/".$row['allnews_']."</div>";
В приведенном примере ссылка будет вида
_http://ваш_домен/video
3) Открываем шаблон /templates/ваш_шаблон/main.tpl
В нужном месте ставим {main_menu}
4) работающее меню можно посмотреть на _http://1024kbytes.com
5) тестировалось на DataLife Engine7.5
Спасибо за внимание :-)