Navigation submenu question ^^
Hello, Contao Community :) First, sorry for my awful english :oops:
1.) Is there a way to put navigation menu in several containers, but level_2 menu shall not inherit this containers? I use nav_default template:
<ul class="<?php echo $this->level; ?>">
In this case both level_1 <ul> and level_2 <ul>'s would be in <div1><div2> containers. I need level_2 <ul>'s without any containers.
2.) When i watch html-code through Firebug, i see <div class="mod_navigation block"> above <ul>. Where i can edit or remove this <div>?
Thanks :?
Re: Navigation submenu question ^^
Hi Devil_John,
It's very hard to understand what you want to do.
Here is a link to the wiki that may give you a better idea of the Navigation Module (it's in german, but google translate helps) http://de.contaowiki.org/ModulNavigation
The principle of navigation creation is this:
1. you create a Navigation Module and edit settings according to needs in Themes > Edit Frone End Modules
2. you place the module in the Themes > Edit page layout
You can edit the Navigation Module to your desire. For example if I wanted two menu's, menu(a) shows only level 1, menu(b) shows from level 2+
a) show only level 1 menu items = Start level [0], Stop level [1], Hard limit [yes]
[attachment=2:1c3ifqab]menu-level1-only.png[/attachment:1c3ifqab]
b) show from level 2 menu items and beyond = Start level [1], Stop level [0], Hard limit [no]
[attachment=1:1c3ifqab]menu-level2-plus.png.png[/attachment:1c3ifqab]
These two menus can then be placed within the page layout, in this example Header and Left column
[attachment=0:1c3ifqab]page-layout.png[/attachment:1c3ifqab]
You can have as many types of navigation modules as you want, showing the same menus or different menu levels and you can place them anywhere you like without any editing of the php files.
If you do not want a menu, just remove it it the page layout
I hope that is a little bit of help
Re: Navigation submenu question ^^
Devil_john, your example is invalid HTML. For as far as I know an UL can only contain LI. But what you want (I think) is probably to have the child structures outside of their parents, all on the same level. You can do that by copying the template /system/modules/core/nav_default.html5 into the /templates folder, optionally rename it (nav_yourname.html5) and then change the contents into this:
[code=php:9uabriyj]<span class="syntaxhtml">
<ul*class="<span class="syntaxdefault"><?php*echo*$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">level</span><span class="syntaxkeyword">;</span><span class="syntaxdefault">*?></span>">
<span class="syntaxdefault"><?php*foreach*</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">items*as*$item</span><span class="syntaxkeyword">):</span><span class="syntaxdefault">*?>
<?php*if*</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$item</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'isActive'</span><span class="syntaxkeyword">]):</span><span class="syntaxdefault">*?>
</span><li*class="<span class="syntaxdefault"><?php*echo*$item</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'class'</span><span class="syntaxkeyword">];</span><span class="syntaxdefault">*?></span>"><span*class="<span class="syntaxdefault"><?php*echo*$item</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'class'</span><span class="syntaxkeyword">];</span><span class="syntaxdefault">*?></span>"><span class="syntaxdefault"><?php*echo*$item</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'link'</span><span class="syntaxkeyword">];</span><span class="syntaxdefault">*?></span></span>
<span class="syntaxdefault"><?php*else</span><span class="syntaxkeyword">:</span><span class="syntaxdefault">*?>
</span><li<span class="syntaxdefault"><?php*if*</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$item</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'class'</span><span class="syntaxkeyword">]):</span><span class="syntaxdefault">*?></span>*class="<span class="syntaxdefault"><?php*echo*$item</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'class'</span><span class="syntaxkeyword">];</span><span class="syntaxdefault">*?></span>"<span class="syntaxdefault"><?php*endif</span><span class="syntaxkeyword">;</span><span class="syntaxdefault">*?></span>><?php*echo*$item</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'href'</span><span class="syntaxkeyword">];</span><span class="syntaxdefault">*?></span>"*title="<span class="syntaxdefault"><?php*echo*$item</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'pageTitle'</span><span class="syntaxkeyword">]</span><span class="syntaxdefault">*</span><span class="syntaxkeyword">?</span><span class="syntaxdefault">*$item</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'pageTitle'</span><span class="syntaxkeyword">]</span><span class="syntaxdefault">*</span><span class="syntaxkeyword">:</span><span class="syntaxdefault">*$item</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'title'</span><span class="syntaxkeyword">];</span><span class="syntaxdefault">*?></span>"<span class="syntaxdefault"><?php*if*</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$item</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'class'</span><span class="syntaxkeyword">]):</span><span class="syntaxdefault">*?></span>*class="<span class="syntaxdefault"><?php*echo*$item</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'class'</span><span class="syntaxkeyword">];</span><span class="syntaxdefault">*?></span>"<span class="syntaxdefault"><?php*endif</span><span class="syntaxkeyword">;</span><span class="syntaxdefault">*?><?php*if*</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$item</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'accesskey'</span><span class="syntaxkeyword">]</span><span class="syntaxdefault">*</span><span class="syntaxkeyword">!=</span><span class="syntaxdefault">*</span><span class="syntaxstring">''</span><span class="syntaxkeyword">):</span><span class="syntaxdefault">*?></span>*accesskey="<span class="syntaxdefault"><?php*echo*$item</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'accesskey'</span><span class="syntaxkeyword">];</span><span class="syntaxdefault">*?></span>"<span class="syntaxdefault"><?php*endif</span><span class="syntaxkeyword">;</span><span class="syntaxdefault">*?><?php*if*</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$item</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'tabindex'</span><span class="syntaxkeyword">]):</span><span class="syntaxdefault">*?></span>*tabindex="<span class="syntaxdefault"><?php*echo*$item</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'tabindex'</span><span class="syntaxkeyword">];</span><span class="syntaxdefault">*?></span>"<span class="syntaxdefault"><?php*endif</span><span class="syntaxkeyword">;</span><span class="syntaxdefault">*?><?php*if*</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$item</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'nofollow'</span><span class="syntaxkeyword">]):</span><span class="syntaxdefault">*?></span>*rel="nofollow"<span class="syntaxdefault"><?php*endif</span><span class="syntaxkeyword">;</span><span class="syntaxdefault">*?><?php*echo*$item</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'target'</span><span class="syntaxkeyword">];</span><span class="syntaxdefault">*?></span>><span class="syntaxdefault"><?php*echo*$item</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'link'</span><span class="syntaxkeyword">];</span><span class="syntaxdefault">*?></span>
<span class="syntaxdefault"><?php*endif</span><span class="syntaxkeyword">;</span><span class="syntaxdefault">*?>
<?php*endforeach</span><span class="syntaxkeyword">;</span><span class="syntaxdefault">*?>
</span>[/list]
<span class="syntaxdefault"><?php*foreach*</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$this</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">items*as*$item</span><span class="syntaxkeyword">):</span><span class="syntaxdefault">*?>
<?php*echo*$item</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'subitems'</span><span class="syntaxkeyword">];</span><span class="syntaxdefault">*?>
<?php*endforeach</span><span class="syntaxkeyword">;</span><span class="syntaxdefault">*?></span></span>[/code:9uabriyj]
same goes if you need the .xhtml template. This is a Contao 3 template. I'm not sure if, and how much, it differs from the Contao 2 template. But if you compare this to see what I did the same is easily applied to a Contao 2 default template.
What I did is moving the subitem call to a second loop of each item at the bottom of the page. So each menu item is processed twice; first time printing out the items, second time printing out subitems. You may want to change the behavior to only to this for the 2 levels you ask for, but I'm sure you can do that yourself!?