ProcessWire - One Level Navigation
Aus Wikizone
Version vom 30. Oktober 2017, 10:55 Uhr von Steff (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „topnav.inc <syntaxhighlight lang="php"> <?php namespace ProcessWire; $pa = $homepage->and($homepage->children("menus.id=1"));//only if main menu is checked ech…“)
topnav.inc
<?php namespace ProcessWire;
$pa = $homepage->and($homepage->children("menus.id=1"));//only if main menu is checked
echo "
<nav class='navbar'>
".renderNav($pa)."
</nav>";
_func.php
/**
* Given a group of pages, render a one level navbar
*
* @param array|PageArray $items
* @return string
*
*/
function renderNav($pa){
if($pa instanceof Page) $pa = array($pa);
$out = "<ul class='nav navbar-nav'>";
foreach($pa as $item) {
if($item->id == $page->rootParent->id) {
$out .= "<li class='current'>";
} else {
$out .= "<li>";
}
$out .= "<a href='$item->url'>$item->title</a></li>";
}
$out .= "</ul>";
return $out;
}