Einstellungsmöglichkeiten

Einstellungsmöglichkeiten – Setzen der Standardeinstellungen für HTML_Template_Flexy

Konfiguration

HTML_Template_Flexy kann über ein assoziatives Array entweder global oder pro Instanz konfiguriert warden. Der einfachste Weg dies zu tun, ist mittels ini-Dateien (die PEAR::Config-Klasse ist jedoch genauso möglich wie ein eigenes Konfigurationssystem).

Eine typische Konfigurationsdatei für HTML_Template_Flexy

[HTML_Template_Flexy]

templateDir = /home/me/Projects/myapplication/templates
compileDir =  /home/me/Projects/myapplication/compiled_templates
forceCompile = 0
debug = 0
locale = en
compiler = Standard

Um die ini-Datei mit HTML_Template_Flexy zu benutzen:

Setzen der Standardeinstellungen

<?php
$config 
parse_ini_file('example.ini',TRUE);
foreach(
$config as $class=>$values) {
  
$options = &PEAR::getStaticProperty($class,'options');
  
$options $values;
}
?>

Alternativ können die Einstellungen auch beim Instanziieren der Klasse gesetzt/überschrieben werden.

Setzen der Standardeinstellungen

<?php
  $options 
= array(
      
'templateDir'   => '/home/me/Projects/myapplication/templates',
      
'compileDir'    => '/home/me/Projects/myapplication/compiled_templates',
      
'forceCompile'  => 0,
      
'debug'         => 0,
      
'locale'        => 'en',
      
'compiler'      => 'Standard',
  );
  
$template = new HTML_Template_Flexy($options);
?>

Einstellungsmöglichkeiten

templateDir directory

Das Verzeichnis, in dem die Templates liegen.

compileDir directory

Das Verzeichnis, in dem die kompilierten Templates abgelegt werden. Der Webserver sollte Schreibrechte für dieses Verzeichnis besitzen.

forceCompile boolean

Standard ist 0: Das Template wird nur beim ersten Mal kompiliert und wenn die Templatedatei geändert wurde. Den Wert auf 1 zu setzen ist nur dann sinnvoll, wenn man Filter entwickelt und das Ergebnis testen muss.

debug integer

Zeigt Debugging-Informationen. Standard ist 0: Keine Informationen anzeigen. 1: Informationen anzeigen.

locale string

Die Standardsprache um Templates auszulesen und zu schreiben. Standard ist 'en' - englisch. Derzeit wird diese Einstellung nur für den Dateinamen der kompilierten Templates benutzt: {filename}.{locale}.{extension} (z.B. originalname.html.en.php)

Flexy benutzt intern die Funktion get_text(), sofern sie installiert ist. Alle Zeichenfolgen in der HTML-Seite werden mit dem Rückgabewert von get_text() ersetzt. Das vereinfacht die Erstellung von mehrsprachigen Seiten etwas.

Für jedes analysierte Template wird eine Datei {templatename}.strings.serial erstellt. Mit der unserialize-Funkion von PHP kann daraus ein Array gewonnen werden, das alle Zeichenfolgen der Datei enthält. Hilfreich für die Übersetzung. Sie können auch einfach das xgettext-Werkzeug benutzen.

compiler string

Standard ist 'Flexy' - die Flexy Tokenizer Driver engine. Andere Engines wären regex (ähnlich der Xipe-Engine), Raw (für gewöhnliche PHP-Dateien ohne Ersetzungen oder Kompilierung) und Standard (depreciated). Dieses Feld kann dafür verwendet werden eigene Engines zu laden, die entweder auf dem Core-Code basieren, oder absolut unabhängig sind.

multiSource boolean

Standard ist false. Erlaubt es einem Template, an mehreren Stellen vorhanden zu sein. Sinnvoll, wenn man z.B. mit Themen arbeitet und auf das Standardtemplate zurückgreifen will, wenn das angeforderte Thema nicht existiert.

templateDirOrder string

Standard ist ''. Das erste passende Template wird verwendet. Wenn mehrere Pfade benutzt werden und das letzte in der Liste verwendet werden soll, muss dieser Wert auf 'reverse' gesetzt werden.

filters array|string

Die Filter können in einem Array oder in einer durch Komma getrennten Zeichenfolge stehen. filters wird NUR vom Regex-Backend benutzt. Mögliche Filter sind: BodyOnly (entfernt alles vor und nach dem body-Tag), Mail (fügt einen zusätzlichen Zeilenumbruch nach jedem PHP-Tag ein), Php (entfernt PHP-Code; nicht sehr zuverlässig), SimpleTags (Ersetzung von Variablen, Methoden, etc.), XML (ersetzt XML-Eröffnungstag mit echo).

nonHTML boolean

Standard ist false. true: Wenn der Flexy-Kompiler verwendet wird, wird kein HTML analysiert (noch nicht ausgiebig getestet).

allowPHP boolean|string

Standard ist false: PHP-Code in Templates ist nicht erlaubt, um die Chance zu reduzieren, dass vergessen wird, die Ausgabe zu schützen (escape output). true: Erlaubt PHP-Code in den Templates. Kann für komplexe Schleifen hilfreich sein, wird jedoch nicht empfohlen. 'delete': Entfernt PHP-Code aus den Templates (schützt nicht vor XSS-Attacken, nur für erfahrene Benutzer geeignet).

flexyIgnore boolean

Standard ist false. true: Verhindert die Konvertierung von HTML-Formularelementen zu HTML_Template_Flexy_Element-Elementen.

numberFormat string

Standard ist ",2,'.',','" das ist das Stückchen Code, das an die Ausgabe-Engine angehängt wird, wenn der :n-Modifikator benutzt wird. Z.B. {xyz:n} wird durch number_format($t->xyz,2,'.',','); ersetzt. Die Standardausgabe wäre somit: 3,559.20. Weitere Informationen enthält das PHP-Manual bezüglich number_format.

url_rewrite string

Flexy kann beim Kompilieren des Templates <img src, <script src, <a href und xul-Stylesheet-URLs ersetzen. Der Wert muss in folgendem Format eingegeben werden: "match/original:new/url, match/another/original:new/url". Jede Kombination wird durch Kommata getrennt, die Pärchen durch einen Doppelpunkt. Hilfreich, wenn man die Templates ohne die Engine benutzen möchte.

compileToString boolean

Standard ist false. true: Der Kompiler gibt das kompilierte Template als Zeichenfolge zurück anstatt es in die Zwischenspeicher-Datei zu schreiben. Z.B. {object._myvar}.

privates boolean

Standard ist false. true: Auch auf Variablen, die mit einem Unterstrich beginnen, kann vom Template aus zugegriffen werden (normalerweise "private" in den Coding Standards von PEAR). Z.B. {someobject._myprivatevar} oder {_myprivate}.

globals boolean

Standard ist false. true: Auch auf globale und superglobale PHP-Variablen kann vom Template aus zugegriffen werden. Z.B. {_POST[myvar]} oder {GLOBALS[somevalue]}.

globalfunctions boolean

Standard ist false. true: Jede systemeigene PHP-Funktion kann mittels GLOBALS im Template eingesetzt werden, z.B. {GLOBALS.date(#d/m/Y#)}. Man sollte jedoch seinen Template-Autoren vertrauen, da sie sehr einfach exec() benutzen können, wenn globalfunctions true ist!

locale string

Standard ist 'en' - wird entweder benutzt, um nach sprachspezifischen Templates mit {filename}.{locale}.{extension} zu suchen, oder in Kombination mit dem Translation2 Übersetzungs-Toolkit, um die zu benutzende Übersetzungssprache während des Kompilierens zu setzen.

Translation2 mixed

Standard ist false. Kann mit einem Array oder einem bestehenden Translation2-Objekt gefüllt weren. Z.B. Translation2 => array('driver'=>'dataobjectsimple', options=>array()));

strict boolean

Standard ist false. true: Zeigt alle PHP-Warnungen während des outputObject-Aufrufs an. Kann hilfreich sein, um versteckte Bugs in Methoden-Rückrufen zu finden.

fatalError int

Standard ist die Konstante HTML_TEMPLATE_FLEXY_ERROR_DIE: Beendet Flexy und gibt den Fehler am Bildschirm aus wenn das Kompilieren des Templates fehlgeschlagen ist. HTML_TEMPLATE_FLEXY_ERROR_RETURN: compile() gibt ein PEAR_Error-Objekt zurück.

plugins string|array

Lädt Plugin-Klassen (standardmäßig aus dem Plugin-Verzeichnis), welche dann über {plugin.nameofmethod} oder als Modifikator {outputstring:dateformat} verwendet werden können. Standardformate sind normalerweise in den Einstellungsmöglichkeiten plugin.dateformat, plugin.numberformat.decimals, plugin.numberformat.point und plugin.numberformat.thousands zusammengefasst.

Was HTML_Template_Flexy kann. (Previous) constructor (Next)
Last updated: Sun, 19 Dec 2010 — Download Documentation
Do you think that something on this page is wrong? Please file a bug report or add a note.
View this page in:

User Notes:

There are no user contributed notes for this page.