buhbeamter: Verzeichnisbaum als Navielement

Hallo,

dies ist schon mein Zweiter Thread zu diesem Thema. Ich habe folgendes Problem. Ich habe eine Navigationsleiste mit folgendem Javascript Code in meine HTML Seiten eingebaut:

~~~javascript <script type='text/javascript'>
 function anzeigen(das,was){
 if (document.getElementById(das).style.display == 'none') {
  document.getElementById(das).style.display = 'block';
  was.src="bilder/open.gif";
 }
 else {
  document.getElementById(das).style.display = 'none';
  was.src="bilder/closed.gif";
  }
}

  
diese bewirkt, dass ich einen ausklappbaren Verzeichnisbaum habe.  
Nun habe ich als erstes die komplette Seite mit 2 Frames erstellt. Der linke Frame für die Navigation, der rechte für den Inhalt. Das ganze hatte den Sinn, dass ich die Navileiste nicht in jedes einzelne der weit über 100 HTML Seiten einbinden musste. Das funktionierte soweit auch ganz gut. Dann sagte man mir hier im Forum, dass man mit Frames nicht mehr arbeiten würde. Desweiteren war die Seite mit Frames nicht barrierefrei.  
Also stellte ich um und fügte die Navileiste per php Skript automatisiert in jedes HTML.  
Nun habe ich aber das Problem, wenn ich den Verzeichnisbaum in der Navileiste aufklappe und dann einen Link anklicke wird mir die gewollte Seite geöffnet, der Verzeichnisbaum im linken Bereich ist aber logischerweise immer wieder im geschlossen (Ursprungszustand).  
Ich möchte aber gerne, dass der Verzeichnisbaum geöffnet bleibt und mir somit auch anzeigt wo ich gerade stehe.  
Muss ich dafür wieder zurück zu der Framelösung?  
Ich hoffe ich konnte mein Problem verständlich schildern.  
  
Danke  
  

  1. Moin,

    du kannst per JavaScript einen http://de.selfhtml.org/javascript/objekte/document.htm#cookie@title=Cookie setzen und dir darin merken, was aufgeklappt ist. Bei einem Reload kannst du dann den Cookie wieder auslesen und die entsprechenden Sachen wieder aufklappen.

    Gruß,
    Take

    1. Das könnte ich, könnte ich Javascript programmieren.
      Für mich wird wohl die einzige Lösung sein, wieder auf Frames umzubauen, oder?
      Oder bekomme ich das per copy and past hin mit der Cookie Funktion?

      1. Moin,

        Das könnte ich, könnte ich Javascript programmieren.
        Für mich wird wohl die einzige Lösung sein, wieder auf Frames umzubauen, oder?

        Nein, das ist keine Lösung. Entweder du willst den Verzeichnisbaum, dann lerne JavaScript, oder lass es bleiben und verzichte auf den dynamischen Verzeichnisbaum.

        Gruß,
        Take

        1. Ok, die Funktion mit den Cookies ist ja gar nicht so schwer, habe ich mir gerade angeschaut. Das ist aber leider doch keine Lösung für mich aus folgendem Grund:

          Ich muss leider auch quereinsprünge auf HTML Seiten machen. Das heisst unter bestimmten Umständen springe ich direkt auf ein HTML das in einem Unterverzeichnis liegt.
          Wenn ich das nun öffne, wird mir die Navileiste natürlich auch als komplett geschlossen dargestellt. Sie müsste ja auch hier an der richtigen Stelle geöffnet dargestellt werden.

          1. Om nah hoo pez nyeetz, buhbeamter!

            Wenn ich das nun öffne, wird mir die Navileiste natürlich auch als komplett geschlossen dargestellt. Sie müsste ja auch hier an der richtigen Stelle geöffnet dargestellt werden.

            erstelle ein Array, welches in Abhängigkeit vom Seitentitel den zu öffnenden Menüpfad speichert.

            Matthias

            --
            1/z ist kein Blatt Papier.

            1. Oje, dann mache ich mich mal daran programmieren zu lernen. Bis nächstes Jahr.

            2. Ok, das mit dem Array ist mir klar. Ich habe aber weiterhin dass Problem, dass die Verlinkung der Navileiste die ich mit einem inlude einfüge nicht richtig ist, sobald ich eine oder mehrere Ebenen tiefer gerate. Ich benutze natürlich relative Verlinkungen. Die Navigation die ich mir per include hole, ist aber logischerweise nur für eine Ebene gültig. ich werde noch wahnsinnig. Gibt es irgendwo vielleicht Vorlagen die ich für die Navigation in mehreren Ebenen nutzen könnte?

              1. Lieber buhbeamter,

                Ich benutze natürlich relative Verlinkungen.

                wieso ist das "natürlich"? Du siehst ja an Deinem eigenen Projekt, dass diese Vorgehensweise Dir ein massives Problem bereitet. Also willst Du vielleicht doch absolute Pfade verwenden...?

                Liebe Grüße,

                Felix Riesterer.

                --
                ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
                1. Ich schreibe natürlich weil mir immer immer gesagt wurde, dass ich niemals absolute Verlinkung benutzen dürfe. Ich beschäftige mich erst seit 4 Wochen mit HTML etc. und es ist eigentlich nicht mein Fach. Und so habe ich auf das gehört, was mir (hier im Forum) geraten wurde.
                  Also meinst Du, ich könnte hier mit absoluter Verlinkung arbeiten?
                  Warum wurde mir dann so massiv davon abgeraten?

                  1. Hallo,

                    [...] weil mir immer immer gesagt wurde, dass ich niemals absolute Verlinkung benutzen dürfe.

                    wer sagt denn sowas?
                    Nein, absolute Links sind schon okay, muss ja nicht komplett mit Hostnamen sein.

                    Also meinst Du, ich könnte hier mit absoluter Verlinkung arbeiten?
                    Warum wurde mir dann so massiv davon abgeraten?

                    Das frage ich mich auch. Oder hast du vielleicht etwas miss(t)verstanden?

                    Relative Links sind natürlich fein, dann kannst du das Projekt wirklich in jedem beliebigen Verzeichnis beginnen lassen. Dann musst du aber sorgfältig unterscheiden zwischen Verzeichnissen auf deinem Server, und Verzeichnissen, die der Client (Browser) über HTTP zu sehen glaubt. Das ist nicht immer ganz einfach.

                    Ciao,
                     Martin

                    --
                    Auf jeden Menschen auf der ganzen Welt entfallen statistisch gesehen etwa 3000 Spinnen, wie Wissenschaftler jetzt festgestellt haben.
                    Wer will meine haben? Denn ich will sie bstimmt nicht.
                    Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
                  2. Lieber buhbeamter,

                    Ich schreibe natürlich weil mir immer immer gesagt wurde, dass ich niemals absolute Verlinkung benutzen dürfe.

                    so absolut formuliert ist dieser Ratschlag völliger Unsinn. Sowohl relative als auch absolute Pfade haben ihre Daseinsberechtigung. Informiere Dich, wie relative und absolute Pfadangaben "funktionieren" und mache Gebrauch von beiden - je nach Erfordernissen Deines Projektes.

                    Liebe Grüße,

                    Felix Riesterer.

                    --
                    ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
                    1. Lieber buhbeamter,

                      Informiere Dich, wie relative und absolute Pfadangaben "funktionieren"

                      , zum Beispiel im selfhtml-wiki.

                      Matthias

                      --
                      1/z ist kein Blatt Papier.

  2. Hallo buhbeamter,

    ... Verzeichnisbaum ...
    ... weit über 100 HTML Seiten einbinden ...

    ich glaube, du solltest die ganze Programmiererei erst mal sein lassen. Viel wichtiger wäre es, wenn du dein Projekt vernünftig strukturierst. Über 100 Links auf über 100 Seiten finde ich nicht wirklich sinnvoll, auch nicht, wenn sie per Javascript teilweise ein/ausgeblendet werden können.

    Zerleg dein Projekt in Unterprojekte (Rubriken, ...). Dann ist die Navigation und deren Pflege auch kein Problem mehr. Ein Beispiel:
      Startseite hat 10 Links auf die 10 Rubrikenstartseiten
      Rubrikenstartseiten und Inhaltsseiten haben je 10 Links auf Inhaltsseiten
        der eigenen Rubrik, evtl. auch Links zu den anderen Rubriken, evtl. auch in Ordnerstruktur.

    So eine Struktur lässt sich auch noch problemlos von Hand pflegen und benötigt weder Javascript noch PHP.

    Gruß, Jürgen