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
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
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
<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>