Hallo,
ich versuche verzweifel in das "3 Ebenen / Liste mit li-Tags" Template feste IDs für jeden Link in der Horizontalen Navi einzubauen, damit ich jedem link per CSS ein eigenes Bild zuweisen kann.
Habe schon im Forum gesucht, ist aber nichts dabei was mir weiterhilft.
Kann mir hier evtl. jemand weiterhelfen.
Was ich brauche ist ein Template mit der 1ten Ebene als Horizontales Menue und den genannten festen IDs, die 2te und 3te Ebene sollen Vertikal sein.
Danke Ralf
Hallo,
Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.
Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.
Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
Schau mal, so in etwa, das ist jetzt die 2. Ebene, und $navcount1 ist der Counter der ersten Ebene.
Code: Alles auswählen
$navcount2 = 0;
$navLeftCol .= "\n".'<ul class="nav2nd">'."\n";
// START 2nd level categories
foreach ($lev1->getChildren() as $lev2):
if ($lev2->isOnline()):
$navcount2 ++;
// 2nd level - active link
if ($lev2->getId() == $path2) {
$navLeftCol .= "\t".'<li id="nav0'.$navcount1.'_'.$navcount2.'" class="active"><a class="current" href="'.$lev2->getUrl().'"><span>'.$lev2->getName().'</span></a></li>'."\n";
}
// 2nd level - no active link
else {
$navLeftCol .= "\t".'<li id="nav0'.$navcount1.'_'.$navcount2.'"><a href="'.$lev2->getUrl().'"><span>'.$lev2->getName().'</span></a></li>'."\n";
}
Danke für die schnelle Nachricht, aber ich brauche nur die erste Ebene als feste IDs, den Rest wollte ich erst einmal normal lassen und der Code meine ersten Ebene ist komplett anderst, deshalb weiß ich leider nicht wie ich das einbauen muss !
Code meiner 1ten Ebene:
Danke für die Hilfe
Gruß Ralf
Code meiner 1ten Ebene:
Code: Alles auswählen
// GET CURRENTS
$path1 = $PATH[1];
$path2 = $PATH[2];
$path3 = $PATH[3];
// Anpassung um einzelne Userbereiche zu ermöglichen
//--------------------------------------------------
$user_typ = 0;
if ($FORM['USR_TYP'] != 0) {
$user_typ = $FORM['USR_TYP'];
}
//--------------------------------------------------
/* START 1st level categories */
$navHeader .= '<ul class="nav1st">';
foreach (OOCategory::getRootCategories() as $lev1) {
// Anpassung um einzelne Userbereiche zu ermöglichen
//--------------------------------------------------
if ($lev1->getTypeID()==1 || $user_typ == $lev1->getTypeId()) {
//--------------------------------------------------
if ($lev1->isOnline(true)):
if ($lev1->getId() == $path1) {
$navHeader .= '<li class="active"><a class="current" href="'.$lev1->getUrl().'">'.$lev1->getName().'</a>';
}
// 2nd level - no active link
else {
$navHeader .= '<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") {
$navLeftCol .= '<ul class="nav2nd"> <div id="name3"><a href="'.$lev1->getUrl().'">'.$lev1->getName().'</a></div> ' ;
Gruß Ralf
Hallo,
ich habe es jetzt hinbekommen, das die bei der 1ten Ebene der Link mit einer festen ID versehen ist.
Nur habe ich noch folgendes Problem, das nur ein Bild bei der gerade Aktiven Menuepunkt angezeigt wird, die nicht Aktiven Menuepunkte werden ohne Bild angezeigt.
Wo ist hier im Code noch ein Fehler?
Danke für die Hilfe
Gruß Ralf
ich habe es jetzt hinbekommen, das die bei der 1ten Ebene der Link mit einer festen ID versehen ist.
Nur habe ich noch folgendes Problem, das nur ein Bild bei der gerade Aktiven Menuepunkt angezeigt wird, die nicht Aktiven Menuepunkte werden ohne Bild angezeigt.
Wo ist hier im Code noch ein Fehler?
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];
// Anpassung um einzelne Userbereiche zu ermöglichen
//--------------------------------------------------
$user_typ = 0;
if ($FORM['USR_TYP'] != 0) {
$user_typ = $FORM['USR_TYP'];
}
//--------------------------------------------------
/* START 1st level categories */
$navcount2 = 0;
$navHeader .= '<ul class="nav1st">';
foreach (OOCategory::getRootCategories() as $lev1) {
// Anpassung um einzelne Userbereiche zu ermöglichen
//--------------------------------------------------
if ($lev1->getTypeID()==1 || $user_typ == $lev1->getTypeId()) {
//--------------------------------------------------
if ($lev1->isOnline(true)):
$navcount1 ++;
if ($lev1->getId() == $path1) {
$navHeader .= '<li id="nav0'.$navcount1.'_'.$navcount2.'" class="active"><a class="current" href="'.$lev1->getUrl().'"><span>'.$lev1->getName().'</span></a>';
}
// 2nd level - no active link
else {
$navHeader .= '<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") {
$navLeftCol .= '<ul class="nav2nd"> <div id="name3"><a href="'.$lev1->getUrl().'">'.$lev1->getName().'</a></div> ' ;
// START 2nd level categories
foreach ($lev1->getChildren() as $lev2):
if ($lev2->isOnline(true)) {
// 2nd level - active link
if ($lev2->getId() == $path2) {
$navLeftCol .= '<li class="active"><a class="current" href="'.$lev2->getUrl().'">'.$lev2->getName().'</a>';
}
// 2nd level - no active link
else {
$navLeftCol .= '<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") {
$navLeftCol .= '<ul class="nav3rd">';
// START 3rd level categories
foreach ($lev2->getChildren() as $lev3):
if ($lev3->isOnline(true)) {
// 3rd level - active link
if ($lev3->getId() == $path3) {
$navLeftCol .= '<li class="active"><a class="current" href="'.$lev3->getUrl().'">'.$lev3->getName().'</a></li>';
}
// 3rd level - no active link
else {
$navLeftCol .= '<li><a href="'.$lev3->getUrl().'">'.$lev3->getName().'</a></li>';
}
}
endforeach;
// END 3rd level categories
$navLeftCol .= '</ul>';
} // END by if ($lev2Size != "0"):
}
$navLeftCol .= '</li>';
}
endforeach;
// END 2nd level categories
$navLeftCol .= '</ul>';
} // END by if ($lev1Size != "0"):
}
$navHeader .= '</li>';
endif; // END by if ($lev1->isOnline())
}
} // END by if ($usr_typ>=...
$navHeader .= '</ul>';
// END 1st level categories
//print $nav;
?>
Gruß Ralf
Ist klar, du hast du änderungen nur im Aktiven Link eingebaut, nicht im Inaktiven:
Übrigens kannst du $navcount1 löschen und $navcount2 durch $navcount1 ersetzen, das hatte ich nur drin, weil ich ja 2 Ebenen im Menu hatte.
Code: Alles auswählen
if ($lev1->getId() == $path1) {
$navHeader .= '<li id="nav0'.$navcount1.'_'.$navcount2.'" class="active"><a class="current" href="'.$lev1->getUrl().'"><span>'.$lev1->getName().'</span></a>';
}
// 2nd level - no active link
else {
$navHeader .= '<li id="nav0'.$navcount1.'_'.$navcount2.'"><a href="'.$lev1->getUrl().'">'.$lev1->getName().'</a>';
}