habe folgendes Problem: Ich möchte gerne eine 2-stufige Navigation erstellen, die beim Klick auf eine Hauptkategorie in die 1. Unterkategorie dieser Hauptkategorie springt, falls die Hauptkategorie leer ist (will heissen, falls im Startartikel der Kategorie keine Slices enthalten sind), aber auch nur dann.
Habe folgendes versucht:
- Code: Alles auswählen
//------- Mainnavi
$path = explode( '|', $this->getValue("path").$this->getValue("article_id"));
array_shift( $path);
$cat_id = $path[0];
$subcat_id = $path[1];
echo '<div id="mainnavi"><ul>';
foreach ( OOCategory::getRootCategories( true ) as $oCategory) {
$name = htmlspecialchars($oCategory->getName());
$cid = $oCategory->getId();
$hasContent = OOArticleslice::getFirstSliceForArticle($cid);
$children = OOCategory::getChildrenById($cid,true);
$firstChild = $children[0];
if(!$hasContent and $firstChild) {
$articles = OOArticle::getArticlesOfCategory($firstChild->getId(),true);
$url = $articles[0]->getUrl();
} else {
$articles = OOArticle::getArticlesOfCategory($oCategory->getId(),true);
$url = $articles[0]->getUrl();
}
if ( $cat_id == $cid) {
echo '<li class="aktiv"><a href="'. $url .'">'. $name .'</a></li>';
}
else {
echo '<li><a href="'. $url .'">'. $name .'</a></li>';
}
}
echo '</ul></div>';
Funktioniert aber leider nicht. Er springt immer in die erste Unterkategorie - warum? Habe auch schon versucht, $hasContent mit $this->getArticle() zu belegen und abzufragen, funktioniert leider auch nicht richtig. Das ganze muss auch noch in drei Sprachen funktionieren.
Hat jemand eine Idee? Vielen Dank im Voraus.

