Как стать автором
Обновить

Обработка древовидного массива со Smarty

Время на прочтение 1 мин
Количество просмотров 1.2K
Вчера столкнулся с проблемой. Имею массив, типа:

1 => array(
  'title' => 'название 1',
  'sub' => array(
    2 => array(
      'title' => название 2',
      'sub' => array(
        3 => array(
          'title' => 'название 3'
        )
      )
    )
  )
);

Обработка его средствами smarty получилась никакая — не поддерживает он бесконечных циклов внутри какой-либо функции. На уровне PHP это сделать не проблема — нужно просто прогнать весь массив через одну функцию вывода, в которой при нахождении подэлементов вновь делать вызов этой же функции, только уже с массивом подэлементов и дальше по аналогии.

Может кто реализовывал вывод таких древовидных массивов с помощью смарти? :)

Update: Смотрим вариант, найденный мной на каком-то форуме.


Делается через отдельный шаблон дерева.

{if $tree}
{foreach from=$tree item=«item»}
{$item}
{if $item.subtree}
{include file=«tree.tpl» tree=$item.subcategories}
{/if}
{/foreach}
{/if}

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

$tree — Это массив, имеющий древовидную структуру.

взято отсюда
Теги:
Хабы:
-2
Комментарии 14
Комментарии Комментарии 14

Публикации

Истории

Ближайшие события

Московский туристический хакатон
Дата 23 марта – 7 апреля
Место
Москва Онлайн
Геймтон «DatsEdenSpace» от DatsTeam
Дата 5 – 6 апреля
Время 17:00 – 20:00
Место
Онлайн
PG Bootcamp 2024
Дата 16 апреля
Время 09:30 – 21:00
Место
Минск Онлайн
EvaConf 2024
Дата 16 апреля
Время 11:00 – 16:00
Место
Москва Онлайн