Verschachtelte Struktur abbilden

Hier dreht sich alles um die auf der Webseite veröffentlichten Tutorials. // This forum is all about the APF tutorials.
Antworten
xm22
Beiträge: 4
Registriert: 29.10.2009, 10:49:45

Verschachtelte Struktur abbilden

Beitrag von xm22 » 29.10.2009, 11:24:43

Hallo,

ich bin mal die ganzen Tutorials durchgegangen und bin aber bei einer Sache nicht weiter gekommen. Und zwar:

Ein globales Template, dass grundsätzliche Sachen wie Header und Footer einbindet.
Nun gibt es mehrere verschachtelte Seiten, die jeweils eigene Taglibs einbinden können. Das sieht etwa so aus:

Es gibt eine Seite "Benutzer" mit den generellen Informationen zu einem Benutzer, dort ist in diesem Bsp. eine Taglib mit Kurzinformationen zum User eingebunden. Unterhalb dieser Seite befindet sich die Seite "Mailbox", die noch eine Taglib mit der Navigation für Posteingang, Postausgang, etc. einbindet. Darunter wiederum gibt es die Seite "Posteingang".

Jetzt meine Frage - wie bildet man das über Templates und Taglibs ab. Mein Gedanke wäre jetzt gewesen:

Template (Perspective): Wie gesagt, enthält Header und Footer und vielleicht eine Hauptnavigation u. ä. und einen Content-Bereich

Bindet diese Perspective jetzt per html-taglib jede mögliche Option ein (Benutzer, Mailbox, Posteingang) eingebunden und je nach Parameter angezeigt? Und angenommen, man geht in die Mailbox - Wird dann auch wieder abhängig vom Parameter aus den Taglibs Posteingang, Postausgang, etc. angezeigt?

Dann müsste ja in jeder dieser Seiten die oben genannte Infobox einzeln eingebunden werden. Das stelle ich mir doch etwas fummelig vor... Oder nimmt man dafür dann eine andere Perspective?

Vielleicht kann mir da jemand Klarheit bringen..

Benutzeravatar
dr.e.
Administrator
Beiträge: 4538
Registriert: 04.11.2007, 16:13:53

Re: Verschachtelte Struktur abbilden

Beitrag von dr.e. » 31.10.2009, 13:49:34

Hi xm22,

sorry für die verspätete Antwort.
Es gibt eine Seite "Benutzer" mit den generellen Informationen zu einem Benutzer, dort ist in diesem Bsp. eine Taglib mit Kurzinformationen zum User eingebunden. Unterhalb dieser Seite befindet sich die Seite "Mailbox", die noch eine Taglib mit der Navigation für Posteingang, Postausgang, etc. einbindet. Darunter wiederum gibt es die Seite "Posteingang".
Die Struktur ist soweit klar. Ob du die Funktionen nun als Taglib oder als weitere Templates abbildest, ist zunächst nicht relevant, denn beides wird funktionieren.
Template (Perspective): Wie gesagt, enthält Header und Footer und vielleicht eine Hauptnavigation u. ä. und einen Content-Bereich
Klingt gut. Wobei du grundsätzlich nicht beschränkt bist nur eine "Perspektive" (=Haupt-Perspektive) zu haben, du kannst das Konzept in verschiedenen Schachtelungstiefen deiner Seite n Mal wiederholen. Das kann bedeuten, dass dein allgemeiner Rahmen mit Header, Content, Menü und Footer eine Perspektive ist, der im Content-Bereich eingebundene Inhalt kann wieder mit demselben Konzept aufgeteilt sein.
Bindet diese Perspective jetzt per html-taglib jede mögliche Option ein (Benutzer, Mailbox, Posteingang) eingebunden und je nach Parameter angezeigt?
Es wird immer nur dasjenige Template eingebunden, das auch aktuell auf Grund der Programm-Logik benötigt wird. Alle Templates einzubinden, zu parsen und dann zu entscheiden, ob es angezeigt werden soll wäre aus Sicht der Performance sehr ungünstig.
Und angenommen, man geht in die Mailbox - Wird dann auch wieder abhängig vom Parameter aus den Taglibs Posteingang, Postausgang, etc. angezeigt?
Um abhängige Bereiche zu realisieren, würde ich den <core:importdesign />- oder <generic:importdesign />-Tag nutzen. Diese binden abhängig von URL- oder Model-Parametern andere Templates ein. Für ein spezielles Modul deiner Software (z.B. Posteingang) wird dann ein anderes Template - basierend auf Informationen in einem Model oder der URL - eingebunden. Beim schreiben einer Mail ist das wieder ein anderes Template plus zuständigem Controller.
Dann müsste ja in jeder dieser Seiten die oben genannte Infobox einzeln eingebunden werden. Das stelle ich mir doch etwas fummelig vor... Oder nimmt man dafür dann eine andere Perspective?
Das kommt auf den generellen Aufbau deiner Seite an und lässt sich so nicht konkret beantworten. Du hast beide Möglichkeiten, mir persönlich würde die Lösung über je eine Perspektive am Besten gefallen, da du in dieser die jeweils quasi-statischen Bereiche definieren kannst und diese dann auch immer angezeigt werden. Als Nutzer (z.B. bei einem CMS) müsstest du dich dann nicht mehr darum kümmern. Sofern das eine geschlossene Software sein soll (=kein CMS) würde ich mir zunächst überlegen, welche Perspektiven du brauchst (Login, Druck, Normal-Ansicht, ...) und würde dann definieren, welche eigenständigen Elemente (z.B. deine Infobox) du haben wirst und wo diese angezeigt werden. Daraus entscheidet sich dann auch, ob du das als Template oder Taglib implementierst und wie du diese in die relevanten Templates einbindest. Generell gilt als Daumenregel: schreibe eine Taglib, wenn du mit einem Template plus Controller nicht mehr weiter kommst. Das sollte an und für sich selten der Fall sein, aber es schadet z.B. nicht, eigene und immer wieder verwendete Elemente (z.B. die Anzeige, ob jemand neue Elemente im Posteingang hat oder nicht) als Taglib abzufassen. Dann kannst du sie bequem in beliebige Templates einbinden ohne den Code nochmals schreiben zu müssen.

Ich hoffe, das hilft dir etwas weiter. :roll: Falls nicht, skizziere mal dein grobes Seiten-Schema und lass uns dann an Hand des konkreten Beispiels den möglichen Aufbau diskutieren.
Viele Grüße,
Christian

xm22
Beiträge: 4
Registriert: 29.10.2009, 10:49:45

Re: Verschachtelte Struktur abbilden

Beitrag von xm22 » 02.11.2009, 09:44:09

Nee, das hört sich ziemlich schlüssig an. So, wie Du das beschrieben hast, wollte ich es wissen.

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast