ProcessWire - One Level Navigation: Unterschied zwischen den Versionen

Aus Wikizone
Wechseln zu: Navigation, Suche
(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…“)
 
 
Zeile 1: Zeile 1:
topnav.inc
+
Hinweis: Wir verwenden ein Optionsfeld im Backend 'menus' um dort Seiten auswählen zu können, die ins Menü sollen.
 +
 
 +
'''topnav.inc'''
 +
 
 
<syntaxhighlight lang="php">
 
<syntaxhighlight lang="php">
 +
 
<?php namespace ProcessWire;
 
<?php namespace ProcessWire;
 +
 
$pa = $homepage->and($homepage->children("menus.id=1"));//only if main menu is checked
 
$pa = $homepage->and($homepage->children("menus.id=1"));//only if main menu is checked
 +
 
echo "
 
echo "
 
<nav class='navbar'>
 
<nav class='navbar'>
   ".renderNav($pa)."
+
   ".renderOneLevelNav($pa)."
 
</nav>";
 
</nav>";
 +
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Zeile 18: Zeile 25:
 
  *
 
  *
 
  */
 
  */
function renderNav($pa){
+
function renderOneLevelNav($pa){
 
   if($pa instanceof Page) $pa = array($pa);
 
   if($pa instanceof Page) $pa = array($pa);
 
   $out = "<ul class='nav navbar-nav'>";
 
   $out = "<ul class='nav navbar-nav'>";

Aktuelle Version vom 30. Oktober 2017, 11:00 Uhr

Hinweis: Wir verwenden ein Optionsfeld im Backend 'menus' um dort Seiten auswählen zu können, die ins Menü sollen.

topnav.inc

<?php namespace ProcessWire;

$pa = $homepage->and($homepage->children("menus.id=1"));//only if main menu is checked

echo "
<nav class='navbar'>
  ".renderOneLevelNav($pa)."
</nav>";

_func.php

/**
 * Given a group of pages, render a one level navbar
 *
 * @param array|PageArray $items
 * @return string
 *
 */
function renderOneLevelNav($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;
}