私の問題私はこのコードで無限のメニューを持っています
$result=db::query_tpv("SELECT * FROM tpv_link");
while($row = db::fetch_array($result,'assoc'))
{
$menu[$row['parent_id']][$row['id_link']] = $row['name_link'];
}
function make_menu($parent_id)
{global $menu;if (!isset($menu[$parent_id])) {return;}
$nodes = $menu[$parent_id];
echo '<ul>';
foreach($nodes as $menu_id => $menu_name)
{
echo '<li>'.$menu_name ;
make_menu($menu_id) ;
echo '</li>';
}
echo '</ul>';
}
この {0|make_menu} によって samrty でも動作していますが、この関数をキャンセルして smarty でこれに変更したい (define $menu)
{function name=menu level=0}
<ul>
{foreach $data as $items}
<li>
<a href="{$items.url}">
{$items.title}
</a>
{if is_array($items.submenu)}
{menu data=$items.submenu level=$level+1}
{/if}
</li>
{/foreach}
</ul>
{/function}
{menu data=$menuItems}
これで、Smarty で再帰関数で作成された配列変数を foreach する方法が機能し ません.....