Модераторы: 2man
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> smarty и рекурсия. Помогите!!! построение дерева 
V
    Опции темы
molecula
Дата 10.1.2006, 18:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 21.11.2005
Где: Москва, РФ

Репутация: нет
Всего: нет



Ребята, помогите! столкнулась с проблемой - вывод осуществляется рекурсивной функцией, мне надо сделать шаблон, который тоже инклюдит сам себя..
Собственно вопрос: как сделать "рекурсивный" шаблон...

PM MAIL ICQ   Вверх
Mal Hack
Дата 10.1.2006, 18:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 4
Всего: 261



Как сам шаблон вызывается?
Вот и вставь во внутрь. Должно сработать.
PM ICQ   Вверх
Cheba
Дата 10.1.2006, 19:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pointless one
***


Профиль
Группа: Vingrad developer
Сообщений: 1777
Регистрация: 27.11.2003
Где: /dev/null

Репутация: 1
Всего: 62



Делается через отдельный шаблон дерева.
Код
{if $tree}
<ul>
{foreach from=$tree item="item"}
    <li>{$item}
        {if $item.subtree}
            {include file="tree.tpl" tree=$item.subcategories}
        {/if}
    </li>
{/foreach}
</ul>
{/if}


В основном шаблоне вызывается так:
Код
{include file="tree.tpl" tree=$tree}


$tree - Это массив, имеющий древовидную структуру.
PM MAIL ICQ   Вверх
molecula
Дата 11.1.2006, 09:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 21.11.2005
Где: Москва, РФ

Репутация: нет
Всего: нет



спасибо огромное!!! сейчас буду пробовать, расскажу о результате =)
PM MAIL ICQ   Вверх
molecula
Дата 11.1.2006, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 21.11.2005
Где: Москва, РФ

Репутация: нет
Всего: нет



ура! все получилось! спасибо =)
PM MAIL ICQ   Вверх
Dim4n
Дата 17.8.2006, 14:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 2.2.2006
Где: Краснодар

Репутация: нет
Всего: нет



Cheba
подскажи какой массив мне передать в переменную tree ?
PM MAIL ICQ   Вверх
Cheba
Дата 27.8.2006, 09:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pointless one
***


Профиль
Группа: Vingrad developer
Сообщений: 1777
Регистрация: 27.11.2003
Где: /dev/null

Репутация: 1
Всего: 62



Это должно быть что-то в этом роде.
Код
$a = array(
    'item1' => array(
        'val1', 'val2', 
        'subtree' => array(1, 2, 3, 4)
    ),
    'item2' => array(
        'val1', 'val2', 
        'subtree' => array(1, 2, 3, 
            'subtree' => array(1, 2, 3, 4, 5),
        4)
    )
)

Можешь немного переделать чтобы строить поддерево по типу элемента, а не по наличию какого-то конкретного индекса.
PM MAIL ICQ   Вверх
_seroga
Дата 6.5.2007, 18:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 15.12.2006

Репутация: нет
Всего: нет



Вариант для обычного двумерного массива типа [id, id_parent, value], у корневых элементов id_parent пустой.

основной шаблон:
Код

{include file='tree.tpl' id_parent=''}


шаблон дерева:
Код

<ul>
{foreach from=$tree item=item}
    {if ($id_parent == $item.id_parent)}
      <li>{$item.value}</li>
      {include file='tree.tpl' id_parent=$item.id_section}
    {/if}
{/foreach}
</ul>

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Другие движки / фрейморки | Следующая тема »


 




[ Время генерации скрипта: 0.0883 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.