Template-Engine: Unterschied zwischen den Versionen

Aus DynPG-Wiki
Wechseln zu: Navigation, Suche
 
K (Einführung)
 
(Eine dazwischenliegende Version des gleichen Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
 +
{{stub}}
 
[[Kategorie:Entwicklerdoku]]
 
[[Kategorie:Entwicklerdoku]]
DynPG besitzt eine Template-Engine, mit der es möglich ist, die Art und Weise wie Artikel und Listen, etc. angezeigt werden, zu verändern. Die Templates für die Basisfunktionalitäten des CMS befinden sich in '''''tpl/MyCMS/'''''. Indem man dort einen neuen Ordner erstellt, wird in DynPG ein neues Template registriert, mit dem Namen des Ordners. In dem Ordner müssen nun bestimmte .tpl-Dateien erstellt werden um gewisse Ansichten zu beeinflussen:
 
  
* '''''articles.tpl''''' (Artikellistenansicht)
+
== Einführung ==
* '''''detail.tpl''''' (Artikeldetailansicht)
+
* '''''groups.tpl''''' (Gruppenlistenansicht)
+
* '''''home.tpl''''' (Startseitenansicht)
+
* '''''navigation-pages.tpl'''''(weiter-/zurück- Buttons, wenn eine Liste sehr lang ist)
+
* '''''search-form.tpl''''' (Suchform)
+
  
Die Templates werden bei der Benutzung folgendermaßen gesetzt:
+
Die Templateengine von DynPG besteht im Wesentlichen aus der in der Datei
 +
<tt>(cms)/plugins/templates.php</tt>
 +
definierten Klasse <tt>TTemplate</tt>. Die in ihr enthaltenen Methoden werden innerhalb der
 +
Klasse durch Kommentare recht gut dokumentiert.
  
<code>[php,N]
+
In jedem Plugin bzw. in der DynPG-Frontend-Engine selbst wird jeweils eine Instanz
$DynPG->setupTemplate("OrdnerName");
+
der Klasse <tt>TTemplate</tt> erzeugt. Standardmäßig lautet diese Instanz innerhalb von
</code>
+
Plugins <tt>$this->template</tt>. Im folgenden werden wir nun dieses Property verwenden
 +
um Templates mit Inhalt zu fullen.
  
Wenn man nun etwas per Write_Article() etc. ausgibt, wird dieses Template und die darin definierten Ansichten verwendet (der Code innerhalb dieser Dateien wird an der passenden Stelle eingesetzt). Wie man Templates erstellt, wie die Sprache funktioniert und welche Template-Variablen es gibt, kann man [[Templates|hier]] nachlesen.
+
Die Engine kann im Prinzip vier semantisch verschiedene Platzhalter-Typen dynamisch
 +
ersetzen:
 +
# Variablen: simple Platzhalter fur dynmaischen Inhalt, welcher durch den jeweiligen Anwender der Engine mit dynamischen Inhalt gefullt werden.
 +
# Alternativen (if-Statements): um bestimmte Code-Teile nur in bestimmten Situationen anzeigen lassen zu konnen, dienen die if-Statements.
 +
# PHP-Codeblocke: innerhalb dieser Blocke ist es moglich PHP-Code auszufuhren; zu beachten ist dabei jedoch, dass der Block nur ein Statement enthalten kann, d.h. mehrere Statements, getrennt durch Semikolons, sind nicht gestattet.
 +
# Schleifen/Subtemplates: um Listen oder allgemein wiederholte Aufzahlungen implementieren zu konnen, sind Schleifen von hoher Wichtigkeit.
 +
 
 +
Im folgenden werden wir uns nun mit diesen Elementen beschaftigen und die Verwendung
 +
der Template-Klasse erlautern.
 +
 
 +
Für praktische Beispiele bzw. Erläuterung einiger DynPG-eigener Platzhalter dient auch der Artikel [[Templates]].
 +
 
 +
(... to be continued)

Aktuelle Version vom 7. August 2009, 17:53 Uhr

Dieser Artikel ist möglicherweise unvollständig. Fügen Sie Informationen hinzu, wenn Sie können!


Einführung

Die Templateengine von DynPG besteht im Wesentlichen aus der in der Datei (cms)/plugins/templates.php definierten Klasse TTemplate. Die in ihr enthaltenen Methoden werden innerhalb der Klasse durch Kommentare recht gut dokumentiert.

In jedem Plugin bzw. in der DynPG-Frontend-Engine selbst wird jeweils eine Instanz der Klasse TTemplate erzeugt. Standardmäßig lautet diese Instanz innerhalb von Plugins $this->template. Im folgenden werden wir nun dieses Property verwenden um Templates mit Inhalt zu fullen.

Die Engine kann im Prinzip vier semantisch verschiedene Platzhalter-Typen dynamisch ersetzen:

  1. Variablen: simple Platzhalter fur dynmaischen Inhalt, welcher durch den jeweiligen Anwender der Engine mit dynamischen Inhalt gefullt werden.
  2. Alternativen (if-Statements): um bestimmte Code-Teile nur in bestimmten Situationen anzeigen lassen zu konnen, dienen die if-Statements.
  3. PHP-Codeblocke: innerhalb dieser Blocke ist es moglich PHP-Code auszufuhren; zu beachten ist dabei jedoch, dass der Block nur ein Statement enthalten kann, d.h. mehrere Statements, getrennt durch Semikolons, sind nicht gestattet.
  4. Schleifen/Subtemplates: um Listen oder allgemein wiederholte Aufzahlungen implementieren zu konnen, sind Schleifen von hoher Wichtigkeit.

Im folgenden werden wir uns nun mit diesen Elementen beschaftigen und die Verwendung der Template-Klasse erlautern.

Für praktische Beispiele bzw. Erläuterung einiger DynPG-eigener Platzhalter dient auch der Artikel Templates.

(... to be continued)