![]() |
|
|
Themen-Optionen |
|
|
Nach oben #1 |
|
Erfahrener Benutzer
Registriert seit: 14.12.2004
Beiträge: 219
|
Hallo zusammen,
ich bin am überlegen welche Struktur am besten ist bin da etwas unentschlossen. Templates einzeln: Es gibt ein Main Template (dieses enthält) : - HTML Header und Grundstruktur Es gibt für verschiedene Themen Templates Vorlagen. - Für den body Bereich (zb. Artikel, Forum, Kalender was auch immer) zb. Thread einzeln (schleife dann im Code), oder im Tpl festlegen besser !? - Für einzellnen Einträge (zb. Foren Thread, Artikel Listing usw.) - Für Modulboxen (seiten navigation zb) Diese werden dann alle gesetzt und dann zusammengefügt. Unterschieden wird anhand von Ebenen, zb. Grundstruktur Ebene 0, Body Bereich Ebene 1 usw. Layout angedacht: <- Head -> <- Body -><- Nav Boxen -> Komplett: Bei den Kompletten, gefunden bei vielen grossen Portalen, die jedes Template komplett gestallten. Also die ganze Seite in dem einem Template vorhanden ist. Aber warum ? Denn wenn ich etwas am HTML Header ändern möchte oder sonst etwas muss ich jedes Template ändern. Und gab es nicht mal einen Thread hier, in dem besprochen wurde wie weit eine Template Classe Schleifen und anderes umsetzten sollte ... bzw in wie weit es Sinnvoll ist das die Classe oder dies im Template umzusetzten ... Grüsse
__________________
Das Leben ist zwar bloß ein Adventure-Game, aber die Grafik ist verdammt gut. Ich such immer noch den Cheat für unlimited money! |
|
|
|
|
|
Nach oben #2 |
|
Semantic Web Fanatic
Registriert seit: 03.06.2006
Beiträge: 237
|
Ich favorisiere auch die Methode mit einer Layout-Datei und mehreren Templates.
Bei meinem Framework wird das dann so funktionieren: PHP-Code:
EDIT: Wobei ich mir noch nicht sicher bin, ob ich dann nicht noch eine Klasse "Layout" mache, sodass man das layout per $this->loadLayout lädt, was eine striktere Trennung von Templates und Layouts gestattet.
__________________
Applikations-Programmierung: BlitzMax, BlitzPlus Webentwicklung: PHP, (X)HTML, CSS, JavaScript, MySQL |
|
|
|
|
|
Nach oben #3 | |
|
Erfahrener Benutzer
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.616
|
Ich nutze auch die Struktur, dass nicht in jeder Templatedatei die ganzen Informationen aus z.B. dem Header, Footer oder einer Seitenleiste vorhanden sind. Bei den Seitennleisten habe ich allerdings mehr als eine, da ja die Struktur einer solchen Leiste auch von Seite zu Seite unterschiedlich sein kann!
Bzgl.: Zitat:
Templatesystem - Foreach-Schleifen ? |
|
|
|
|
|
|
Nach oben #4 |
|
Erfahrener Benutzer
Registriert seit: 14.12.2004
Beiträge: 219
|
Fein, das hilft mir schonmal ein Stückchen weiter. Auch wenn ich mich
gewundert hatte das einige Portale das anders machen. Es wird jetzt die einzeln Methode. Basierend auf ... 1. Layoutschicht (Grundstyle) 2. Layoutschichten (das jeweilige Style Tpl) 3. Tpl Inhaltsschichten (das jeweilige Tpl zum Inhalt) ... Je nach vorhandenem Request. --- zum Link, jain, aber letzterer ist ja schon in die Richtung. Evtl. ist er es ja ... ich gugg mal, Danke.
__________________
Das Leben ist zwar bloß ein Adventure-Game, aber die Grafik ist verdammt gut. Ich such immer noch den Cheat für unlimited money! |
|
|
|
|
|
Nach oben #5 |
|
Semantic Web Fanatic
Registriert seit: 03.06.2006
Beiträge: 237
|
Noch etwas, was zum Thema passt:
Ich überlege mir gerade das Design für so einen Aufbau. Generell habe ich dann eine abstrakte Klasse namens View, von der die Klasse Layout und eben die Klasse für Views/Templates, welches entweder selbstständig sein können, oder von einem Layout benutzt werden, abgeleitet sind. Mir fällt aber momentan kein vernünftiger Name für eben diese Klasse ein. Für ein kleines UML-Diagramm siehe Anhang.
__________________
Applikations-Programmierung: BlitzMax, BlitzPlus Webentwicklung: PHP, (X)HTML, CSS, JavaScript, MySQL |
|
|
|
|
|
Nach oben #6 |
|
Erfahrener Benutzer
Registriert seit: 14.08.2005
Ort: Nienburg / Weser
Beiträge: 659
|
Es gab auch mal eine grundsätzliche Debatte über die Funktionen, die ein Template-System bieten sollte:
Tamplates - Was sie bieten sollten!? Ansonsten mal zu meinem Template-System: Ich benutze z.B. ein Template für das Layout (bzw. mehrere, denn: Für jedes Layout ein Template) und dann für jedes Script eine eigene Template-Datei. Es entstehen zwar viele Dateien, dafür werden die einzelnen Templates jedoch kleiner und somit auhc übersichtlicher. Wenn ich etwas ändern muss, brauche ich immer nur eine Datei anpassen. Zusätzlich zum Punkt "Jedes Layout = eine Datei" und "jedes Script = eine Datei" gibt es natürlich auch noch kleinere Implementierungen anderer Art, die man in einzelne Templates auslagern kann (und auch sollte), so z.B. die Seiten-Navigation (Seitenzahlen) oder das Hauptmenü.
__________________
Paradox ist, wenn jemand für seinen Alkoholkonsum geradestehen soll |
|
|
|
|
|
Nach oben #7 |
|
Semantic Web Fanatic
Registriert seit: 03.06.2006
Beiträge: 237
|
Keiner ne Idee?
View kann ich ja nicht benutzen, da die Oberklasse so heißt. Ist ja auch zu allgemein. Template ist mir auch zu allgemein, denn ein Layout (ebendiese Klasse) ist ja auch ein Template. Mehr fällt mir nicht ein.
__________________
Applikations-Programmierung: BlitzMax, BlitzPlus Webentwicklung: PHP, (X)HTML, CSS, JavaScript, MySQL |
|
|
|
|
|
Nach oben #9 |
|
Semantic Web Fanatic
Registriert seit: 03.06.2006
Beiträge: 237
|
Ich habs mir jetzt anders überlegt.
View ist jetzt keine abstrakte Klasse mehr, sondern die Klasse für die Views (selbstständig, oder als Teil von Layout). Layout ist dann davon abgeleitet. So scheint es mir am sinnvollsten.
__________________
Applikations-Programmierung: BlitzMax, BlitzPlus Webentwicklung: PHP, (X)HTML, CSS, JavaScript, MySQL |
|
|
|
|
|
Nach oben #10 | ||
|
Entwickler
Registriert seit: 05.02.2007
Ort: München
Beiträge: 113
|
Hallo DasMööp,
Zitat:
Am konkreten Beispiel: - Du erstellst ein Haupt-Template, mit dem Grundgerüst deiner Seite - Darin siehst du HTML-mäßig Bereiche vor, in die du dein Menü, News-Bereich, whatever einbinden möchtest - In die HTML-Bereiche bindest du mit XML-Tags (hier <core:importdesign />) deine weiteren Views wie Menü oder News ein. - In den Templates des Menüs oder der News kannst du genauso nochmal weitere Templates einbinden oder einfach statische Inhalte eintragen - Möchtest du nun einen View mit dynamischen Inhalten füllen, gibst du am Anfang des Templates bekannt, welchen Controller du nutzen möchtest und dieser wird dann beim Transformieren des Objektbaums auf den Knoten ausgeführt und generiert dir deine dynamischen Inhalte wie du sie brauchst. - Da jeder Knoten, der per <core:importdesign /> eingebunden wird wieder eine Template-Datei (View) ist, kannst du dort auch weitere HTML-Skelette definieren (<html:template />), die du zur Gestaltung der dynamischen Inhalte verwenden kannst. - Wenn dir die XML-Tags nicht reichen, die du zur Verfügung hast, kannst du diese auf Basis der Klasse Document auch erweitern, sprich deine eigene TagLib schreiben, die dir z.B. eine bestimmte Formatierung erzeugt, oder weitere Inhalte (z.B. aus Sprachdateien) dynamisch einbindet Zitat:
Du fragtest nach Links: - http://www.adventure-php-framework.org/ - http://www.adventure-php-framework.org/Seite/Templates - http://www.adventure-php-framework.org/Seite/TagLibTags - http://www.adventure-php-framework.org/Seite/Controller - http://www.adventure-php-framework.o...ontaktFormular
__________________
Grüße, Dr.E. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Have a look at http://www.adventure-php-framework.org! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
||
|
|
|
|
|
Nach oben #11 | |
|
Erfahrener Benutzer
Registriert seit: 14.12.2004
Beiträge: 219
|
Zitat:
für den Body Bereich. Was mir grad nicht so passt aber ich nicht drum herum komme ist: Ich Initalisiere das System in einer Mainklasse. In dieser sind alle Grundsätzlich nötigen Klassen Included und deklariert. In einer davon fange ich die Requests auf und anhand dieser (z.b. page=index) Lade ich eine Classe page_index extends page_abstract So nun stehe ich vor dem das ich jeweils eine Tpl-Datei habe, aber auch eben eine Classe. Somit sind das aber später sehr viele Dateien wenn ich jedesmal eine Tpl und die Klasse dazu mache pro action !? Ist da sozusagen dann mein "Dokument-Controller", und die page_abstract mein page_manager. Grundsätzliche Definitionen und Methoden sind ja im Modul dann drin. Beispiel (news index.php5?page=news index.php5?page=news_detail&id=1 index.php5?form=news_new index.php5?form=news_edit&id=1 index.php5?action=news_save&id=1 index.php5?action=news_delete&id=1 Oder ist das schon in der Art der Richtige Weg ? *verwirrung*
__________________
Das Leben ist zwar bloß ein Adventure-Game, aber die Grafik ist verdammt gut. Ich such immer noch den Cheat für unlimited money! Geändert von DasMööp (24.09.2007 um 10:03 Uhr). |
|
|
|
|
|
|
Nach oben #12 |
|
Erfahrener Benutzer
Registriert seit: 04.01.2006
Ort: Kassel
Beiträge: 774
|
Was spricht denn dafür, die Anzahl der Dateien möglichst gering zu halten? Ist für mich irgendwie kein Kriterium - wichtig halt, dass diese gut organisiert sind. Ich hab gerade mal gezählt: hab in meinem "lib"-Verzeichnis neben ein paar Verzeichnissen 78 Dateien mit je einer Klasse, Templates sind es 45 - auch alle in einem Verzeichnis. Das ist natürlich Käse und ich werde das bei Zeiten umbauen. Aber eben dahingehend, dass ich die Dateien gruppiere und in Verzeichnisse stecke. Ich würde da jetzt nicht mehrere Dateien zusammen in eine Datei packen.
Was ich zum Teil mache ist, dass z.B. ein Formular zum Anlegen eines Datensatzes (etc.) und das zum bearbeiten zusammen in einem Template beschrieben wird, wenn es sich nur in Details unterscheidet. Und was die Controller/Actions angeht, so besitzt bei mir momentan jedes Modul genau einen Controller und die "Actions" werden durch Methoden repräsentiert. Ich werde die andere Option (eine Klasse je Action) aber noch einbauen. Bei vielen Modulen ist das übertrieben, aber z.B. der Controller, der die Seiten verwaltet, ist in knapp 900 Zeilen Code (ohne Kommentare) beschrieben … und das ist natürlich auch ein wenig … ähm … zugeballert. Basti |
|
|
|
|
|
Nach oben #13 |
|
Erfahrener Benutzer
Registriert seit: 14.12.2004
Beiträge: 219
|
Also bin ich ca. schon auf dem richtigen wege, ...
Habe in meinem lib 15 Dateien bis dato ... sind aber auch nur die internen + module (werden wohl mehr als bislang index und test) /system /system/class/ (hier sind die Page Controller, werden ja Auto init) /system/style/ (Grundstyles des Systems / Layout-html / css) /system/tpl/ (page/,form/,action/ ... templates) /system/lib/modul/ (jeweis das Modul für zB. User, News,...) /system/lib/ -> und ebens dann ornder mit den jeweiligen Klassen die das Sytem braucht ... exception,mysql,template,parse usw usw. Das mit den template möchte ich auch so wie Du angeschnitten hast etwas verfeindern. Dh. zb. bei den tpl/form/ gibt es ein tpl nur mit dem Std. Textfeld. Welches ich ja über die Template Classe, im Page Controller jederzeit einer Variablen zuordnen kann. (Das Feld kann ja immer gleich lauten in den Tpls) In dem Autogeladenen Template integrieren kann. (Bedingt da sich das in dem Controller noch eigens definieren/änern lässt) /system/tpl/page/page_index.tpl /system/tpl/form/form_news_new.tpl /system/tpl/global/textarea.tpl Im (form_news_new.tpl) setze ich nur {tpl$textarea.tpl} Oder über eben die jeweilige Page Controller Klasse einfach einer Var per setTpl im Template zuordnen. Im (form_news_new.tpl) setze ich nur {$textarea} Und im news_new.class.php5 (Controller) dann : ....->setTpl('textarea',getFile('./global/textarea.tpl')); Fazit / pro tpl das per Automatischen Aufruf geladen wird eine Controller Klasse. Gut, dann werde ich das Ding jetzt noch bischen überarbeiten ...
__________________
Das Leben ist zwar bloß ein Adventure-Game, aber die Grafik ist verdammt gut. Ich such immer noch den Cheat für unlimited money! Geändert von DasMööp (24.09.2007 um 13:28 Uhr). |
|
|
|
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| SuSe 10.2 Komplett Tutorial | kampfgnom | Gesuche | 4 | 02.08.2007 14:30 |
| Opera komplett kostenlos | PaterNoster | Plauderecke | 2 | 21.09.2005 10:04 |
| Wie erkennen, wann Seite komplett geladen? | Basti77 | Allgemeine Java-Programmierung | 5 | 04.08.2005 12:23 |