#76
| ||||
| ||||
Zitat:
Mit der Methode die ich vorgestellt habe findet eine, meiner Meinung nach, ausreichende Schematisierung der Darstellung statt: ich habe ein HTML-Dokument welches einen Body enthält welcher wiederum bestimmte Elemente (einen Usertabelle beispielsweise) die ich von PHP aus ansprechen kann enthält. Wenn ich eine Usertabelle anzeige ist das eine Tabelle, keine Folge von <div> und auch keine Liste (die eh nicht mehrere Spalten unterstützt). Wie diese Tabelle dann dargestellt wird hängt weder von PHP noch HTML ab, das übernehmen Stylesheets. Zitat:
In einem Punkt hast du aber recht: Templatescripting wie if/else-Konstrukte sind in meiner Idee nicht vorgesehen. Vielleicht findet sich da eine Möglichkeit aber soweit habe ich, wie weiter unten erwähnt, noch nicht gedacht. Ich will nicht sagen, dass grundsätzlichere Änderungen am HTML-Code niemals nötig wären. Was ich sage ist, dass man seine HTML-Templates als eine Art Darstellungsschema verwendet welches von PHP aus ansprechbar und von CSS aus formatierbar ist. Meine Methode ist natürlich nicht "bullet-proof": wenn man das Darstellungsschema grundsätzlich ändern will hat man bei meiner Methode ein Problem da man eventuell auch in den Anwendungscode angreifen müsste. Vielleicht kann man das auch umgehen aber soweit hab ich noch nicht gedacht, das war eher eine spontane Idee In den meisten Fällen ist so eine grundlegende Änderung nicht nötig. Wer schreibt die Templates eines Forums oder Wikis grundsätzlich um? Die meisten passen Farben und Hintergrundbilder, vielleicht die Reihenfolge von Elementen, an aber keine grundsätzlichen Änderungen am HTML. Man könnte auch soweit gehen und generell auf Templates verzichten. Solange deine Anwendung ordentliches HTML auswirft lassen sich die meisten Designänderungen mit Stylesheets machen. Zitat:
__________________ Johannes Klose Calitrix Wiki - Wiki auf Basis von PHP und MySQL |
#77
| ||||
| ||||
Sind ja auch nur knapp über tausend Zeilen. Zu deiner Tabelle: abwechselnde Zeilenhintergründe. Sowas geht mit CSS? (Falls ja: sowas geht mit dem heute unterstützten CSS?) Trennsymbole mit CSS? Selbe Frage wie oben. __________________ Yves Goergen Softwareentwicklung, Fotografie, Webhosting, UNB Components (in Arbeit) |
#78
| ||||
| ||||
Solche Dinge sind mit meiner bisherigen Methode eher schwierig zu machen, ja. War ja auch nur eine Idee, wie man sich für die grundlegenden Sachen wie Platzhalter, Schleifen usw. eine umständliche Scriptingsyntax sparen könnte. Die meisten Scriptinganweisungen dienen nur als Markierungen für die Templateengine damit sie weiss wo ihre Daten hingehören. Das kann man sich auch sparen indem man direkt das HTML manipuliert. Man könnte aber auch bei meiner Idee Scripting (optional) anbieten. Ich hab in meinem ersten Beitrag typo3 erwähnt. Dabei habe ich mich auf die Template-Autoparser-Erweiterung bezogen die im Manual unter "Modern Template Building" beschrieben wird. Dabei können HTML-Templates direkt manipuliert werden. Die Manipulation läuft dabei über eine einfache Scriptsprache (die seperat vom Template definiert wird) mit der dann auch Dinge wie wechselnde Zeilenhintergründe (oder andere HTML-Tags für ein Element) realisierbar sind. Find ich zwar für die meisten Zwecke einfach zuviel des Guten aber wenn es gewünscht wird kann man Scripting ja seperat anbieten ... Das hat nämlich den charmanten Vorteil, dass Designer sich nur um ihren HTML-Code kümmern müssen. Kein Gedanke an Templatescripting, Anwendungslogik u.ä. Diese Dinge macht die Anwendung selber bzw. lassen sich über Scripting konfigurieren. __________________ Johannes Klose Calitrix Wiki - Wiki auf Basis von PHP und MySQL |
#79
| |||
| |||
Hi Fabchen! Hast du vielleicht noch dein Templateparser in der Version 1.03? Ich habe zwar mittlerweile eine eigene Templateklasse, bin aber überzeugt dass es noch das ein oder andere daran zu verbessern gäbe...! Danke! Gruß Felix |
#80
| |||
| |||
Zitat:
Schreibe ich allerdings eine größere Applikation, in der mehrere End-Anwender wiederum Styles meiner Seiten manipulieren können, so bietet sich eine Templatemaschine wiederum an, v.a. unter dem Gesichtspunkt, dass man Platzhalter auf mehrere Arten und Weisen interpretieren kann (so kann zB eine Blockmarkierung im Frontend durch ein bestimmtes Modul - welches wiederum hart kodiert ist - und im Backend eben durch ein Formular zur Auswahl ebenjener Module ersetzt werden). Trotdem gehe ich nicht davon ab, dass die "üblichen" Templatesprachen meist genausoviel Logik in die Templates übertragen, als würde man es hart als PHP/ASP/whatever-Seite schreiben. Klar - ein Mindestmaß an Kontrollen sind sicherlich nötig (siehe das Beispiel bzgl alternierender Zeilenhintergründe), doch sollte man diese durch "gewöhnliche" for...if...else...endfor Konstruktionen abbilden? Wie einer meiner Vorredner bereits sagte, lässt sich dies viel eleganter verpacken. Ich suche im Augenblick nach Möglichkeiten, solch häufig wiederkehrende Aufgaben auf möglichst einfache Tags zu übertragen. Ein Beispiel: Wie ist eine (hierarchische) Navigation mit Smarty darstellbar? Ist schon recht aufwendig, stelle ich mir vor, und lässt sicherlich für mehrere Menuebenen ne Menge Schrott in den Templates. Es SEI denn, man verfolgt den Ansatz, dass man das Menu hart codiert, und die HTML-Ausgabe auf einen Template-Platzhalter bindet. Ist aber recht unflexibel. Ich hatte nun folgende Idee (die auch ganz gut funzt, aber sicher noch Erweiterungsfähig ist): Ein gut lesbares Template, welches einen schönen Kompromiss zwiscehn Usability und "Mächtigkeit"/Funktionalität bietet, kann folgendermaßen aussehen: Code: <ul> <tpl:menu> <tpl:on> <il><tpl:a/> <ul> <tpl:menu> <tpl:on><li><tpl:a/></li> <tpl:off><li><tpl:a/></li> </tpl:menu> </ul> </li> </tpl:on> <tpl:off><li><tpl:a/></li></tpl:off> </tpl:menu> </ul> Was denkt ihr? |
#81
| |||
| |||
Wie sieht es eigentlich mit den Geschwindigkeiten aus? - Gemischt (php und html) - reiner php-Code - html-Code in den die eigentlichen Daten per preg_replace eingefügt werden Was ist schneller? Ich denke mal das 3. ist langsamer, da ein replace doch recht "lange" dauern würde... Dann bleibt noch der Vergleich von Punkt 1 und 2: Was ist schneller? php-Code mittels php-Tags in html-Dateien einbinden oder das komplette Dokument als php verarbeiten? Es geht nicht unbedingt darum gemischte oder reine php-Templates zu machen, sondern eher die Templates durch einen Parser in entsprechenden Code zu wandeln. Wenn man eine Cache-Funktion verwenden will, ist es sinnvoll nicht in html-Code zu parsen, da dieser dann ja wieder aktualisiert werden müsste... Seh ich das richtigß Und was ist euch zu Geschwindigkeitsunterschieden (php-Code oder "Misch-Code") bekannt? |
#82
| |||
| |||
Wenn mich nicht alles täuscht, dann ist PHP-Code, der HTML via echo ausgibt, noch am schnellsten. Allerdings würde ich davon abraten. Programmierung ist mehr als nur Performance-Optimierung und die Nachteile dieser Variante sind überwiegend (niedrige Lesbarkeit, schlechte Wartbarkeit, etc.). __________________ Patrick Gotthardt Patrick Gotthardt on Software |
#83
| |||
| |||
Deshalb wird für die Les- und Wartbarkeit ein HTML-Template mit Template-Tags erstellt. Dieses wird dann geparst und, wenn gewünscht, gecached. Somit kann man die großteils html-Datei bearbeiten und dann wird das ganze in php gewandelt, damit es schnell und einfach ausgegeben werden kann |
Stichworte |
- |
Ähnliche Themen | ||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
Smarty Template Engine | Jan Stöver | Programmierung und Datenbanken | 2 | 10.05.2004 00:02 |
IPB2.0: Generalüberholung des Skin und Template Managers | Michael Przybyla | Forensoftware | 7 | 24.01.2004 15:56 |
Erweiterte User Class | fabian | Programmierung und Datenbanken | 3 | 26.08.2003 21:15 |