Erwin: (CGI) Hierarchie darstellen und Knoten klickbar machen

Einen wunderschönen Guten Morgen,

ich habe eine DokumentenHierarchie die aus einer DB kommt, zum Verständnis hier mal als hash gezeigt:

node, flag

%hier = (
 '1', '1',
 '2', '1',
 '3', '0',
 '1.1', '1',
 '1.2', '1',
 '1.1.1', '0',
 '1.1.2', '1',
);

Hinter jedem Knoten liegt ein HTML Dokument.

Die Flags bedeuten:
0 = Knoten ist *eingeklappt*, das Dokument wird nicht gezeigt und alle darunterliegenden Knoten auch nicht
1 = Knoten ist *aufgeklappt*, das zum Knoten gehörige Dokument wird gezeigt und die darunterliegenden Knoten auch (entsprechend dem flag: aufgeklappt oder komprimiert).

Das Alles soll auch noch sortiert ein... nun, das Sortieren kriege ich noch hin und die Speicherung der Flags könnte ich in einem Cookie machen.

Insgesamt gesehen ist das mal wieder eine Sache für lange Winterabende wenn der Rest der Familie vor dem Fernseher pennt.

Frage: Gibts dafür Module die sowas vereinfachen?

Das Problem ist ja auch dieses hier: Wenn z.b. Node 1 auf 0 gesetzt ist muss sich das auf die subnodes auswirken, denn diese sollen ja in diesem Fall gar nicht erst angezeigt werden, auch wenn das flag auf 1 steht.

Viele Grüße, Erwin

--
SELFforum - Das Tor zur Welt!
Theoretiker: Wie kommt das Kupfer in die Leitung?
Praktiker: Wie kommt der Strom in die Leitung?
  1. Hi,

    kleine Anregung: Du benoetigst m.E. keinen Hash, sondern einen Tree als Datenstruktur. Diese Datenstruktur wird in Perl sicherlich von einigen Modulen bereitgestellt. Du koenntest das z.B. mit einem XML-Modul machen, welches aus einem XML-Dokument einen Perl-Tree macht.

    http://search.cpan.org/search?query=Tree+XML&mode=all
    http://search.cpan.org/search?query=Tree&mode=all

    Gruss,
    Lude

    1. Hi,

      kleine Anregung: Du benoetigst m.E. keinen Hash, sondern einen Tree als Datenstruktur. Diese Datenstruktur wird in Perl sicherlich von einigen Modulen bereitgestellt. Du koenntest das z.B. mit einem XML-Modul machen, welches aus einem XML-Dokument einen Perl-Tree macht.

      http://search.cpan.org/search?query=Tree+XML&mode=all
      http://search.cpan.org/search?query=Tree&mode=all

      vielen Dank. Ich werd mich da mal durchwühlen ;-)
      Die Tree- Module scheinen interessant zu sein...

      Erwin

      --
      SELFforum - Das Tor zur Welt!
      Theoretiker: Wie kommt das Kupfer in die Leitung?
      Praktiker: Wie kommt der Strom in die Leitung?
    2. Hi Lude,

      hab heute abend nach 2 Tagen meinen Denkfehler gefunden: Jeder Tree muss eine Root haben - das macht vieles einfacher, und so gehts auch ohne Zusatzmodul ;-)

      Erwin

      --
      SELFforum - Das Tor zur Welt!
      Theoretiker: Wie kommt das Kupfer in die Leitung?
      Praktiker: Wie kommt der Strom in die Leitung?
      1. Hi,

        hab heute abend nach 2 Tagen meinen Denkfehler gefunden: Jeder Tree muss eine Root haben - das macht vieles einfacher, und so gehts auch ohne Zusatzmodul ;-)

        wie denn?

        Gruss,
        Lude

        ---
        "Wer nicht kaempft, hat schon gewonnen"

        1. Hi,

          hab heute abend nach 2 Tagen meinen Denkfehler gefunden: Jeder Tree muss eine Root haben - das macht vieles einfacher, und so gehts auch ohne Zusatzmodul ;-)

          wie denn?

          Am WE werde ich die Demo fertigstellen. Es wird so aussehen wie im Dateiexplorer, das LW entspricht der Root, die Verzeichnisse sind die Zweige - alles auf~ und zuklappbar. Die Flags werden an die subnodes weitergegeben, wenn Root auf [-] geht, gehen alle subnodes auch auf [-] bzw. sind dann nicht mehr sichtbar. Analog beim Aufklappen.... ansonsten werden die Flags von den subnodes einzeln gehandled.

          Mir ist gestern abend mal wieder klar geworden wie wichtig die Null in unseren Zahlensystem ist ;-)

          Schönes Wochenende, Erwin

          --
          SELFforum - Das Tor zur Welt!
          Theoretiker: Wie kommt das Kupfer in die Leitung?
          Praktiker: Wie kommt der Strom in die Leitung?