(CGI) Hierarchie darstellen und Knoten klickbar machen
Erwin
- perl
Einen wunderschönen Guten Morgen,
ich habe eine DokumentenHierarchie die aus einer DB kommt, zum Verständnis hier mal als hash gezeigt:
%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
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
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
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
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"
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