[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
Navigation erst ab 2. Ebene anzeigen lassen - REDAXO Forum
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/
andre
Beiträge: 24
Registriert: 24. Aug 2004, 22:11
Kontaktdaten: Website

Navigation erst ab 2. Ebene anzeigen lassen

22. Jun 2005, 18:00

hallo,

vielleicht ist es auch nur eine kleinigkeit, aber ich habe schon viel probiert - ohne erfolg.

ich habe die normale demonavigation.

nun möchte ich die navi erst ab der zweiten ebene anzeigen lassen, da meine oberen drei ordner "nur zur übersicht" dienen.

also:

hauptnavi1
- menu1
- menu2
- menu3

servicenavi
- menu1
- menu2
- menu3

die menu1-menu3 haben auch unterpunkte, die beim anklicken von menu1 aufgeklappt werden sollen. also ganz normal, nur eine ebene tiefer...

hatte das problem schon jemand und kann mir helfen?

vielen dank
andré

Benutzeravatar
Thomas.Blum
Entwickler
Beiträge: 5063
Registriert: 24. Aug 2004, 22:11
Wohnort: Dresden
Kontaktdaten: Website

22. Jun 2005, 18:42

Hej,

Code: Alles auswählen

<?php
// EXPLODE PATH
$PATH = explode("-",$this->getValue("path"));

// GET CURRENTS
if(count($PATH)==1) {
$MAIN = $PATH[0];
}
else {
$MAIN = $PATH[1];
$SUB01 = $PATH[2];
$SUB02 = $PATH[3];
}

$navSub = "";
foreach (OOCategory::getRootCategories() as $LEVEL00) {
if ($LEVEL00->isOnline() ):
if ($LEVEL00->getId() == $MAIN) {
$startArticle = $LEVEL00->getStartArticle();
if ($SUB01 == "")
$navSub .= '<li class="head"><a href="'.$startArticle->getUrl().'" class="current">'.$startArticle->getName().'</a></li>';
else
$navSub .= '<li class="head"><a href="'.$startArticle->getUrl().'">'.$startArticle->getName().'</a></li>';
foreach ($LEVEL00->getChildren() as $LEVEL01):
$startart = $LEVEL01->getStartArticle();
if($startart->_type_id == "1"){
if ($LEVEL01->isOnline() ):
if ($LEVEL01->getId() == $SUB01) {
$navSub .= '<li class="active"><a href="'.$LEVEL01->getUrl().'" class="current">'.$LEVEL01->getName().'</a>';
if ($SUB02 != "") :
$LEVEL02_Test = OOCategory::getCategoryById($SUB01);
$Groesse = sizeof($LEVEL02_Test->getChildren());
if($Groesse != "0") {
$navSub .= '<ul class="nav3rd">';
foreach ($LEVEL01->getChildren() as $LEVEL02 ) {
$startart = $LEVEL02->getStartArticle();
if($startart->_type_id == "1") {
if ($LEVEL02->isOnline() ):
if ($LEVEL02->getId() == $SUB02)
$navSub .= '<li class="active"><a href="'.$LEVEL02->getUrl().'" class="current">›› '.$LEVEL02->getName().'</a></li>';
elseif ($LEVEL02->getName() == "" )
$navSub .= '<li class="blank">&nbsp;</li>';
else $navSub .= '<li><a href="'.$LEVEL02->getUrl().'">›› '.$LEVEL02->getName().'</a></li>';
endif;
}
}
$navSub .= '</ul>';
}
endif;
$navSub .= '</li>';
}
elseif ($LEVEL01->getName() == "" )
$navSub .= '<li class="blank">&nbsp;</li>';
else $navSub .= '<li><a href="'.$LEVEL01->getUrl().'">'.$LEVEL01->getName().'</a></li>';
endif;
}
endforeach;
}
endif;
}

echo '<ul class="nav2nd">';
echo $navSub;
echo '</ul>';
?>
per CSS anpassen!

lg Thomas

andre
Beiträge: 24
Registriert: 24. Aug 2004, 22:11
Kontaktdaten: Website

23. Jun 2005, 09:48

hallo tbaddade,

leider klappt das nicht so ganz, da wieder die erste ebene angezeigt wird.

siehe bild:
[ externes Bild ]

leftmenu hat die cat_id=1
darunter sind die kategorien (auf einen blick, leistungen, ...)

siehe bild:
[ externes Bild ]

[ externes Bild ]

jetzt sollen die unterkategorien (auf einen blick, leistungen, ...) von leftmenu aufgelistet werden.
wenn ein punkt angeklickt wird, soll das menü nach unten aufklappen und die unterseiten von der unterkategorie sollen erschienen.

zB.:

LEISTUNGEN
- leistungen 1
- leistungen 2
- leistungen 3
AUF EINEN BLICK
METHODE
usw...


also eigentlich nur eine ebene tiefer, oder?

grüße
andré

Goldfisch
Beiträge: 230
Registriert: 22. Sep 2004, 17:47
Wohnort: Aschaffenburg
Kontaktdaten: Website

23. Jun 2005, 10:08

ich hab hier mal die navigation aus der demo, template "02.01 Navigation"
und hab die zeilen markiert und geändert, um die erste ebene auszulassen
und den rest anzuzeigen

Code: Alles auswählen

<?

// PFAD AUSLESEN
$cat_id = $this->getValue("category_id");
$path = explode("-",$this->getValue("path"));
$showpath = "/ <a href=index.php?article_id=8 class=white>Home</a>";


$cat1 = current($path)+0;
next($path);
$cat2 = current($path)+0;
next($path);
$cat3 = current($path)+0;

//HIER NOCH EIN WEITERE EBENE ANZEIGEN
next($path);
$cat4 = current($path)+0;


// 2. NAVI

$NAV2 = "";

//EINE EBENE TIEFER
//$cat_id = $cat2;
$cat_id = $cat3;

@include $REX[INCLUDE_PATH]."/generated/categories/$cat_id.list.category";
$NAV = $REX[RECAT][$cat_id];

for ($i=0;$i<count($NAV);$i++)
{

 $id = current($NAV);
 $aid = $REX[CAT][$id][article_id];
 $name = $REX[CAT][$id][name];

 if ($i==0) $NAV2 .= "
			<div class=SubMenu>";

 @include $REX[INCLUDE_PATH]."/generated/articles/$aid.article";


 //AUCH EINE TIEFER
 //if ($cat3==$id and $REX[CAT][$id][status]==1)
 if ($cat4==$id and $REX[CAT][$id][status]==1)
 {
    $NAV2 .= "
				<div class=SubButtonAktiv>"."<a href=index.php?article_id=$aid><img src=$REX[HTDOCS_PATH]/files/na.gif>$name</a></div>";

 }elseif ($REX[CAT][$id][status]==1)
 {
     if ($name == "")
     {
       $NAV2 .= "
				<div class=SubButtonInaktivLeer>&nbsp;</div>";
      
     }else
     {
       $NAV2 .= "
				<div class=SubButtonInaktiv><a href=index.php?article_id=$aid><img src=$REX[HTDOCS_PATH]/files/np.gif>$name</a></div>";

      }

 }
   
 if (($i+1)==count($NAV)) $NAV2 .= "
			</div>";

 next($NAV);
}



// 1. NAVI

$NAV1 = "";

//NICHT IM ROOT, SONDERN AUCH EINE TIEFER
//$cat_id = 0;
$cat_id = $cat2;

@include $REX[INCLUDE_PATH]."/generated/categories/$cat_id.list.category";
$NAV = $REX[RECAT][$cat_id];

for ($i=0;$i<count($NAV);$i++)
{

 $id = current($NAV);
 $aid = $REX[CAT][$id][article_id];
 $name = $REX[CAT][$id][name];

 if ($i==0) $NAV1 .= "
	<div class=MainMenu>
	<div class=MenuBorderT><img src=$REX[HTDOCS_PATH]/pics/leer.gif width=1 height=1></div>";

 @include $REX[INCLUDE_PATH]."/generated/articles/$aid.article";

 //EINE EBENE TIEFER
 //if ($cat2==$id and $REX[CAT][$id][status]==1)
 if ($cat3==$id and $REX[CAT][$id][status]==1)
 {
    $NAV1 .= "
		<div class=MainButtonAktiv>"."<a href=index.php?article_id=$aid><img src=$REX[HTDOCS_PATH]/files/na.gif>$name</a></div>";

   if ($NAV2 != "") $NAV1 .= "$NAV2";

 }elseif ($REX[CAT][$id][status]==1)
 {
     if ($name == "")
     {
       $NAV1 .= "
		<div class=MainButtonInaktivLeer>&nbsp;</div>";
      
     }else
     {
       $NAV1 .= "
		<div class=MainButtonInaktiv><a href=index.php?article_id=$aid><img src=$REX[HTDOCS_PATH]/files/np.gif>$name</a></div>";

      }

 }
   
 if (($i+1)==count($NAV)) $NAV1 .= "
	<div class=MenuBorderB><img src=$REX[HTDOCS_PATH]/pics/leer.gif width=1 height=1></div>
	</div>";

 next($NAV);
}

echo $NAV1;

?>
[/code]

Benutzeravatar
Thomas.Blum
Entwickler
Beiträge: 5063
Registriert: 24. Aug 2004, 22:11
Wohnort: Dresden
Kontaktdaten: Website

23. Jun 2005, 10:12

Hej,

damit "Leistungen" nicht angezeigt werden musst du

Code: Alles auswählen

/*$startArticle = $LEVEL00->getStartArticle();
if ($SUB01 == "")
$navSub .= '<li class="head"><a href="'.$startArticle->getUrl().'" class="current">'.$startArticle->getName().'</a></li>';
else
$navSub .= '<li class="head"><a href="'.$startArticle->getUrl().'">'.$startArticle->getName().'</a></li>';
*/
das auskommentieren. Ziemlich weit oben.

Ansosnten hilft dir eventuell dieser Thread weiter, da hatte ich schonmal was mit der Navi geschrieben.

http://forum.redaxo.de/viewtopic.php?t=287

lg Thomas

andre
Beiträge: 24
Registriert: 24. Aug 2004, 22:11
Kontaktdaten: Website

23. Jun 2005, 11:19

hi.

ich habe jetzt die version von Goldfisch etwas abgeändert, da ich nur auf einen bestimmten ordner zugreife. jetzt passt es. juhuu!!

[ externes Bild ]

danke

Zurück zu „Allgemeines [R2]“