вывод многоуровневых разделов,категорий в smarty

  • Автор темы Автор темы YouStm
  • Дата начала Дата начала

YouStm

Новичок
вывод многоуровневых разделов,категорий в smarty

Всем доброго времени суток, вот не могу сообразить как вывести в smarty категории из базы данных а точнее:

есть таблица news_cat у неё поля:
PHP:
cat_id |   cat_name       | cat_bid
-------+------------------+----------
1      | Магазины         |    0
2      | Автомобили       |    0
3      | БМВ              |    2
4      | AUDI             |    2
5      | СИБИРЬ АВТО      |    1
6      | КМВ АВТО         |    1
7      | X5               |    3
8      | 250л.с.          |    7
9      | 100л.с.          |    7

ну вот что то примерно такое... т.е. категории могут быть бесконечными

как реализовать вывод в SELECT с помощью
PHP:
php
и
PHP:
smarty
что бы вид был

PHP:
Первая категрия
      Подкатегория
           Подподкатегория
               Подподпод категория
                    ......
                     последняя категория
Вторая категория
       Подкатегория
           Подподкатегория
               Подподпод категория
                    ......
                     последняя категория

не могу найти алгоритм... помоги пжлста...
 
По логике мне кажется надо делать связанные селекты. В твоем случае они не могут быть бесконечными. Плюс у тебя ужасная структура БД.
 
По первому вопрос в поиск - на форуме миллионы реализаций деревьев в SQL уже описаны.
По второму - сделай шаблон - который будет показывать список категорий и инклюдить сам себя если есть под категории в категории.
 
Реализация у него вполне нормальная для дерева, только вот он хранит кучу разных сущностей в одной таблице, что не есть хорошо.
 
c0dex
а в чём её ужось?

brook
да вот поискал по инету там говорят про Рекурсию
PHP:
Title: {$object.title}
{foreach item='obj' from=$object.items}
{include file='this_template_path.tpl' object=$obj}
{/foreach}
тока при этом получается что зацикливается и всё... 404!

c0dex
есть предложения по улучшения таблицы? мб создать вторую?
 
YouStm
Не просто вторую, а вторую-третью и т.д.

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

Рекурсию я бы реализовывал как плагин для смарти.
 
c0dex +1
гугл smarty tree plugin
и получаем готовый.
но зачастую только безнраничная вложенность нужна очень редко, 3-4 уровня - максимум, дальше неюзабельно получится. поэтому можно и покопипастить foreach ... foreach .. foreach
 
Автор оригинала: YouStm
тока при этом получается что зацикливается и всё...
— очевидно, ты неправильно составляешь дерево.

Поставь проверку
Код:
{if is_array($object)}
...
{/if}
 
AmdY
Юзабильно не юзабильно решаю не я)) заказчик захотел неограниченное дерево.. я делаю)

Вурдалак
спс за совет.


ВСЕМ огромное спс вопрос решён через
PHP:
$smarty->register_function
 
Сверху