Dleshka.org
Авторизация

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

0
TipTop 31-07-2009 Хаки DLE 2 комментария

Приветствую, уважаемые мастера и ученики.

Давно искал Хак или модуль, с помощью которого, в меню навигации показывалось бы количество новостей за сегодня и общее количество по конкретной категории. Наверное, я плохо искал и не нашел... Не силен в 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>'.$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

Спасибо за внимание :-)

Информация
Зарегистрируйтесь чтобы комментировать публикацию.
cryazone
18 ноября 2009 22:27
+ 0 -
На Java скриптах Как совместимость в браузерах
tiptop
18 ноября 2009 22:42
+ 0 -
_http://1024kbytes.com там пример можно посмотреть
Авторизация