/ www.portalsuite.de / Support / Portunity Portalsuite / Handbuch / 6 Grundlegende Templatefunktionen


Template Segmentierung

Bisher hatten wir jeder Kategorie ein Template zugeordnet bzw. für alle Kategorien, für die kein Template definiert war, wurde von der Portalsuite automatisch das Standardtemplate benutzt. Vielleicht ist Ihnen bereits aufgefallen, daß eine globale Änderung, z.B. am HTML-Header, zur Folge hat, daß mehrere Templates an gleichen Stellen geändert werden müssen. Wir hatten bisher eine Coderedundanz in den Templates. Ein wesentliches Feature im Konzept der Portalsuite ist die Template Segmentierung. Die Segmentierung soll redundante Codefragmente vermeiden, die Modularität fördern und spätere Änderungen vereinfachen. Gleiche Codeteile aus unterschiedlichen Templates werden dazu in neue Subtemplates verlagert. Schauen wir uns die drei derzeitigen Templates an. Der Anfang ist in allen drei Templates identisch. Den Tabletag haben wir aus Übersichtlichkeitsgründen erstmal ignoriert: Template Testtemplate:

<html>      <head>           <? PrintCSS (); ?>      </head>      <body bgcolor=#ffffff>           <table border=1><tr><td valign=top>                 <? PrintCategoryTree (); ?>           </td><td valign=top>                 <p class=Text>                 Dies ist ein Testtemplate.<br>                 Aktuell: <? echo (date (“d.m.Y“)); ?>                 </p><br>                 <? PrintCategoryArticles (); ?>           </td></tr></table>      </body> </html>

Template Produkttemplate:

<html>      <head>           <? PrintCSS (); ?>      </head>      <body bgcolor=#ffffff>           <table border=1><tr><td valign=top>                 <? PrintCategoryTree (); ?>           </td><td valign=top>                 <p class=Text>                 Dies ist die Produktseite. <br>                 </p><br>                 <? PrintCategoryArticles (); ?>           </td></tr></table>      </body> </html>

Template Artikeltext:

<html>      <head>           <? PrintCSS (); ?>      </head>      <body bgcolor=#ffffff>           <table border=1><tr><td valign=top>                 <? PrintCategoryTree (); ?>           </td><td valign=top>                 <? PrintArticle (); ?>           </td></tr></table>      </body> </html>

Die Vorgehensweise ist einfach: Wir erzeugen ein neues Template, z.B. namens „HTMLHead“. Bei diesem Subtemplate spielt der Templatetyp und das Kategoriemapping keine Rolle und können leer bzw. undefiniert bleiben. In dieses neue Template wird der identische Code aus den drei Templates kopiert: Neues Template HTMLHead:

<html>      <head>           {CSS}      </head>      <body bgcolor=#ffffff>

Das dies kein sinnvolles bzw. vollständiges HTML-Dokument ist, spielt ebenfalls keine Rolle. Die drei bestehenden alten Templates werden nun folgendermaßen abgeändert (hier nur am Beispiel des ersten Templates gezeigt): Template Testtemplate:

{TemplateInclude name=“HTMLHead“}           <table border=1><tr><td valign=top>                 <? PrintCategoryTree (); ?>           </td><td valign=top>                 <p class=Text>                 Dies ist ein Testtemplate.<br>                 Aktuell: <? echo (date (“d.m.Y“)); ?>                 </p><br>                 <? PrintCategoryArticles (); ?>           </td></tr></table>      </body> </html>

Der neue Befehl „TemplateInclude“ bindet das Untertemplate „HTMLHead“ genau an dieser Stelle ein, an der vorher der HTML-Code und TCC-Befehle standen. Am Ergebnis in der Portalvorschau sollte sich nichts ändern. Selbst der zurückgegebene Quellcode sollte der gleiche wie vorher sein. Ihnen ist sicherlich jedoch sofort aufgefallen, daß wir für diesen Befehl keine PHP-Syntax mit „


[zurück] - [bookmarken] - [Druckversion] - [Weiterempfehlen] - [Kontakt] - [Impressum]





Providing unter: http://portunity.net

DSL, ENUM, Hosting, Server,...



unter: enum-center.de