Nun stolpere ich aber an der Benutzerprüfung. Ich hab mir die vorhandenen Beispiele angeschaut, bin aber nicht zum Ziel gekommen.
In der foreach-Schleife habe ich jeweils folgendes eingefügt:
- Code: Alles auswählen
if ($user_typ >= $lev1->getTypeId()):
Wichtig ist, dass ein Menueintrag nur stehen darf, wenn der Startartikel der jeweilgen Navigationsebene nicht geschützt ist, deshalb muss der $user_typ festgestellt werden.
- Code: Alles auswählen
<?php
// EXPLODE PATH
$PATH = explode("|",$this->getValue("path").$this->getValue("article_id")."|");
// GET CURRENTS
$path1 = $PATH[1];
$path2 = $PATH[2];
$path3 = $PATH[3];
$user_typ = 1;
if ($FORM['USR_TYP'] != 0) {
$user_typ = $FORM['USR_TYP'];
}
/* START 1st level categories */
$navLevel1 .= '<ul class="nav1st">';
/* START 2nd level categories */
$navLevel2 .= '';
/* START 3rd level categories */
$navLevel3 .= '';
foreach (OOCategory::getRootCategories() as $lev1) {
if ($user_typ >= $lev1->getTypeId()):
if ($lev1->isOnline(true)):
if ($lev1->getId() == $path1) {
$navLevel1 .= '<li class="active"><a class="current" href="'.$lev1->getUrl().'">'.$lev1->getName().'</a>';
}
// 2nd level - no active link
else {
$navLevel1 .= '<li><a href="'.$lev1->getUrl().'">'.$lev1->getName().'</a>';
}
// 1st level had categories? -> go on
$lev1Size = sizeof($lev1->getChildren());
if ($lev1->getId() == $path1) {
if ($lev1Size != "0") {
$navLevel2 .= '<ul class="nav2nd">';
// START 2nd level categories
foreach ($lev1->getChildren() as $lev2):
if ($user_typ >= $lev2->getTypeId()):
if ($lev2->isOnline(true)) {
// 2nd level - active link
if ($lev2->getId() == $path2) {
$navLevel2 .= '<li class="active"><a class="current" href="'.$lev2->getUrl().'">'.$lev2->getName().'</a>';
}
// 2nd level - no active link
else {
$navLevel2 .= '<li><a href="'.$lev2->getUrl().'">'.$lev2->getName().'</a>';
}
// 2nd level had categories? -> go on
$lev2Size = sizeof($lev2->getChildren());
if ($lev2->getId() == $path2) {
if ($lev2Size != "0") {
$navLevel3 .= '<ul class="nav3rd">';
// START 3rd level categories
foreach ($lev2->getChildren() as $lev3):
if ($user_typ >= $lev3->getTypeId()):
if ($lev3->isOnline(true)) {
// 3rd level - active link
if ($lev3->getId() == $path3) {
$navLevel3 .= '<li class="active"><a class="current" href="'.$lev3->getUrl().'">'.$lev3->getName().'</a></li>';
}
// 3rd level - no active link
else {
$navLevel3 .= '<li><a href="'.$lev3->getUrl().'">'.$lev3->getName().'</a></li>';
}
}
endforeach;
// END 3rd level categories
$navLevel3 .= '</ul>';
} // END by if ($lev2Size != "0"):
}
$navLevel2 .= '</li>';
}
endforeach;
// END 2nd level categories
$navLevel2 .= '</ul>';
} // END by if ($lev1Size != "0"):
}
$navLevel1 .= '</li>';
endif; // END by if ($lev1->isOnline())
}
$navLevel1 .= '</ul>';
// END 1st level categories
?>
(Ich hatte es zuerst mit der Navigation von Raybeam probiert - diese hier scheint mir für meine Bedürfnisse etwas schlanker)

