Create menu with unique HTML output
Typically you can create menu as follow:
<?php
require_once(LIBRARY_DIR.'php/menu/common.php'); //include menu generation class
$newMenu = new Library\Php\Menu\Common(); //create menu generation object
echo $newMenu->generate('zone_key'); //generate menu HTML
?>
This code generates HTML with structure like that:
<ul class="level1">
<li class="selectedSubnodes">
<a class="selectedSubnodes" title="..." href="http://...">Menu element</a>
<ul class="level2">
<li class="current">
<a class="current" title="..." href="http://...">Current page</a>
</li>
<li class="">
<a class="" title="..." href="http://...">Menu element</a>
</li>
<li class="">
<a class="" title="..." href="http://...">Menu element</a>
</li>
</ul>
</li>
<li class="subnodes">
<a class="subnodes" title="..." href="http://...">Menu element</a>
<ul class="level2">
<li class="">
<a class="" title="..." href="http://...">Menu element</a>
</li>
<li class="">
<a class="" title="..." href="http://...">Menu element</a>
</li>
<li class="">
<a class="" title="..." href="http://...">Menu element</a>
</li>
</ul>
</li>
</ul>
Basically, this structure allows you to style almost any menu. If for some reason you need to change this HTML structure, you could create your own menu generation class.
To fully controll menu generation, copy the file from ip_libs/php/menu/common.php to ip_themes/your_template/library/my_menu.php. Now change class name to MyMenu and lines respectively where HTML is generated.
Now these three lines will use your new menu generation class:
<?php
require_once(THEME_DIR.THEME.'/library/my_menu.php'); //include menu generation class
$newMenu = new Library\Php\Menu\MyMenu(); //create menu generation object
echo $newMenu->generate('zone_key'); //generate menu HTML
?>
Add them to your theme layout file (eg. ip_themes/ip_default/main.php)
Write a comment
You must be logged in to comment.