<ul> root-Artikel Navigation

Ein Bestandteil des YAML-Frameworks ist das Topnav-Menü. Um dieses Topnav-Menü in redaxo automatisch zu generieren, bietet sich die root-Artikel Navigation an.

Über die root-Artikel, die sich in der obersten Ebene der Webseitenstruktur befinden, also alle Artikel unter Pfad:Homepage, können die Inhalte für das Topnav-Menü erfasst werden.

Der Aufbau dieser Navigation erfolgt im Template yaml_navigation, ganz am Ende des Quelltextes:

// Navigationsmenü anhand von root-Artikeln erstellen
if($raNav=='on')
{
  $rootArticles = OOArticle::getRootArticles($ignore_offlines = true, $clang = false);
  $raNavigation='';
  $raCnt = 1;

  foreach($rootArticles as $rootArticle)
  {
    // ab redaxo 4.x
    // mit MetaInfo ob der root-Artikel im Menü erscheinen soll
    if($REX['VERSION']>"3" && $rootArticle->hasValue($raMetaInfo))
    {
      if($rootArticle->getValue($raMetaInfo)=='|true|')
      {
        if($raCnt>1)
        {
          $raNavigation=$raNavigation.$raDivi;
        }
        $raCnt++;
        $raNavigation = $raNavigation.$rootArticle->toLink($params='', $attributes=null, $sorround_tag=null, $sorround_attributes=null);
      }
    }
    // redaxo 3. oder redaxo 4.x ohne MetaInfo-Nutzung
    else
    {
      if($raCnt>1)
      {
        $raNavigation=$raNavigation.$raDivi;
      }
      $raCnt++;
      $raNavigation = $raNavigation.$rootArticle->toLink($params='', $attributes=null, $sorround_tag=null, $sorround_attributes=null);
    }
  }
}

Anders als die Hauptnavigationen des YAML-Templates, die als unsortierte Listen in den HTML-Quelltext der Website integriert werden, sind die aus den root-Artikeln resultierenden Links in einer Reihe angeordnet.
Zusätzlich kann, wie auch beim Breadcrumbmenü, noch ein Trennzeichen gewählt werden, um die Verweise optisch zu trennen.

Möchte man jedoch auch die root-Artikel in Form einer unsortierten Liste integrieren, so tauscht man den o. g. Quelltext einfach gegen den folgenden aus:

// Navigationsmenü anhand von root-Artikeln als <ul> erstellen
if($raNav=='on')
{
  $rootArticles = OOArticle::getRootArticles($ignore_offlines = true, $clang = false);
  $raNavigation="<ul class=\"raNav\">\n";

  foreach($rootArticles as $rootArticle)
  {
    // ab redaxo 4.x
    // mit MetaInfo ob der root-Artikel im Menü erscheinen soll
    if($REX['VERSION']>"3" && $rootArticle->hasValue($raMetaInfo))
    {
      if($rootArticle->getValue($raMetaInfo)=='|true|')
      {
        $raNavigation = $raNavigation."<li>".$rootArticle->toLink($params='', $attributes=null, $sorround_tag=null, $sorround_attributes=null)."</li>\n";
      }
    }
    // redaxo 3. oder redaxo 4.x ohne MetaInfo-Nutzung
    else
    {
      $raNavigation = $raNavigation."<li>".$rootArticle->toLink($params='', $attributes=null, $sorround_tag=null, $sorround_attributes=null)."</li>\n";
    }
  }
  $raNavigation=$raNavigation."</ul>\n";
}