Array fuer Haupt- und Unternavigation

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Array fuer Haupt- und Unternavigation

    Hi,

    ich sitze gerade an einem neuen Ansatz, um Seiten zu strukturieren.


    ich habe dafuer ein pages array. Dort steht jeweils die pagesid und
    parentid.

    pageid = 1
    parentid = 0
    page = About us

    pageid = 5
    parentid = 1
    page = Our Location

    Our Location ist also die Subnavi von About us. Soweit klappt alles.

    In meiner Array Datei lese ich also die Daten ein:

    PHP-Code:
    foreach ($pages as $key=>$value)
    {
          
    Pruefe ob $value['parent'] == $_GET['id'wenn ja fuelle 

          ein children 
    array

    Das children Array lese ich dann in der Subnavi aus. Klappt auch, aber
    wenn ich nun auf die Subnavi klicke, aendert sich ja auch die $_GET['id'].
    Dementsprechend verliere ich also mein $child Array. Ich moechte aber
    innerhalb der Navigation meiner Subnavi diese beibehalten. Wie kann ich
    so etwas machen? Ich komme einfach nicht auf die Loesung. Hat jemand
    eine Idee?


    Im Netz habe ich bisher nichts gefunden, da gibt es immer andere
    Ansaetze, die Arrays werden dort auch ganz anders aufgebaut.


    Wuerde mich ueber jeden Tip freuen. Vielen Dank im Voraus.

    Gruss Luka

  • #2
    Klappt auch, aber
    Hangel dich einfach rekursiv über die praent_id wieder hoch bis zum obersten Eintrag.

    Ich würd das Array aber direkt mehrdimensional aufbauen, dann brauchst du das Child-Array nicht extra zu erstellen.

    Kommentar


    • #3
      Ich würd das Array aber direkt mehrdimensional aufbauen, dann brauchst du das Child-Array nicht extra zu erstellen.
      Und ich würde solche Daten als Nested Sets in eine DB legen. Dann ist das auslesen und der Aufbau des Arrays ein Klacks und geht ohne grosse Verrenkungen vonstatten
      Für den Fall, dass dies etwas für den TS ist:
      http://www.klempert.de/nested_sets/
      http://de.wikipedia.org/wiki/Nested_Sets
      http://dev.mysql.com/tech-resources/...ical-data.html
      Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

      [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
      Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

      Kommentar


      • #4
        Eigentlich musst du zwei IDs per GET übergeben, parent und child. Um es dynamisch zu halten, würde ich es mit ?pid=1.5 und explode() machen. So sehen die URLs auch bei sehr tiefen Verschachtelungen noch gut aus (besser als mit einem GET-Parameter für jede Ebene). Noch hübscher wäre natürlich .../1/5 und dann mit mod_rewrite ...

        Kommentar


        • #5
          Hi,

          danke fuer Eure Ansaetze. Ich habe gerade noch den folgenden Link gefunden:

          www.selfphp.info/forum/showthread.php?t=17577

          Das versuche ich gerade einzubauen. Mein Ansatz zielt darauf ab, dass der Aufbau irgendwann auch in einer DB stehen kann. Dann waere das " Array aber direkt mehrdimensional " wohl nicht ratsam.

          Das mit den nested Sets muss ich mir mal in aller Ruhe anschauen. Jetzt erstmal schauen, ob das Script vom Link funktioniert.

          Danke nochmal.

          Gruss Luka

          Kommentar


          • #6
            Das versuche ich gerade einzubauen. Mein Ansatz zielt darauf ab, dass der Aufbau irgendwann auch in einer DB stehen kann. Dann waere das " Array aber direkt mehrdimensional " wohl nicht ratsam.
            Dann orientier dich am Nested Sets.

            Kommentar


            • #7
              Hi,

              so, habe mich mal versucht in Nested Sets reinzulesen. Aber irgendwie habe ich immer wieder Beitraege gefunden, wo man dies direkt mit SQL bearbeitet. Ich moechte aber einfach gerne eine Hauptnavi haben und links die Unternavi. Wenn ich dann auf Unternavipunkt klicke, soll die natuerlich stehen bleiben. Das Ganze momentan ohne DB, nur ueber 1 Array wo all die Pageinformationen stehen.

              Habe das Script mit dem Link ausprobiert, doch leider sieht es so aus, das wenn man den letzten Link der Unternavi anklickt, diese verschwindet. Ich sehe auch einfach nicht warum das so ist, kann es also nicht fixen.

              kennt jemand noch eine gute Quelle, wo mein Problem beschrieben stehen koennte?

              Vielen Dank.

              Kommentar


              • #8
                Dann mach es so, wie beschrieben und verzichte auf nested sets, sei dir aber im Klaren darüber, dass du ggf. später anpassen musst.

                Kommentar


                • #9
                  Hallo,

                  Dann mach es so, wie beschrieben
                  genau damit tue ich mich ja schwer. Das Script hinter dem Link funzt halt nicht komplet. Ich weiss jetzt wirklich nicht was ich machen soll bzw muss.
                  habe es jetzt so verstanden:
                  • Also wenn ich eine Seitenstruktur in DB habe mache ich es mit Nested Sets?
                    Nested Sets werden direkt mit SQL umgesetzt, richtig?
                  • und wenn ich ein normales Array habe mache ich es am Besten wie?
                    "Hangel dich einfach rekursiv über die praent_id wieder hoch bis zum obersten Eintrag." Rekursiv? Und wie sieht so etwas aus?
                  • Also Rekursiv durch ein Array oder gibt es noch einen anderen Weg?


                  Im Moment weiss ich wirklich nicht weiter, freue mich ueber weitere Tips. Vielen Dank.

                  Kommentar

                  Lädt...
                  X