BIG Menu a SubMenu cez DB v Nette
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- SontoEremo
- Člen | 341
Zdravím,
Viem, že som to už riešil dávnejšie no môj problém sa vzťahuje na
výsledok generovania toho menu
Mám @layout.latte kde generujem menu z databázi
<div class="primary">
<div class="navbar navbar-default" role="navigation">
<button type="button" class="navbar-toggle btn-navbar collapsed" data-toggle="collapse" data-target=".primary .navbar-collapse">
<span class="text">Menu</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<nav class="collapse collapsing navbar-collapse">
<ul class="nav navbar-nav navbar-center">
{foreach $BigPublicMenus as $publicMenu}
{var $childs = $publicMenu->related('vl_public_db_bigmenu','vl_public_db_menu_parent_id')}
{if $childs->count('*') > 0}
<li class="parent megamenu five-columns promo">
<a href="#">
<i class="fa fa-{$publicMenu->vl_public_db_menu_icon}"></i>
{$publicMenu->vl_public_db_menu_title}
</a>
<ul class="sub">
<li class="sub-wrapper">
<div class="sub-list">
{foreach $childs as $subchild}
{first 10}<div class="box">{/first}
<ul>
<li>
<a n:href="$subchild->vl_public_db_menu_link">
<i class="fa fa-{$subchild->vl_public_db_menu_icon}"></i>
{$subchild->vl_public_db_menu_title}
</a>
</li>
</ul>
{last 10}</div>{/last}
{/foreach}
</div>
<div class="promo-block bg">
<img src="" width="240" height="434" alt="">
</div><!-- .promo-block -->
</li>
</ul>
</li>
{else}
<li>
<a n:href="$publicMenu->vl_public_db_menu_link">
<i class="fa fa-{$publicMenu->vl_public_db_menu_icon}"></i>
{$publicMenu->vl_public_db_menu_title}
</a>
</li>
{/if}
{/foreach}
</ul>
</nav>
</div>
</div><!-- .primary -->
Môj problém je, že ako si dám výsledok v zdrojovom kóde výsledok je
<div class="primary">
<div class="navbar navbar-default" role="navigation">
<button type="button" class="navbar-toggle btn-navbar collapsed" data-toggle="collapse" data-target=".primary .navbar-collapse">
<span class="text">Menu</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<nav class="collapse collapsing navbar-collapse">
<ul class="nav navbar-nav navbar-center">
<li>
<a href="/public/">
<i class="fa fa-home"></i>
Menu 1
</a>
</li>
<li>
<a href="#error: Destination must be non-empty string.">
<i class="fa fa-tasks"></i>
Menu 2
</a>
</li>
<li class="parent megamenu five-columns promo">
<a href="#">
<i class="fa fa-code"></i>
Menu 3
</a>
<ul class="sub">
<li class="sub-wrapper">
<div class="sub-list">
<div class="box">
<ul>
<li>
<a href="#error: Destination must be non-empty string.">
<i class="fa fa-bullhorn"></i>
Sub Menu 1
</a>
</li>
</ul>
<ul>
<li>
<a href="#error: Destination must be non-empty string.">
<i class="fa fa-video-camera"></i>
Sub Menu 2
</a>
</li>
</ul>
<ul>
<li>
<a href="#error: Destination must be non-empty string.">
<i class="fa fa-volume-up"></i>
Sub Menu 3
</a>
</li>
</ul>
<ul>
<li>
<a href="#error: Destination must be non-empty string.">
<i class="fa fa-search"></i>
Sub Menu 4
</a>
</li>
</ul>
<ul>
<li>
<a href="#error: Destination must be non-empty string.">
<i class="fa fa-cloud-upload"></i>
Sub Menu 5
</a>
</li>
</ul>
<ul>
<li>
<a href="#error: Destination must be non-empty string.">
<i class="fa fa-shopping-cart"></i>
Sub Menu 6
</a>
</li>
</ul>
<ul>
<li>
<a href="#error: Destination must be non-empty string.">
<i class="fa fa-envelope"></i>
Sub Menu 7
</a>
</li>
</ul>
<ul>
<li>
<a href="#error: Destination must be non-empty string.">
<i class="fa fa-flask"></i>
Sub Menu 8
</a>
</li>
</ul>
<ul>
<li>
<a href="#error: Destination must be non-empty string.">
<i class="fa fa-group"></i>
Sub Menu 9
</a>
</li>
</ul>
<ul>
<li>
<a href="#error: Destination must be non-empty string.">
<i class="fa fa-gamepad"></i>
Sub Menu 10
</a>
</li>
</ul>
</div>
<div class="box">
<ul>
<li>
<a href="#error: Destination must be non-empty string.">
<i class="fa fa-home"></i>
2 BOX
</a>
</li>
</ul>
<ul>
<li>
<a href="#error: Destination must be non-empty string.">
<i class="fa fa-cloud-upload"></i>
2 BOX
</a>
</li>
</ul>
</div>
</div>
<div class="promo-block bg">
<img src="" width="240" height="434" alt="">
</div><!-- .promo-block -->
</li>
</ul>
</li>
</ul>
</nav>
</div>
</div><!-- .primary -->
generuje mi to v box-e
<ul>
<li>
<a href="#error: Destination must be non-empty string.">
<i class="fa fa-bullhorn"></i>
Sub Menu 1
</a>
</li>
</ul>
<ul>
<li>
<a href="#error: Destination must be non-empty string.">
<i class="fa fa-video-camera"></i>
Sub Menu 2
</a>
</li>
</ul>
<ul>
<li>
<a href="#error: Destination must be non-empty string.">
<i class="fa fa-volume-up"></i>
Sub Menu 3
</a>
</li>
</ul>
<ul>
<li>
<a href="#error: Destination must be non-empty string.">
<i class="fa fa-search"></i>
Sub Menu 4
</a>
</li>
</ul>
<ul>
<li>
<a href="#error: Destination must be non-empty string.">
<i class="fa fa-cloud-upload"></i>
Sub Menu 5
</a>
</li>
</ul>
<ul>
<li>
<a href="#error: Destination must be non-empty string.">
<i class="fa fa-shopping-cart"></i>
Sub Menu 6
</a>
</li>
</ul>
<ul>
<li>
<a href="#error: Destination must be non-empty string.">
<i class="fa fa-envelope"></i>
Sub Menu 7
</a>
</li>
</ul>
<ul>
<li>
<a href="#error: Destination must be non-empty string.">
<i class="fa fa-flask"></i>
Sub Menu 8
</a>
</li>
</ul>
<ul>
<li>
<a href="#error: Destination must be non-empty string.">
<i class="fa fa-group"></i>
Sub Menu 9
</a>
</li>
</ul>
<ul>
<li>
<a href="#error: Destination must be non-empty string.">
<i class="fa fa-gamepad"></i>
Sub Menu 10
</a>
</li>
</ul>
Ako to mám prosím Vás vyladiť aby bol výsledok
<li class="sub-wrapper">
<div class="sub-list">
<div class="box">
<ul>
<li><a href="#">SubMenu 1</a></li>
atď ...
</ul>
</div>
</div>
</li>
A nie 100 krát ul ale iba raz v tom boxe
- Petr Hudík
- Člen | 49
Pokud má v jednom boxu být pouze ul pouze jednou, tak bych ho doplnil přímo do makra {first}. Výsledný kód by mohl vypadat asi takto:
{foreach $childs as $subchild}
{first 10}<div class="box"><ul>{/first}
<li>
<a n:href="$subchild->vl_public_db_menu_link">
<i class="fa fa-{$subchild->vl_public_db_menu_icon}"></i>
{$subchild->vl_public_db_menu_title}
</a>
</li>
{last 10}</ul></div>{/last}
{/foreach}
- SontoEremo
- Člen | 341
@PetrHudík Skúšal som ale som si najprv myslel, že by to bolo zlé ale aspoň si mi potvrdil, že to môžem kľudne tak použiť :)