Codeigniter 2.1.4+Smarty+пользовательская функция в шаблоне

kolybasov

Новичок
Есть функция:
PHP:
function view_cat ($dataset) {
  foreach ($dataset as $menu) {
    echo '<li><a href="/?id='.$menu["id"].'">'.$menu["title"].'</a>';
   
    if($menu['childs']) {
        echo '<ul class="submenu">';
        view_cat($menu['childs']);
        echo '</ul>';
    }
    echo '</li>';
}
}
Задача: вывести массив, который передается во view с помощью Smarty. Или как-то сделать так, что б эта функция могла вызываться во view с помощью Smarty.
 

kolybasov

Новичок
Решил:

Код:
        {function name=menu}
            {foreach $data as $n}
                {if isset($n.childs)}
                    <li class="dropdown">
                        <a class="dropdown-toggle" data-toggle="dropdown"  href="{base_url()}{$n.url}">
                            {$n.title}<span class="caret"></span>
                        </a>
                        <ul class="dropdown-menu">
                            {call name=menu data=$n.childs}
                        </ul>
                {else}
                    <li><a href="{base_url()}{$n.url}">{$n.title}</a>
                {/if}
                </li>
            {/foreach}
        {/function}
        {call menu data=$n}
 

AnrDaemon

Продвинутый новичок
Есть большая необходимость оформлять это именно как функцию? В скольки шаблонах вы её намерены использовать?
 

kolybasov

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

AmdY

Пью пиво
Команда форума
А монти ещё удивлялся шугоровским двухпроходным шаблонам, а вот они как в смарти замутили, ужё пора выделять в отдельный язык.
 
Сверху