Doctrine Gedmo Tree a šablona menu v Boostrap3

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Petr Parolek
Člen | 455
+
0
-

Ahoj,

nedaří se mi správně vygenerovat HTML Boostrap3 menu. Používám Doctrine Gedmo Tree minetro/doctrine-extensions 0.1

Ukázka správného HTML:

					<ul class="nav navbar-nav">
    <li><a href="index.html">Home</a></li>
    <li><a href="about-us.html">About</a></li>
    <li><a href="services.html">Services</a></li>
    <li><a href="blog.html">Blog</a></li>
    <li class="dropdown">
        <a data-toggle="dropdown" class="dropdown-toggle" href="#">Pages <i class="fa fa-angle-down"></i></a>
        <ul class="dropdown-menu">
            <li><a href="blog-item.html">Blog Single</a></li>
            <li><a href="pricing.html">Pricing</a></li>
            <li><a href="404.html">404</a></li>
            <li><a href="shortcodes.html">Shortcodes</a></li>
        </ul>
    </li>
    <li><a href="contact-us.html">Contact us</a></li>
</ul>

Současné Latte, které generuje špatný kod:

{if $items}
        {var $level = -1}
        {foreach $items as $item}
            {if $level < $item->lvl}
                {if $item->lvl < 1 || $level == -1}
                <ul class="nav navbar-nav">
                {else}
                <a data-toggle="dropdown" class="dropdown-toggle" href="#">{$item->title} <i class="fa fa-angle-down"></i></a>
                <ul class="dropdown-menu">
                {/if}
            {else}
                {if ($level - $item->lvl) > 0}
                    {var $repeat = str_repeat("</li></ul>", $level - $item->lvl) . "</li>"}
                {else}
                    {var $repeat = ""}
                {/if}
                {$repeat|noescape}
            {/if}
            {if (!isset($catId))}
                {var $catId = 0}
            {/if}
            {if $catId == $item->id}
            <li class="current active">
            {else}
            <li>
            {/if}
                <a href="{plink :Front:Category:show $item->path}">{$item->title}</a>
            {php $level = $item->lvl}
        {/foreach}
        {if $level >= 0}
        {var $repeat = str_repeat("</li></ul>", $level+1)}
        {else}
            {var $repeat = ""}
        {/if}
        {$repeat|noescape}
    {/if}

Jak mám správně generovat html prosím?

Petr Parolek
Člen | 455
+
0
-

Latte mi generuje:

<ul class="nav navbar-nav">
                <li class="current active">
                    <a href="/1-uvod/">Úvod</a>

                <li>
                    <a href="/2-kdo-jsme/">Kdo jsme</a>

                <li>
                    <a href="/3-aktualne/">Aktuálně</a>

                <li>
                    <a href="/4-ke-stazeni/">Ke stažení</a>

                <li>
                    <a href="/5-fotogalerie/">Fotogalerie</a>

                <li>
                    <a href="/6-kontakty/">Kontakty</a>

                <li>
                    <a href="/7-jak-nam-muzete-pomoci/">Jak nám můžete pomoci</a>
                    <a data-toggle="dropdown" class="dropdown-toggle" href="#">Test <i class="fa fa-angle-down"></i></a>
                    <ul class="dropdown-menu">
                <li>
                    <a href="/4-ke-stazeni/8-test/">Test</a>
            </li></ul></li></ul>
Petr Parolek
Člen | 455
+
0
-
<ul class="nav navbar-nav">
            {foreach $items as $node}
                {if $node->parent}
                            <li class="dropdown">
                    <a data-toggle="dropdown" class="dropdown-toggle" href="#">{$prev_title} <i class="fa fa-angle-down"></i></a>
                    <ul class="dropdown-menu">
                        <li><a href="{plink :Front:Category:show $node->path}">{$node->title}</a></li>
                {else}
                            <li><a href="{plink :Front:Category:show $node->path}">{$node->title}</a></li>
                {/if}
                {if $node->lvl > 0}
                        {php $a=str_repeat("</ul></li>",$node->lvl)}
                        {$a|noescape}
                {/if}
                {php $prev_title = $node->title}
            {/foreach}
            </ul>

Toto už je lepší, akorát se zobrazuje dvakrát Ke stažení, poprvé bez podmenu a pak i s podmenu.

<ul class="nav navbar-nav">
                            <li><a href="/1-uvod/">Úvod</a></li>
                            <li><a href="/2-kdo-jsme/">Kdo jsme</a></li>
                            <li><a href="/3-aktualne/">Aktuálně</a></li>
                            <li><a href="/4-ke-stazeni/">Ke stažení</a></li>
                            <li class="dropdown">
                    <a data-toggle="dropdown" class="dropdown-toggle" href="#">Ke stažení <i class="fa fa-angle-down"></i></a>
                    <ul class="dropdown-menu">
                        <li><a href="/4-ke-stazeni/8-test/">Test</a></li>
                        </ul></li>
                            <li><a href="/5-fotogalerie/">Fotogalerie</a></li>
                            <li><a href="/6-kontakty/">Kontakty</a></li>
                            <li><a href="/7-jak-nam-muzete-pomoci/">Jak nám můžete pomoci</a></li>
            </ul>