<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:
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:
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";
}