# Template Modul v2.5 # Copyright (C) 2005 Sven Nierlein (sven@nierlein.org) # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; either version 2 # of the License, or (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ######################################################################################### Durch das Template Modul können Sie den komplette HTML Code Ihrer Seiten von dem PHP Code trennen. Das erleichtert Ihnen zum einem das Design Ihrer Seiten, und macht zum anderen eine nachträgliche Änderung im HTML Code leichter. Auch können damit Personen das Design übernehmen die keine Ahnung von PHP haben. LIZENZ: Siehe LICENSE, kurz: privat darf das Template Modul frei verwendet und verändert werden. gewerbliche Nutzung nur mit meinem Einverständniss. (sven@nierlein.org) Sollte das Template Modul verändert oder erweitert werden, so darf der Hinweis auf meinen Ursprung nicht entfernt werden. FUNKTION: 1. Zuerst sollte die template.php included werden: include_once("template.php"); 2. In den Templates, die reine HTML Seiten sind, werden Platzhalter ersetzt. Platzhalter sehen folgendermaßen aus: Nun können Sie nachdem Sie die Klasse instanzieert haben : $t = new Template(); und dem Template Modul eine Template Datei übergeben haben : $t -> main("index.tpl"); die Platzhalter ersetzen. $t -> code(array( platzhaltername => "wert", )); Platzhalter die im Template vorkommen, aber nicht ersetzt werden, werden nicht angezeigt. 3. Ein weitere Möglichkeit ist mehrere Zeilen Code in Schleifen zu wiederholen. z.B. bei Tabellen. Man benötigt also eine Tabelle mit einer (oder mehrere) Zeile(n), die dann wiederholt werden. Vor die Zeile(n) kommt wieder ein Platzhalter: und hinter die Zeile(n) In den Zeilen zwischen dem Anfang und Ende werden folgenden Strings ersetzt: [platzhaltername] Diese Platzhalter werden aber nur ersetzt wenn Sie dafür auch ein Wert vorhanden ist, und sei es ein leerer String. Um die Zeilen zu wiederholen müssen Sie nun noch die code() Funktion aufrufen. $t -> code(arrray( loopname => array( array("platzhalter" => "1. Zeile"), array("platzhalter" => "2. Zeile"), array("platzhalter" => "3. Zeile"), ); )); Es muss der code Funktion also ein Array von Hasharray übergeben werden, die Hashkeys sind dann die Platzhalternamen die ersetzt werden. Und die Anzahl der Hasharrays ist die Anzahl der Wiederholungen. 6. Mysql Tabellen anzeigen Man kann mit dem Templatemodul auch Select Statements anzeigen. Der Eintrag im Template schaut hierfür folgendermaßen aus: Im Php Teil wird dieses Select vorbereitet: $t -> code(arrray( queryname => array( "con_id" => # MySQL Connection "query" => # MySQL Query # Allgemeine Optionen "options" => array( "numbered" => " ", # Soll die Ausgabe noch durchnummeriert werden? Wenn gesetzt wird der Wert als Tabellenkopf verwendet "border" => "0", # Rahmengröße "table_wrap" => 200, # Erstellt 1,2,3,4... Links über der Tabelle und zeigt nur die Anzahl der Einträge an. "wrap_highlight" => "#FF0000" # Farbe, der aktuell aktiven Seite "width" => 900, # Tabellenbreite "height" => 200, # Tabellenhöhe ), "field" => array( 0 => array( # Nummer der Spalte (Fängt bei 0 an) "align" => "center" # Ausrichtung der Spalte "nowrap" => 1, # wenn 1, wird ein nowrap eingefügt "view" => 1, # wenn 1, wird das Feld angezeigt, ansonsten nicht. Default ist 1 "pre" => " und dem Feldinhalt angezeigt wird "aft" => "\" alt=\"flagge\">", # text, der nach dem Feldinhalt und dem angezeigt wird "func" => "function" # function die mit dem Feldinhalt als Parameter aufgerufen wird "func_row" => "function" # function which is called with the hole row array as parameter "addlink" => "?sort=2" # create a link around the table header and appends this text at the end of the link ), ), ) )); 5. Die 3 Möglichkeiten kann man natürlich kombinieren, hierbei aber die code() Methode nur einmal aufrufen und dann alle Ersetzungen übergeben. Einfache Ersetzungen werden auch in den Schleifen ersetzt, aber eben alle auf einmal. 6. Jetzt kann das Template entweder angezeigt werden : $t -> t_print(); oder als String zurückgegeben werden : $t -> return_template(); oder in eine Datei geschrieben werden : $t -> write_file("dateiname"); known bugs: none Bugs an sven@nierlein.org viel Spaß damit!