Smarty Icon

You may use the Smarty logo according to the trademark notice.

Smarty Template Engine Smarty Template Engine

For sponsorship, advertising, news or other inquiries, contact us at:

Sites Using Smarty

Advertisement

Smarty - die kompilierende PHP Template-Engine

Monte Ohrt <monte at ohrt dot com>

Andrei Zmievski <andrei@php.net>

Andreas Halter <smarty@andreashalter.ch> (Deutsche Übersetzung)

Thomas Schulz <ths@4bconsult.de> (Review der deutschen Übersetzung)

2010-09-20


Table of Contents

Vorwort
I. Erste Schritte
1. Was ist Smarty?
2. Installation
Anforderungen
Basis Installation
Erweiterte Konfiguration
II. Smarty für Template Designer
3. Grundlegende Syntax
Kommentare
Variablen
Funktionen
Attribute / Parameter
Variablen mit Doppelten Anführungszeichen
Math
Smarty Parsing umgehen
4. Variablen
Aus einem PHP-Skript zugewiesene Variablen
Assoziative Arrays
Array Index
Objekte
Verwendung von Variablen aus Konfigurationsdateien
Die reservierte {$smarty} Variable
Request-Variablen
{$smarty.now}
{$smarty.const}
{$smarty.capture}
{$smarty.config}
{$smarty.section}, {$smarty.foreach}
{$smarty.template}
{$smarty.version}
{$smarty.ldelim}, {$smarty.rdelim}
5. Variablen-Modifikatoren
capitalize (in Grossbuchstaben schreiben)
cat
count_characters (Buchstaben zählen)
count_paragraphs (Absätze zählen)
count_sentences (Sätze zählen)
count_words (Wörter zählen)
date_format (Datums Formatierung)
default (Standardwert)
escape (Maskieren)
indent (Einrücken)
lower (in Kleinbuchstaben schreiben)
nl2br
regex_replace (Ersetzen mit regulären Ausdrücken)
replace (Ersetzen)
spacify (Zeichenkette splitten)
string_format (Zeichenkette formatieren)
strip (Zeichenkette strippen)
strip_tags
truncate (kürzen)
upper (in Grossbuchstaben umwandeln)
wordwrap (Zeilenumbruch)
6. Kombinieren von Modifikatoren
7. Eingebaute Funktionen
{capture} (Ausgabe abfangen)
{config_load} (Konfiguration laden)
{foreach}, {foreachelse}
iteration
first
last
show
total
{if},{elseif},{else}
include (einbinden)
include_php (PHP-Code einbinden)
insert (einfügen)
ldelim,rdelim (Ausgabe der Trennzeichen)
literal
php
section,sectionelse
index
index_prev
index_next
first
last
rownum
loop
show
total
strip
8. Eigene Funktionen
{assign} (zuweisen)
{counter} (Zähler)
{cycle} (Zyklus)
{debug}
{eval} (auswerten)
{fetch}
{html_checkboxes} (Ausgabe von HTML-Checkbox Tag)
html_image (Ausgabe von HTML-IMG Tag)
html_options (Ausgabe von HTML-Options)
html_radios (Ausgabe von HTML-RADIO Tags)
html_select_date (Ausgabe von Daten als HTML-'options')
html_select_time (Ausgabe von Zeiten als HTML-'options')
html_table (Ausgabe von HTML-TABLE Tag)
mailto
math (Mathematik)
popup (Popup-Inhalt definieren)
popup_init (Popup Initialisieren)
textformat (Textformatierung)
9. Konfigurationsdateien
10. Debugging Konsole
III. Smarty für Programmierer
11. Konstanten
SMARTY_DIR
SMARTY_CORE_DIR
12. Smarty Klassenvariablen (Objekteigenschaften)
$template_dir
$compile_dir
$config_dir
$plugins_dir
$debugging
$debug_tpl
$debugging_ctrl
$autoload_filters
$compile_check
$force_compile
$caching
$cache_dir
$cache_lifetime
$cache_handler_func
$cache_modified_check
$config_overwrite
$config_booleanize
$config_read_hidden
$config_fix_newlines
$default_template_handler_func
$php_handling
$security
$secure_dir
$security_settings
$trusted_dir
$left_delimiter
$right_delimiter
$compiler_class
$request_vars_order
$request_use_auto_globals
$error_reporting
$compile_id
$use_sub_dirs
$default_modifiers
$default_resource_type
13. Methoden der Klasse Smarty
append (anhängen)
append_by_ref (Referenz anhängen)
assign
assign_by_ref (Referenz zuweisen)
clear_all_assign (alle Zuweisungen löschen)
clear_all_cache (Cache vollständig leeren)
clear_assign (lösche Zuweisung)
clear_cache (leere Cache)
clear_compiled_tpl (kompiliertes Template löschen)
clear_config
config_load
display (ausgeben)
fetch
get_config_vars
get_registered_object
get_template_vars (Template-Variablen extrahieren)
is_cached (gecachte Version existiert)
load_filter
register_block (Block-Funktion registrieren)
register_compiler_function (Compiler-Funktion registrieren)
register_function
register_modifier (Modifikator-Plugin registrieren)
register_object
register_outputfilter (Ausgabefilter registrieren)
register_postfilter ('post'-Filter registrieren)
register_prefilter ('pre'-Filter registrieren)
register_resource (Ressource registrieren)
trigger_error (Fehler auslösen)
template_exists (Template existiert)
unregister_block (Block-Funktion deaktivieren)
unregister_compiler_function (Compiler-Funktion deaktivieren)
unregister_function (Template-Funktion deaktivieren)
unregister_modifier (Modifikator deaktivieren)
unregister_object
unregister_outputfilter (Ausgabefilter deaktivieren)
unregister_postfilter ('post'-Filter deaktivieren)
unregister_prefilter ('pre'-Filter deaktiviern)
unregister_resource (Ressource deaktivieren)
14. Caching
Caching einrichten
Multiple Caches für eine Seite
Cache-Gruppen
Die Ausgabe von cachebaren Plugins Kontrollieren
15. Advanced Features
Objekte
Prefilter
Postfilter
Ausgabefilter
Cache Handler Funktion
Ressourcen
Templates aus dem '$template_dir'
Templates aus beliebigen Verzeichnissen
Templates aus anderen Quellen
Standard Template-Handler
16. Smarty durch Plugins erweitern
Wie Plugins funktionieren
Namenskonvention
Plugins schreiben
Template-Funktionen
Variablen-Modifikatoren
Block-Funktionen
Compiler-Funktionen
'pre'/'post'-Filter
Ausgabefilter
Ressourcen
Inserts
IV. Anhänge
17. Problemlösung
Smarty/PHP Fehler
18. Tips & Tricks
Handhabung unangewiesener Variablen
Handhabung von Standardwerten
Variablen an eingebundene Templates weitergeben
Zeitangaben
WAP/WML
Template/Script Komponenten
Verschleierung von E-mail Adressen
19. Weiterführende Informationen
20. BUGS

List of Examples

2.1. Benötigte Smarty-Library Dateien
2.2. Smarty Instanz erstellen:
2.3. Manuelles setzen der SMARTY_DIR-Konstanten
2.4. SMARTY_DIR manuell setzen
2.5. Absoluter Pfad übergeben
2.6. Library Verzeichnis dem Include-Pfad hinzufügen
2.7. Library Verzeichnis dem Include-Pfad mit ini_set() hinzufügen
2.8. Beispiel der Dateistruktur
2.9. Dateirechte einrichten
2.10. Editieren von /web/www.example.com/smarty/guestbook/templates/index.tpl
2.11. Editieren von /web/www.example.com/docs/guestbook/index.php
2.12. Editieren von /php/includes/guestbook/setup.php
2.13. Editieren von /web/www.example.com/docs/guestbook/index.php
3.1. Kommentare
3.2. Variablen
3.3. Funktions-Syntax
3.4. Funktions-Parameter Syntax
3.5. Syntax von eingebetteten Anfürungszeichen
3.6. Mathematik Beispiele
3.7. Beispiel wie die Trennzeichen angepasst werden
4.1. zugewiesene Variablen
4.2. Zugriff auf Variablen eines assoziativen Arrays
4.3. Zugriff über den Array Index
4.4. Zugriff auf Objekt-Attribute
4.5. Konfigurationsvariablen
4.6. Ausgabe der Requestvariablen (Anfragevariablen)
4.7. Verwendung von {$smarty.now}
4.8. Benutzung von {$smarty.const}
5.1. Modifikator Beispiel
5.2. capitalize (in Grossbuchstaben schreiben)
5.3. cat
5.4. count_characters (Buchstaben zählen)
5.5. count_paragraphs (Paragrafen zählen)
5.6. count_sentences (Sätze zählen)
5.7. count_words (Wörter zählen)
5.8. date_format (Datums Formatierung)
5.9. 'date_format' Konvertierungs Spezifikation
5.10. default (Standardwert)
5.11. escape (Maskieren)
5.12. indent (Einrücken)
5.13. lower (in Kleinbuchstaben schreiben)
5.14. nl2br
5.15. regex_replace (Ersetzen mit regulären Ausdrücken)
5.16. replace (Ersetzen)
5.17. spacify (Zeichenkette splitten)
5.18. string_format (Zeichenkette formatieren)
5.19. strip (Zeichenkette strippen)
5.20. strip_tags
5.21. truncate (kürzen)
5.22. upper (in Grossbuchstaben umwandeln)
5.23. wordwrap (Zeilenumbruch)
6.1. Kombinieren von Modifikatoren
7.1. Template-Inhalte abfangen
7.2. Template-Inhalte abfangen
7.3. Funktion {config_load}
7.4. Funktion {config_load} mit Abschnitten
7.5. {foreach} - item
7.6. {foreach} - item und key
7.7. {foreach} - Beispiel mit Datenbankzugriff (z.B. PEAR oder ADODB)
7.8. if Anweisung
7.9. function include (einbinden)
7.10. include-Funktion und Variablen Übergabe
7.11. Beispiele für Template-Ressourcen bei der 'include'-Funktion
7.12. Funktion include_php
7.13. Funktion 'insert'
7.14. ldelim, rdelim
7.15. literal-Tags
7.16. {php}-Tags
7.17. {php} mit Verwendung von global
7.18. section
7.19. section loop Variable
7.20. section names
7.21. nested sections (verschachtelte 'sections')
7.22. sections und assoziative Arrays
7.23. sectionelse
7.24. 'section'-Eigenschaft 'index'
7.25. section'-Eigenschaft 'index_prev'
7.26. section'-Eigenschaft 'index_next'
7.27. 'section'-Eigenschaft 'first'
7.28. 'section'-Eigenschaft 'last'
7.29. 'section'-Eigenschaft 'rownum'
7.30. 'section'-Eigenschaft 'loop'
7.31. 'section'-Eigenschaft 'show'
7.32. 'section'-Eigenschaft 'total'
7.33. strip tags
8.1. {assign} (zuweisen)
8.2. Zugriff auf mit {assign} zugwiesene Variablen von PHP aus.
8.3. {counter} (Zähler)
8.4. {cycle} (Zyklus)
8.5. eval (auswerten)
8.6. fetch
8.7. {html_checkboxes}
8.8. html_image
8.9. html_options
8.10. {html_options} - Beispiel mit Datenbank (z.B. PEAR oder ADODB):
8.11. html_radios
8.12. {html_radios} : Example 2
8.13. {html_radios}-Datenbankbeispiel (z.B. mit PEAR oder ADODB):
8.14. html_select_date
8.15. html_select_date
8.16. html_select_time
8.17. html_table
8.18. mailto
8.19. math (Mathematik)
8.20. popup
8.21. popup_init
8.22. textformat (Text Formatierung)
9.1. Beispiel der Konfigurationsdatei-Syntax
11.1. SMARTY_DIR
11.2. SMARTY_CORE_DIR
12.1. Ein lokales Plugin-Verzeichnis hinzufügen
12.2. Mehrere Verzeichnisse im $plugins_dir
12.3. Array von Konfigurationswerten
12.4. $compile_id in einer Virtual Host Umgebung
13.1. append (anhängen)
13.2. append_by_ref (via Referenz anhängen)
13.3. assign
13.4. assign_by_ref (via Referenz zuweisen)
13.5. clear_all_assign (alle Zuweisungen löschen)
13.6. clear_all_cache (Cache vollständig leeren)
13.7. clear_assign (lösche Zuweisung)
13.8. clear_cache (Cache leeren)
13.9. clear_compiled_tpl (kompiliertes Template löschen)
13.10. clear_config
13.11. config_load
13.12. display (ausgeben)
13.13. Beispiele von Template-Ressourcen für 'display()'
13.14. fetch
13.15. get_config_vars
13.16. get_registered_object
13.17. get_template_vars (Template-Variablen extrahieren)
13.18. is_cached
13.19. 'is_cached' bei mehreren Template-Caches
13.20. Filter-Plugins laden
13.21. register_block (Block-Funktion registrieren)
13.22. register_function (Funktion registrieren)
13.23. register_modifier (Modifikator-Plugin registrieren)
13.24. register_resource (Ressource registrieren)
13.25. unregister_function
13.26. unregister_modifier
13.27. unregister_resource (Ressource deaktivieren)
14.1. Caching einschalten
14.2. '$cache_lifetime' pro Cache einstellen
14.3. '$compile_check' einschalten
14.4. is_cached() verwenden
14.5. Cache leeren
14.6. 'display()' eine 'cache_id' übergeben
14.7. 'is_cached()' mit 'cache_id' aufrufen
14.8. Cache einer bestimmten 'cache_id' leeren
14.9. 'cache_id'-Gruppen
14.10. Verhindern des Caching der Ausgabe eines Plugins
14.11. Verhindern dass Template Blöcke gecached werden
15.1. registierte oder zugewiesene Objekte verwenden
15.2. Template Prefilter verwenden
15.3. Template Postfilter verwenden
15.4. Ausgabefilter verwenden
15.5. Beispiel mit einer MySQL Datenbank als Datenquelle
15.6. Templates aus '$template_dir' verwenden
15.7. Templates aus beliebigen Verzeichnissen benutzen
15.8. Templates aus Windows Dateipfaden verwenden
15.9. Eigene Quellen verwenden
15.10. Standard Template-Handler verwenden
16.1. Funktionsplugin mit Ausgabe
16.2. Funktionsplugin ohne Ausgabe
16.3. Einfaches Modifikator-Plugin
16.4. Komplexes Modifikator-Plugin
16.5. Block-Funktionen
16.6. Einfache Compiler-Funktionen
16.7. 'pre'-Filter Plugin
16.8. 'post'-Filter Plugin
16.9. Ausgabefilter Plugin
16.10. Ressourcen Plugin
16.11. Insert-Plugin
17.1. Smarty Fehler
17.2. PHP Syntaxfehler
18.1. "&nbsp;" ausgeben wenn eine Variable nicht zugewiesen ist
18.2. Zuweisen des Standardwertes einer Variable
18.3. Die Titel-Variable dem Header-Template zuweisen
18.4. Die Verwendung von date_format
18.5. Formular Datum-Elemente nach Timestamp konvertieren
18.6. Die verwendung von 'insert' um einen WML Content-Type header zu senden
18.7. Template/Script Komponenten
18.8. Beispiel von verschleierung von E-mail Adressen