loading...

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

Имя пользователя :
Пароль :
я всё забыл!

ХакиВывод категорий сайта в меню

Написал xxx-xxx, 14 января 2009 | 22 комментария | рейтинг новости не нравится   +8   нравится Версия для печати
Мини хак. Вывод всех категорий сайта в виде меню.
Делал 5 минут, может кому нибудь пригодится ;)

1) Открываем index.php (блокнотом или др.)
2) Ищем
$tpl->set('{AJAX}', $ajax);

3) Вставляем выше
#-----------------------------------------#
$sql_result = $db->query("SELECT alt_name,name FROM " . PREFIX . "_category");
$cat_menu='<ul>';
while($row = $db->get_row($sql_result))
{
    $cat_menu.='<li><a href="'.$config['http_home_url'].'index.php?do=cat&category='.$row['alt_name'].'">'.$row['name']."</a></li>";
}
$cat_menu.='</ul>';
$tpl->set('{cat_menu}', $cat_menu);
#-----------------------------------------#

Сохраняем.
4) Открываем main.tpl вышего шаблона и в нужное Вам место для меню пишем {cat_menu}
5) Сохраняем и готово.



Комментарии пользователей

  Экспорт комментариев в RSS
 Сортировать по рейтингу, по дате

Написал kaliostro, 14 января 2009 в 19:12 плохой комментарий   0   хороший комментарий
Новостей: 34, комментариев: 264, Пользователи
Карма: 14±
Катерии храняться в кеше сайта (даже если кеширование отключено). Чтобы вывести все категории не нужно делать запрос в базу, да и тут не учтены подкатегории, они буду выводить как обычные категрии.

Комментарий был скрыт за отрицательный рейтинг (-6) и по мнению остальных пользователей не несёт смысловой нагрузки!
показать комментарий
Написал grimweb, 14 января 2009 в 19:18 плохой комментарий   +2   хороший комментарий
Новостей: 6, комментариев: 446, Модератор
Карма: 23±
elektroshok, kaliostro, так совершенствуйте и выкладывайте ag !

Написал rainbowsix, 14 января 2009 в 19:18 плохой комментарий   0   хороший комментарий
Новостей: 0, комментариев: 39, Пользователи
Карма:
kaliostro,
А как их по-другому вывести? smile

Написал grimweb, 14 января 2009 в 19:33 плохой комментарий   +1   хороший комментарий
Новостей: 6, комментариев: 446, Модератор
Карма: 23±
Очень просто. Скоро выложу, может быть ag !

Написал kaliostro, 14 января 2009 в 19:48 плохой комментарий   0   хороший комментарий
Новостей: 34, комментариев: 264, Пользователи
Карма: 14±
Цитата: grimweb
Очень просто. Скоро выложу, может быть !

А вот и нашелся доброволец :)

Написал grimweb, 14 января 2009 в 20:08 плохой комментарий   -1   хороший комментарий
Новостей: 6, комментариев: 446, Модератор
Карма: 23±
kaliostro, пока не нашелся: может быть laughing !

Написал Karfax, 14 января 2009 в 22:02 плохой комментарий   0   хороший комментарий
Новостей: 12, комментариев: 134, Пользователи
Карма:
Для 5-10 категорий еще ничего, но если из штук 30 :), то это список на пару экранов получится.
на сайте есть куда боле удобные меня в виде деревьев.

Написал grimweb, 14 января 2009 в 22:17 плохой комментарий   0   хороший комментарий
Новостей: 6, комментариев: 446, Модератор
Карма: 23±
Karfax, да. Например, твое laughing !

Написал xxx-xxx, 14 января 2009 в 22:43 плохой комментарий   0   хороший комментарий
Новостей: 0, комментариев: 0, Гости
Карма: ±
а вы чего ожидали за 5 минут писания ag
надо будет сделаю с под категориями)

Написал grimweb, 14 января 2009 в 22:54 плохой комментарий   0   хороший комментарий
Новостей: 6, комментариев: 446, Модератор
Карма: 23±
xxx-xxx, давай, делай, а то многим нужно, как оказалось...

Написал xxx-xxx, 15 января 2009 в 16:37 плохой комментарий   -1   хороший комментарий
Новостей: 0, комментариев: 0, Гости
Карма: ±
C под категориями ^^
#-----------------------------------------#
$sql_result = $db->query("SELECT id,alt_name,name,parentid FROM " . PREFIX . "_category WHERE parentid=0 ORDER BY posi");
$cat_menu='';
while($row = $db->get_row($sql_result))
{
$res = $db->query("SELECT alt_name,name,parentid FROM " . PREFIX . "_category WHERE parentid='".$row['id']."' ORDER BY posi");
$cat_menu.=($db->num_rows($res)>=1)?'get_row($res))
{
$cat_menu.=' » '.$row2['name']."";
}
$cat_menu.=($db->num_rows($res)>=1)?'':'';
}
$cat_menu.='';
$tpl->set('{cat_menu}', $cat_menu);
#-----------------------------------------#

скриншот

Написал grimweb, 15 января 2009 в 17:06 плохой комментарий   0   хороший комментарий
Новостей: 6, комментариев: 446, Модератор
Карма: 23±
Добавь в виде новости, так лучше будет!

Написал Karfax, 15 января 2009 в 21:08 плохой комментарий   0   хороший комментарий
Новостей: 12, комментариев: 134, Пользователи
Карма:
Цитата: xxx-xxx
C под категориями ^^

Как я понимаю - обработавает только один уровень подкатегорий, да к томуже запросов в БД получаем (1 + кол-во категорий, имеющих подкатегории).

В твоем примере (который на скриншоте), это будет равно трем. :)

Используй кеширование. Достаточно один раз, например при посещении в админке страницы с категориями, сформировать весь блок категорий и запихнуть его в кеш, а потом просто читать оттуда.

Написал kaliostro, 15 января 2009 в 23:18 плохой комментарий   +1   хороший комментарий
Новостей: 34, комментариев: 264, Пользователи
Карма: 14±
Цитата: xxx-xxx
C под категориями ^^

Никогда не использу такой код, вы умудрились запихнуть запрос в цикл, то есть мы получаем для сайта с кол. внешний категорий например 20 шт. , 21 запрос и при этом обрабатываем только один уроверь вложений категрий.

Цитата: Karfax
Используй кеширование. Достаточно один раз, например при посещении в админке страницы с категориями, сформировать весь блок категорий и запихнуть его в кеш, а потом просто читать оттуда.

Ничего никуда запихивать не нужно, как я уже говорил раньше категории уже автоматически кешируются движком притом динамиески (не нужно чистить кеш при изменении в категориях), просто используйте кеш самого ДЛЕ и на его основе формируйте свой блок любой вложености категорий.

Написал waylion, 16 января 2009 в 06:01 плохой комментарий   +2   хороший комментарий
Новостей: 0, комментариев: 0, Гости
Карма: ±
Я долга читаю книжку для DLE, но так и не поняла, как заделать, так что бы возле категорий было написано, сколько новостей в категорий вот если человек пришел и хочет по смотреть что то на сайте что бы он видел сколько там новостей. Помогите если не трудно, какой запрос создать и куда его вставить.

С уважением Ольга

bc

Написал xxx-xxx, 17 января 2009 в 03:21 плохой комментарий   0   хороший комментарий
Новостей: 0, комментариев: 0, Гости
Карма: ±
http://forum.fdcore.ru/viewtopic.php?f=13&t=17#p29
- Выводит категории
- подкатегории (1 уровня)
- кеширует меню
- показывает количество новостей по категориям

Написал kaliostro, 17 января 2009 в 19:02 плохой комментарий   0   хороший комментарий
Новостей: 34, комментариев: 264, Пользователи
Карма: 14±
Ну во первых, вы так и не поняли что пихать запрос в цикл крайне опасно. В данном пример всё время будет показываться кэш, но для данного блока это нормально. и блок будет работаь только на пхп 5 и выше. Для кэширования лучше бы использовали страндартные функции движка.

Написал waylion, 18 января 2009 в 10:18 плохой комментарий   0   хороший комментарий
Новостей: 0, комментариев: 0, Гости
Карма: ±
bi Помогите с менюхай мне надо что бы В жанрах отображалося сколька там фильмов

sad непонемаю как это зделать ((

Написал VADOS [Dj], 30 января 2009 в 11:41 плохой комментарий   0   хороший комментарий
Новостей: 0, комментариев: 0, Гости
Карма: ±
Мля, дык сделайте кто-нибудь нормальный!

kaliostro, помоги людям вместо того, чтобы умничать в камментах, СПАСИБО скажут люди!

Лично мне вот нужен автоматический вывод всех категорий исходя из очерёдности сортировки в админке (ну как и сделано тут), включая подкатегории, плюс нужен вывод в отдельное место (под другим тэгов в main.tpl) всех статических страниц.

Прошу ващей помощи!

Написал trud, 8 февраля 2009 в 10:21 плохой комментарий   0   хороший комментарий
Новостей: 0, комментариев: 5, Пользователи
Карма:
Штука полезная, а как сделать чтобы категории выводились не по ID, а по Position??

Написал SergioPoverony, 20 мая 2009 в 10:20 плохой комментарий   0   хороший комментарий
Новостей: 0, комментариев: 14, Пользователи
Карма:
xxx-xxx,
Хрень какаята, ошибка в коде

Информация



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