Thread Templatesystem: ... für ein umfangreiches modul-system (10 answers)
Opened by eisbeer at 2004-01-12 18:45

eisbeer
 2004-01-12 18:45
#905 #905
User since
2003-08-29
347 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hallo zusammen !

Meine Aufgabe
Ich habe den Auftrag, ein (hauptsächlich) Intranetsystem für
Firmen zu schreiben. Dieses soll um beliebige, ebenfalls in Perl
geschriebene Module erweitert werden.
Zum beispiel eine Adressverwaltung. In diesem Modul sind dann
verschiedene Funktionen vorhanden, stellt euch zum bespiel
vor "Gib Adressen aus", "Speichere neue Adresse", "Lösche
diese Adresse" etc. Aus dieser von der Funktion erstellten DB
sollen dann auch nachinstallierte Module, wie zum Beispiel
"Auftragsverwaltung" zurückgreifen und aufbauen.

Meine Lösung
Bis jetzt habe ich erstmal ein sinnvollen Grundbau geschaffen.
Der basiert auf momentan auf einem soliden Loginsystem und
jetzt habe ich mal diese besagte Modulgeschichte angeschnitten.
Das Hauptscript checkt die Absicht des Benutzers (klassisch
per action-Variable) und schaut in einer mysql-tabelle nach
dieser action, und ruft anhand der in der Tabelle stehenden
Angaben zu diesem Modul eine Funktion auf.

Funktioniert ansich ganz gut.

Mein Problem

Mein Problem: Wie gebe ich es an den Benutzer aus, der in
seinem Büro hockt und eigentlich nur n Adresseintrag hinzu-
fügen will ?

Meine Idee war so: In der DB, wo auch die Informationen zu
der action stehn, gibt es eine Spalte mastertemplate und
eine Spalte slavetemplate.

mastertemplate ist ein Template, indem alles drin steht,
was nicht mit der Ausgabe der action-Funktion zu tun hat.
Also zB einen Header mit Firmenname, eine Uhr, ein Menü, um
zurück zur Modulübersicht zu kommen, und halt alle möglichen
anderen Dinge. Ausserdem beinhaltet es ein Feld, in welches
die Ausgabe der Action-Funktion soll. Es wird von vielen Actions
benutzt.

slavetemplate ist dann natürlich das Template, in das die
action-Funktion ihre Werte einsetzt. Also etwas ganz spezifisches,
sagen wir zum Beispiel ein Eingabeformular für eine neue Adresse.

Bloß wie verwirkliche ich das ? HTML::Template lässt mich zwar
schön Dateien includen, aber es gibt keinen Tag
Code: (dl )
<TMPL_INCLUDE VAR="$spalte_slavetemplate">


Und wenn ich das Mastertemplate selbst öffne und
Code: (dl )
<TMPL_INCLUDE FILE="~~replace_here~~">

~~replace_here~~ selbst ersetze habe ich
1. den Sinn eines Templates "missbraucht"
2. einen komplizierten Umweg gemacht
3. ein Stück code geschrieben, das micht nicht glücklich macht
4. eine ziemlich unflexibele Art, templates zu benutzen

Ausserdem: Angenommen im Mastertemplate gibt es ein Menü,
in dem z.B alle Funktionen eines Modules ("Gib Adressen
aus", "Speichere neue Adresse" etc. pp. ) gelistet sind. Wenn ich
"Gib Adressen aus" gewählt habe, wie markiere ich dann diese
Eintrag im Menü das er ausgewählt erscheint? Steht das auch
irgendwie im slave oder mastertemplate? Wie irgendwie?


Ich hoffe ihr habt mich verstanden.
Die meisten PC Probleme befinden sich zwischen Bildschirm und Stuhl...

View full thread Templatesystem: ... für ein umfangreiches modul-system