[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
menü mit mehr als 2 ebenen - 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/
feuer

menü mit mehr als 2 ebenen

18. Okt 2004, 12:48

hallo,

mir gelingt es nicht ein menü mit mehr als zwei (tiefen) ebene zu erzeugen. im admin werden diese normal angelegt, dann auf der hp nicht angezeigt.

ich nehme mal an das das am naviagtions template liegt. gibt es vielleicht eine neue version oder ein funktionierens template irgendwo?

vielen dank schon mal - claus

Benutzeravatar
Jan.Kristinus
Admin
Beiträge: 2166
Registriert: 24. Aug 2004, 22:11
Wohnort: Frankfurt
Kontaktdaten: ICQ Website

19. Okt 2004, 11:10

hi,

in der demo sind nur 2 ebenen vorgesehen. das laesst sich aber natuerlich einfach aendern und erweitern. das prinzip solltest du an der demo erkennen können. ich kann hier schlecht ein weiteres beispiel reinlegen, da es immer darauf ankommt wie die naechste und übernaechste ebene dargestellt werden soll.. das ist ja jedesmal anders. eine navigation die ins "unendliche" gehen koennte musste ich noch nicht erstellen (wenn mal wieder ein wenig zeit ist), und kann sie daher auch nicht hier anbieten. vielleicht hat ja jemand anderes eine solche navi parat ?

gruss

jan

Benutzeravatar
PAGEJUMPER
Beiträge: 161
Registriert: 16. Dez 2004, 17:54
Wohnort: Leipzig
Kontaktdaten: ICQ Website

16. Dez 2004, 17:57

Ich fände es gut, wenn es ein Beispiel für 3 Ebenen gäbe. Ich sitze nun schon knapp 2 Stunden daran die 3. Ebene anzeigen zu lassen. Aber nix zu machen, das Ding ist stur und macht nicht das was ich sage :cry:

Ich will ja Jan nicht die Arbeit wegnehmen, aber für meine eigene Seite hät ich dann schon mal das CMS selbst eingerichtet :-)

Viele Grüße,

Ronny-Heiko

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

16. Dez 2004, 20:57

Schaut euch das mal genauer an:

http://wiki.redaxo.de/pmwiki.php/Main/O ... dFramework

Das OOF verwende ich sehr gern als PHP-Anfänger. Man kann sich da sehr gut hineinarbeiten.

Gruss Thomas

jb
Beiträge: 58
Registriert: 24. Aug 2004, 22:11
Wohnort: Stuttgart

11. Jan 2005, 17:52

tbaddade hat geschrieben:Schaut euch das mal genauer an:

http://wiki.redaxo.de/pmwiki.php/Main/O ... dFramework

Das OOF verwende ich sehr gern als PHP-Anfänger. Man kann sich da sehr gut hineinarbeiten.

Gruss Thomas
:wink: Sorry, aber als PHP-Neuling sollte man ja eigentlich eher die Finger von Redaxo lassen. Ich verstehe die obigen Erläuterungen und Links nämlich nicht... :( Aber ich frag' trotzdem mal an, ob da jemand schon ein neues Template gebastelt hat, mit drei Ebenen!?

Wäre sehr erfreut, bald Antwort zu bekommen.

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

12. Jan 2005, 08:56

Also hier ist der Code aus dem Wiki.

Code: Alles auswählen

<ul>
  <!-- top level categories -->
  <?foreach (OOCategory::getRootCategories() as $cat):?>
  <li><a href='<?=$cat->getUrl()?>'><?=$cat->getName()?></a><ul>

    <!-- 1st level categories -->
    <?foreach ($cat->getChildren() as $sub1):?>
    <li><a href='<?=$sub1->getUrl()?>'><?=$sub1->getName()?></a><ul>

       <!-- 2nd level categories -->
       <?foreach ($sub1->getChildren() as $sub2):?>
       <li><a href='<?=$sub2->getUrl()?>'><?=$sub2->getName()?></a></li>
       <?endforeach;?>

    </ul></li>
    <?endforeach;?>
  </ul></li>
  <?endforeach;?>
</ul>
Hier sollte die MainNavigation -> SubNanigation1 -> SubNavigation 2 ausgelesen werden.

Gruss Thomas

jb
Beiträge: 58
Registriert: 24. Aug 2004, 22:11
Wohnort: Stuttgart

12. Jan 2005, 11:05

tbaddade hat geschrieben:Also hier ist der Code aus dem Wiki.
(...)
Hier sollte die MainNavigation -> SubNanigation1 -> SubNavigation 2 ausgelesen werden.
Hallo Thomas,

also schön, und was bedeutet das? Heißt das, ich setze hinter

Code: Alles auswählen

       <!-- 2nd level categories --> 
       <?foreach ($sub1->getChildren() as $sub2):?> 
       <li><a href='<?=$sub2->getUrl()?>'><?=$sub2->getName()?></a></li> 
noch einen Block mit 3rd-Level (also Block 2 copy and paste and edit) und dann habe ich den gewünschten Effekt?

Ich hab hier im Forum schon ausgewachsene Programmierer über die dritte Ebene schreiben sehn, so einfach ist das anscheinend nicht.

(Ich weiß, ich werd mir ja auch bald ein Buch über PHP und eins über OO-Programmierung kaufen... Aber ich frag trotzdem mal nach...)

Vorab schon mal Danke.

Gruß,
Jochen

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

12. Jan 2005, 11:23

genau .... 3. ebene einfügen

Code: Alles auswählen

<ul>
  <!-- top level categories -->
  <?foreach (OOCategory::getRootCategories() as $cat):?>
  <li><a href='<?=$cat->getUrl()?>'><?=$cat->getName()?></a><ul>

    <!-- 1st level categories -->
    <?foreach ($cat->getChildren() as $sub1):?>
    <li><a href='<?=$sub1->getUrl()?>'><?=$sub1->getName()?></a><ul>

       <!-- 2nd level categories -->
       <?foreach ($sub1->getChildren() as $sub2):?>
       <li><a href='<?=$sub2->getUrl()?>'><?=$sub2->getName()?></a><ul>
               
             <!-- 3nd level categories -->
             <?foreach ($sub2->getChildren() as $sub3):?>
             <li><a href='<?=$sub3->getUrl()?>'><?=$sub3->getName()?></a></li>
             <?endforeach;?>

             </ul></li>
       <?endforeach;?>

    </ul></li>
    <?endforeach;?>

  </ul></li>
  <?endforeach;?>
</ul>     

jb
Beiträge: 58
Registriert: 24. Aug 2004, 22:11
Wohnort: Stuttgart

13. Jan 2005, 10:33

Goldfisch hat geschrieben:genau .... 3. ebene einfügen
(...)
So einfach?
Und dann sitzen Jan und Pagejumper erst mal da und haben diese paar Zeilen nicht im Petto? :lol: Danke, Peter!

Ich werd das jetzt ausprobieren. (Nebenbei: Könntest du mich bitte zurückrufen?)

Gruß,
Jochen.

Benutzeravatar
vscope
Beiträge: 477
Registriert: 24. Aug 2004, 22:11
Wohnort: Austria/Vienna
Kontaktdaten: ICQ Website

14. Jan 2005, 20:28

lol

dieses script

http://wiki.redaxo.de/pmwiki.php/Main/O ... dFramework

macht 3 ebenen

1. - Top Ebene
2. - 1. UnterEbene
3. - 2. UnterEbene

Das von Goldfisch hat schon 4 ;)

aart
Beiträge: 97
Registriert: 24. Aug 2004, 22:11
Kontaktdaten: ICQ

22. Jan 2005, 14:36

hi vscope,

wollte eben auch ne zweite ebene machen mit 2.7.x

mit dem script aus m wiki klappts zwar - hat aber den nachteil, das alle menuepunkte gleich aufgeklappt sind und somit schlecht als navigation (lediglich als sitemap) verwendbar ist.

hat denn jetzt schon jemand ein navitemplate fuer 2.7.x entwickelt?
ansonsten muesste man das alte aus der 2.6 nehmen, das geht zwar, ist aber viel aufwendiger mittels css anzupassen :?

gruss
aart

Benutzeravatar
vscope
Beiträge: 477
Registriert: 24. Aug 2004, 22:11
Wohnort: Austria/Vienna
Kontaktdaten: ICQ Website

22. Jan 2005, 17:20

also für die nav gibts ja auch eine viel einfachere methode.

schaut mal in den folder redaxo/include/generated/categories/

die 0.list.....

Wenn Ihr die included könnt ihr ohne DB Aufruf eine Komplette Nav einbauen.

so könnte das script aussehen für 2 ebenen

<?PHP
include("redaxo/include/generated/categories/0.list.category");
foreach($REX[CAT] as $key => $var){
print "<a href=\"".getUrlbyID($var[article_id])."\">";
print $var[name];
print "</a>";
print "&nbsp; | &nbsp;";
}
?>

<?PHP
unset($REX[CAT]);
$CAT = $this->getValue('category_id');
@include("redaxo/include/generated/categories/$CAT.list.category");
if(is_array($REX[CAT])){
foreach($REX[CAT] as $key => $var){
print "<a href=\"".getUrlbyID($var[article_id])."\">";
print "<font color=#ffffff>";
print $var[name];
print "</font>";
print "</a>";
print "&nbsp;&nbsp;&nbsp;";
}
}
?>

lg

vscope

aart
Beiträge: 97
Registriert: 24. Aug 2004, 22:11
Kontaktdaten: ICQ

23. Jan 2005, 16:04

hi vscope,

das is echt n guter hinweis von dir, danke.

hab dazu noch n paar fragen:
  • er zeigt alle an, auch die offline
    bei klick auf die unterkategorie schliesst sich diese wieder!? (sind auch nur zwei ebenen)
    laesst sich diese dann mit einem separaten css steuern?
gruss
aart

Benutzeravatar
vscope
Beiträge: 477
Registriert: 24. Aug 2004, 22:11
Wohnort: Austria/Vienna
Kontaktdaten: ICQ Website

23. Jan 2005, 19:55

anbei eine nav die prinzipiell unlimitierte tiefe haben kann.
probierts das mal aus.
das beste sie braucht eigentlich nichtmal einen datenbak zugriff.

lg

vscope

Code: Alles auswählen

<?php

$currentcat = $this->getValue('category_id');
@include("redaxo/include/generated/categories/$currentcat.category");

$path = $this->getValue('path');
$explode = explode("-",$path);
$explode[0]=0;

foreach($explode as $var){

	unset($REX[CAT]);
	@include("redaxo/include/generated/categories/$var.list.category");

	if(is_array($REX[CAT])){
	    foreach($REX[CAT] as $cat){
	    	if($cat[status]==1){
	            print "<a href=".getUrlByID($cat[article_id]).">";
	            print $cat[name];
	            print "</a>";
	            print "&nbsp;|&nbsp;";
	        }
	    }
	}
	print "<br>";
}

?>

jb
Beiträge: 58
Registriert: 24. Aug 2004, 22:11
Wohnort: Stuttgart

9. Feb 2005, 16:05

vscope hat geschrieben:anbei eine nav die prinzipiell unlimitierte tiefe (...)

Code: Alles auswählen

<?php

$currentcat = $this->getValue('category_id');
@include("redaxo/include/generated/categories/$currentcat.category");

$path = $this->getValue('path');
$explode = explode("-",$path);
$explode[0]=0;

foreach($explode as $var){

	unset($REX[CAT]);
	@include("redaxo/include/generated/categories/$var.list.category");

	if(is_array($REX[CAT])){
	    foreach($REX[CAT] as $cat){
	    	if($cat[status]==1){
	            print "<a href=".getUrlByID($cat[article_id]).">";
	            print $cat[name];
	            print "</a>";
	            print "&nbsp;|&nbsp;";
	        }
	    }
	}
	print "<br>";
}

?>
Hab es probiert, aber sie endet bei mir nach dem zwölften Navigationspunkt. Ab da fehlen alle weiteren Navigationspunkte...

Woran liegt's ?

Benutzeravatar
Peter.Bickel
Beiträge: 1856
Registriert: 25. Jan 2005, 21:17
Wohnort: Schleswig-Holstein
Kontaktdaten: Website

9. Feb 2005, 19:39

Das Menü von vscope ist ideal - schnell, mit mehr Menüebenen und nur der jeweils aktive Menübaum aufgeklappt.
Aber: Wie könnte man nun hier die erste Menüebene verstecken?
(Ich brauche das so, weil diese Ebene mit Grafikbuttons realisiert ist.)

Ein Lösungsvorschlag für einen Anfänger wäre toll.

Dank im voraus,
Peter.

loeppel
Beiträge: 7
Registriert: 15. Feb 2005, 00:57

15. Feb 2005, 20:01

Code: Alles auswählen

<?php

$currentcat = $this->getValue('category_id');
@include("redaxo/include/generated/categories/$currentcat.category");

$path = $this->getValue('path');
$explode = explode("-",$path);
$explode[0]=0;

foreach($explode as $var){


   //[START] erste eben auslassen 
    if($var == 1) //bzw. der ID deiner ersten Ebene
    {
        continue; //bewirkt das überspringen diese durchlaufs
    }
   //[END]


   unset($REX[CAT]);
   @include("redaxo/include/generated/categories/$var.list.category");

   if(is_array($REX[CAT])){
       foreach($REX[CAT] as $cat){
          if($cat[status]==1){
               print "<a href=".getUrlByID($cat[article_id]).">";
               print $cat[name];
               print "</a>";
               print "&nbsp;|&nbsp;";
           }
       }
   }
   print "<br>";
}

?> 
Nur mal eine vermutung, kannst ja mal testen...

cya
loeppel

Benutzeravatar
Peter.Bickel
Beiträge: 1856
Registriert: 25. Jan 2005, 21:17
Wohnort: Schleswig-Holstein
Kontaktdaten: Website

15. Feb 2005, 23:23

Nee, die erste Ebene wird trotzdem angezeigt.
Trotzdem vielen Dank.

Ich bin dafür mit Thomas' Navigations-Ansatz glücklich geworden:
http://forum.redaxo.de/viewtopic.php?t=287

Schönen Abend,
Peter.

Zurück zu „Allgemeines [R2]“