2

誰かがこのコードをスマートフレンドリーに翻訳するのを手伝ってくれますか?

function outputCategories($categories, $startingLevel = 0)  
{

    foreach ($categories as $key => $category)
    { 
        if (count($category['children']) > 0)
        {
            echo '<li><a title="'.$category['name'].'" href="'.$category['url'].'">'.$category['name'].'</a><ul>';
            outputCategories($category['children'], $startingLevel+1);
            echo "</li>";
        }
        else
        {
            echo '<li><a title="'.$category['name'].'" href="'.$category['url'].'">'.$category['name'].'</a></li>';
        }
    }
    echo "</ul>";
    return self;
}

次の行を使用して、単一レベルのカテゴリを生成できます。

{foreach from=$hsitemap item=c name=hsitemap}
 {if $c.parent_id ==0 }
<li><h2><a title="{$c.site_name}" href="{$c.site_url}">{$c.site_name}</a></h2><ul>
    {foreach item=d from=$c.children name=sitemap} 
<li><a title="{$d.site_name}" href="{$d.site_url}">{$d.site_name}</a></li>
    {/foreach}
{else}  
<li><h2><a title="{$c.site_name}" href="{$c.site_url}">{$c.site_name}</a></h2><ul>
{/if}
</ul>
</li>
{/foreach}  
</ul>

しかし、今はマルチレベルの要件があります。親切にこれを手伝ってください。

4

2 に答える 2

0

新しいレベルごとにそれ自体を含むインクルードファイルを作成する必要があります...ループを新しいファイルにネストするか、smarty-function を作成してから、それを含めるか smarty-function を呼び出します。関数)...

于 2012-08-23T05:52:03.687 に答える
0

自分自身を呼び出すことができる関数を作成できます。例 7.43 を参照してください。ドキュメントで。

于 2012-08-23T10:16:17.250 に答える