mirror of
https://github.com/smarty-php/smarty.git
synced 2025-08-04 18:34:27 +02:00
all updated for 2.6.0 release, translated everything from 2_5_0 branch to 20030908
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -72,11 +72,36 @@
|
|||||||
|
|
||||||
<sect1 id="installing.smarty.basic">
|
<sect1 id="installing.smarty.basic">
|
||||||
<title>Basis Installation</title>
|
<title>Basis Installation</title>
|
||||||
|
<note>
|
||||||
|
<title>Technische Bemerkung</title>
|
||||||
<para>
|
<para>
|
||||||
Installieren Sie die Smarty Library Dateien aus dem /libs/ Verzeichnis
|
Dieser Leitfaden geht davon aus, dass Sie Ihr Webserver- und PHP-Setup kennen
|
||||||
der Distribution. Diese PHP Dateien sollten NICHT angepasst werden. Sie
|
und mit den Namenskonventionen für Dateien und Verzeichnisse Ihres Betriebssystems
|
||||||
werden zwischen den verschieden Applikationen die Smarty verwenden geteilt.
|
vertraut sind. Im Folgenden wird ein Unix-Dateisystem verwendet, stellen Sie also
|
||||||
Diese Dateien werden bei einem upgrade ersetzt.
|
sicher, dass sie die für Ihr Betriebssystem nötigen Änderungen vornehmen.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Das Beispiel geht davon aus, dass '/php/includes' in Ihrem PHP-'include_path'
|
||||||
|
liegt. Konsultieren Sie das PHP-Manual für weiterführende Informationen hierzu.
|
||||||
|
</para>
|
||||||
|
</note>
|
||||||
|
<para>
|
||||||
|
Installieren Sie als erstes die Smarty-Library Dateien. Diese Dateien
|
||||||
|
sollten von Ihnen NICHT editiert und von allen Applikationen
|
||||||
|
verwendet werden. Sie werden nur erneuert, wenn Sie eine neue Version von Smarty installieren.
|
||||||
|
</para>
|
||||||
|
<note>
|
||||||
|
<title>Technische Bemerkung</title>
|
||||||
|
<para>
|
||||||
|
Wir empfehlen keine Änderungen an den Smarty-Library Dateien vorzunehmen.
|
||||||
|
Dies macht ein mögliches Upgrade wesentlich einfacher. Sie müssen
|
||||||
|
diese Dateien auch nicht anpassen, um Smarty zu konfigurieren! Benutzen Sie f<>r
|
||||||
|
diesen Zwecke eine Instanz der Smarty-Klasse.
|
||||||
|
</para>
|
||||||
|
</note>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Folgende Library Dateien werden mit Smarty geliefert und werden benötigt:
|
||||||
</para>
|
</para>
|
||||||
<example>
|
<example>
|
||||||
<title>Smarty-Library Dateiliste</title>
|
<title>Smarty-Library Dateiliste</title>
|
||||||
@@ -85,93 +110,106 @@ Smarty.class.php
|
|||||||
Smarty_Compiler.class.php
|
Smarty_Compiler.class.php
|
||||||
Config_File.class.php
|
Config_File.class.php
|
||||||
debug.tpl
|
debug.tpl
|
||||||
/plugins/*.php (alle Dateien!)</screen>
|
/core/*.php (alle)
|
||||||
|
/plugins/*.php (alle)</screen>
|
||||||
|
</screen>
|
||||||
</example>
|
</example>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Smarty verwendet eine PHP Konstante namens <link linkend="constant.smarty.dir">SMARTY_DIR</link>
|
Sie können diese Dateien entweder in Ihrem PHP-'include_path' oder
|
||||||
die den Systempfad zu den Library Dateien enthält. Wenn Ihre Applikation keine
|
auch in irgend einem anderen Verzeichnis ablegen, solange die Konstante
|
||||||
Probleme hat die Library Dateien zu finden, müssen Sie diese Konstante nicht zuweisen,
|
<link linkend="constant.smarty.dir">SMARTY_DIR</link> auf den korrekten
|
||||||
und Smarty wird alle benötigten Dateien finden. Falls <emphasis>Smarty.class.php</emphasis>
|
Pfad zeigt. Im Folgenden werden Beispiele für beide Fälle aufgezeigt.
|
||||||
nicht in Ihrem 'include_path' ist und Sie nicht den absoluten Pfad angeben, müssen Sie
|
|
||||||
SMARTY_DIR manuell zuweisen. SMARTY_DIR <emphasis>must</emphasis> muss mit einem '/'-Zeichen (slash) enden.
|
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
So erzeugt man eine Instanz der Smarty-Klasse im PHP-Skript:
|
So erzeugt man eine Instanz der Smarty-Klasse im PHP-Skript:
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<example>
|
<example>
|
||||||
<title>Smarty Instanz aus 'include_path' erstellen:</title>
|
<title>Smarty Instanz erstellen:</title>
|
||||||
<screen>
|
<screen>
|
||||||
require('Smarty.class.php');
|
require('Smarty.class.php');
|
||||||
$smarty = new Smarty;</screen>
|
$smarty = new Smarty;</screen>
|
||||||
</example>
|
</example>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Versuchen Sie das oben gezeigte Script auszuführen. Wenn Sie einen Fehler erhalten ('<emphasis>Smarty.class.php</emphasis> file could not be found'),
|
Versuchen Sie das Skript auszuführen. Wenn Sie eine Fehlermeldung erhalten dass
|
||||||
müssen Sie wie folgt vorgehen:
|
<emphasis>Smarty.class.php</emphasis> nicht gefunden werden konnte, versuchen Sie folgendes:
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<example>
|
<example>
|
||||||
<title>Übergeben Sie den vollen Pfad</title>
|
<title>Absoluter Pfad übergeben</title>
|
||||||
<screen>
|
<screen>
|
||||||
require('/usr/local/lib/php/Smarty/Smarty.class.php');
|
require('/usr/local/lib/php/Smarty/Smarty.class.php');
|
||||||
$smarty = new Smarty;</screen>
|
$smarty = new Smarty;</screen>
|
||||||
</example>
|
</example>
|
||||||
|
|
||||||
<example>
|
<example>
|
||||||
<title>Fügen Sie den Library Pfad Ihrem PHP-'include_path' hinzu</title>
|
<title>Library Verzeichnis dem Include-Pfad hinzufügen</title>
|
||||||
<screen>
|
<screen>
|
||||||
// Editieren Sie die php.ini Datei und fügen Sie den Library Pfad Ihrem PHP-'include_path' hinzu
|
// editieren Sie php.ini, fügen Sie das Smarty
|
||||||
// Danach sollte folgendes funktionieren.
|
// Verzeichnis Ihrem include_path hinzu, und starten Sie den Webserver neu
|
||||||
require('Smarty.class.php');
|
// Danach sollte folgendes Funktionieren.
|
||||||
$smarty = new Smarty;</screen>
|
require('Smarty.class.php');
|
||||||
</example>
|
$smarty = new Smarty;</screen>
|
||||||
|
</example>
|
||||||
|
|
||||||
<example>
|
<example>
|
||||||
<title>Setzen Sie SMARTY_DIR manuell</title>
|
<title>SMARTY_DIR manuell setzen</title>
|
||||||
<screen>
|
<screen>
|
||||||
define('SMARTY_DIR','/usr/local/lib/php/Smarty/');
|
define('SMARTY_DIR','/usr/local/lib/php/Smarty/');
|
||||||
require(SMARTY_DIR.'Smarty.class.php');
|
require(SMARTY_DIR.'Smarty.class.php');
|
||||||
$smarty = new Smarty;</screen>
|
$smarty = new Smarty;</screen>
|
||||||
</example>
|
</example>
|
||||||
|
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Jetzt, wo die Library Dateien an ihrem Platz sind, wird es
|
Jetzt, wo die Library Dateien an ihrem Platz sind, wird es
|
||||||
Zeit, die Smarty Verzeichnisse zu erstellen. Smarty benötigt 4 Verzeichnisse
|
Zeit, die Smarty Verzeichnisse zu erstellen.
|
||||||
welche (normerweise) <emphasis>templates</emphasis>, <emphasis>templates_c</emphasis>, <emphasis>configs</emphasis>
|
|
||||||
und <emphasis>cache</emphasis> heissen. Jedes kann jedoch über die
|
|
||||||
Smarty Attribute <emphasis>$template_dir</emphasis>, <emphasis>$compile_dir</emphasis>, <emphasis>$config_dir</emphasis>,
|
|
||||||
und <emphasis>$cache_dir</emphasis> definiert werden. Es wird empfohlen für jede Applikation die Smarty verwenden
|
|
||||||
soll eigene Verzeichnisse einzurichten.
|
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
Stellen Sie sicher dass Sie die DocumentRoot Ihres Webservers kennen.
|
Für unser Beispiel werden wir die Smarty Umgebung für eine
|
||||||
In unserem Beispiel verwenden wir "/web/www.mydomain.com/docs/". Alle
|
Gästebuch-Applikation konfigurieren. Wir verwenden den Applikationsnamen
|
||||||
Smarty-Verzeichnisse werden immer nur von Smarty aufgerufen, nie vom Browser
|
nur, um die Verzeichnis-Struktur zu verdeutlichen. Sie können die selbe
|
||||||
direkt. Deshalb wird empfohlen diese Verzeichnisse <emphasis>ausserhalb</emphasis>
|
Umgebung für alle Ihre Applikationen verwenden indem Sie 'guestbook'
|
||||||
der DocumentRoot einzurichten.
|
durch dem Namen Ihrer Applikation ersetzen.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Für unser installations-Beispiel werden wir die Umgebung für eine
|
Stellen Sie sicher, dass Sie die DocumentRoot Ihres Webservers kennen.
|
||||||
Gästebuchapplikation einrichten. Wir verwenden dies nur als Beispiel,
|
In unserem Beispiel lautet sie '/web/www.domain.com/docs/'.
|
||||||
falls Sie ihre eigene Applikationsumgebung einrichten, ersetzen sie '/guestbook/'
|
|
||||||
einfach durch den Namen Ihrer eigener Applikation. Unsere Dateien werden unter
|
|
||||||
"/web/www.mydomain.com/smarty/guestbook/" abgelegt.
|
|
||||||
|
|
||||||
</para>
|
</para>
|
||||||
|
<para>
|
||||||
|
Die Smarty Verzeichnisse werden in den Klassen-Variablen $template_dir,
|
||||||
|
$compile_dir, $config_dir und $cache_dir definiert. Die Standardwerte sind:
|
||||||
|
"templates", "templates_c", "configs" und "cache". Für unser Beispiel
|
||||||
|
legen wir alle diese Verzeichnisse unter '/web/www.domain.com/smarty/guestbook/' an.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<note>
|
||||||
|
<title>Technische Bemerkung</title>
|
||||||
|
<para>
|
||||||
|
Wir empfehlen, diese Verzeichnisse ausserhalb der DocumentRoot anzulegen,
|
||||||
|
um mögliche Direktzugriffe zu verhindern.
|
||||||
|
</para>
|
||||||
|
</note>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
In Ihrer DocumentRoot muss mindestens eine Datei liegen, die für Browser
|
In Ihrer DocumentRoot muss mindestens eine Datei liegen, die für Browser
|
||||||
zugänglich ist. Wir nennen dieses Skript 'index.php', und legen
|
zugänglich ist. Wir nennen dieses Skript 'index.php', und legen
|
||||||
es in das Verzeichnis '/guestbook/' in unserer DocumentRoot.
|
es in das Verzeichnis '/guestbook/' in unserer DocumentRoot.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<note>
|
||||||
|
<title>Technische Bemerkung</title>
|
||||||
|
<para>
|
||||||
Bequem ist es, den Webserver so zu konfigurieren, dass 'index.php' als
|
Bequem ist es, den Webserver so zu konfigurieren, dass 'index.php' als
|
||||||
Standard-Verzeichnis-Index verwendet wird. Somit kann man das Skript
|
Standard-Verzeichnis-Index verwendet wird. Somit kann man das Skript
|
||||||
direkt mit 'http://www.domain.com/guestbook/' aufrufen. Falls Sie Apache
|
direkt mit 'http://www.domain.com/guestbook/' aufrufen. Falls Sie Apache
|
||||||
verwenden, lässt sich dies konfigurieren indem Sie 'index.php'
|
verwenden, lässt sich dies konfigurieren indem Sie 'index.php'
|
||||||
als letzten Eintrag für DirectoryIndex verwenden. (Jeder Eintrag muss
|
als letzten Eintrag für DirectoryIndex verwenden. (Jeder Eintrag muss
|
||||||
mit einem Leerzeichen abgetrennt werden).
|
mit einem Leerzeichen abgetrennt werden).
|
||||||
</para>
|
</para>
|
||||||
|
</note>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Die Dateistruktur bis jetzt:
|
Die Dateistruktur bis jetzt:
|
||||||
@@ -185,6 +223,7 @@ $smarty = new Smarty;</screen>
|
|||||||
/usr/local/lib/php/Smarty/Config_File.class.php
|
/usr/local/lib/php/Smarty/Config_File.class.php
|
||||||
/usr/local/lib/php/Smarty/debug.tpl
|
/usr/local/lib/php/Smarty/debug.tpl
|
||||||
/usr/local/lib/php/Smarty/plugins/*.php
|
/usr/local/lib/php/Smarty/plugins/*.php
|
||||||
|
/usr/local/lib/php/Smarty/core/*.php
|
||||||
|
|
||||||
/web/www.mydomain.com/smarty/guestbook/templates/
|
/web/www.mydomain.com/smarty/guestbook/templates/
|
||||||
/web/www.mydomain.com/smarty/guestbook/templates_c/
|
/web/www.mydomain.com/smarty/guestbook/templates_c/
|
||||||
@@ -194,11 +233,21 @@ $smarty = new Smarty;</screen>
|
|||||||
/web/www.mydomain.com/docs/guestbook/index.php</screen>
|
/web/www.mydomain.com/docs/guestbook/index.php</screen>
|
||||||
</example>
|
</example>
|
||||||
|
|
||||||
|
<note>
|
||||||
|
<title>Technische Bemerkung</title>
|
||||||
|
<para>
|
||||||
|
Falls Sie kein Caching und keine Konfigurationsdateien verwenden, ist es nicht
|
||||||
|
erforderlich die Verzeichnisse '$config_dir' und '$cache_dir' zu erstellen.
|
||||||
|
Es wird jedoch trotzdem empfohlen, da diese Funktionalitäten eventuell später
|
||||||
|
genutzt werden sollen.
|
||||||
|
</para>
|
||||||
|
</note>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Smarty benötigt Schreibzugriff auf die Verzeichnisse '$compile_dir' und '$cache_dir'.
|
Smarty benötigt Schreibzugriff auf die Verzeichnisse '$compile_dir' und '$cache_dir'.
|
||||||
Stellen Sie also sicher, dass der Webserver-Benutzer (normalerweise Benutzer 'nobody' und Gruppe 'nogroup')
|
Stellen Sie also sicher, dass der Webserver-Benutzer (normalerweise Benutzer 'nobody' und Gruppe 'nogroup')
|
||||||
in diese Verzeichnisse schreiben kann. (In OS X lautet der Benutzer normalerweise 'web' und
|
in diese Verzeichnisse schreiben kann. (In OS X lautet der Benutzer normalerweise 'www' und
|
||||||
ist in der Gruppe 'web'). Wenn Sie Apache verwenden, können Sie in der httpd.conf (gew<65>hnlich in '/usr/local/apache/conf/')
|
ist in der Gruppe 'www'). Wenn Sie Apache verwenden, können Sie in der httpd.conf (gew<65>hnlich in '/usr/local/apache/conf/')
|
||||||
nachsehen, unter welchem Benutzer Ihr Server läuft.
|
nachsehen, unter welchem Benutzer Ihr Server läuft.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
@@ -206,11 +255,11 @@ $smarty = new Smarty;</screen>
|
|||||||
<title>Dateirechte einrichten</title>
|
<title>Dateirechte einrichten</title>
|
||||||
<screen>
|
<screen>
|
||||||
|
|
||||||
chown nobody:nobody /web/www.mydomain.com/smarty/templates_c/
|
chown nobody:nobody /web/www.mydomain.com/smarty/guestbook/templates_c/
|
||||||
chmod 770 /web/www.mydomain.com/smarty/templates_c/
|
chmod 770 /web/www.mydomain.com/smarty/guestbook/templates_c/
|
||||||
|
|
||||||
chown nobody:nobody /web/www.mydomain.com/smarty/cache/
|
chown nobody:nobody /web/www.mydomain.com/smarty/guestbook/cache/
|
||||||
chmod 770 /web/www.mydomain.com/smarty/cache/</screen>
|
chmod 770 /web/www.mydomain.com/smarty/guestbook/cache/</screen>
|
||||||
</example>
|
</example>
|
||||||
|
|
||||||
<note>
|
<note>
|
||||||
@@ -229,7 +278,7 @@ chmod 770 /web/www.mydomain.com/smarty/cache/</screen>
|
|||||||
</para>
|
</para>
|
||||||
|
|
||||||
<example>
|
<example>
|
||||||
<title>Editieren von /web/www.mydomain.com/smarty/templates/index.tpl</title>
|
<title>Editieren von /web/www.mydomain.com/smarty/guestbook/templates/index.tpl</title>
|
||||||
<screen>
|
<screen>
|
||||||
|
|
||||||
{* Smarty *}
|
{* Smarty *}
|
||||||
@@ -252,17 +301,14 @@ Hallo, {$name}!</screen>
|
|||||||
<para>
|
<para>
|
||||||
Als nächstes editieren wir die Datei 'index.php'. Wir erzeugen eine
|
Als nächstes editieren wir die Datei 'index.php'. Wir erzeugen eine
|
||||||
Smarty-Instanz, weisen dem Template eine Variable zu und geben 'index.tpl' aus.
|
Smarty-Instanz, weisen dem Template eine Variable zu und geben 'index.tpl' aus.
|
||||||
In unserem Beispiel ist '/usr/local/lib/php/Smarty' in unserem PHP-'include_path',
|
|
||||||
stellen Sie sicher dass dies bei Ihrer Installation auch der Fall ist, oder
|
|
||||||
verwenden Sie ansonsten aboslute Pfade.
|
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<example>
|
<example>
|
||||||
<title>Editieren von /web/www.mydomain.com/docs/guestbook/index.php</title>
|
<title>Editieren von /web/www.mydomain.com/docs/guestbook/index.php</title>
|
||||||
<screen>
|
<screen>
|
||||||
|
|
||||||
// Smarty laden
|
define('SMARTY_DIR','/usr/local/lib/php/Smarty/');
|
||||||
require('Smarty.class.php');
|
require(SMARTY_DIR.'Smarty.class.php');
|
||||||
|
|
||||||
$smarty = new Smarty;
|
$smarty = new Smarty;
|
||||||
|
|
||||||
@@ -306,8 +352,7 @@ $smarty->display('index.tpl');</screen>
|
|||||||
eine eigene Smarty-Umgebung zu initialisieren. Anstatt immer wieder
|
eine eigene Smarty-Umgebung zu initialisieren. Anstatt immer wieder
|
||||||
die Verzeichnisse zu definieren, kann diese Aufgabe auch in einer einzigen
|
die Verzeichnisse zu definieren, kann diese Aufgabe auch in einer einzigen
|
||||||
Datei erledigt werden. Beginnen wir, indem wir ein neues Verzeichnis namens '/php/includes/guestbook/'
|
Datei erledigt werden. Beginnen wir, indem wir ein neues Verzeichnis namens '/php/includes/guestbook/'
|
||||||
erstellen und eine Datei namens 'setup.php' darin anlegen. In unserem Beispiel ist '/php/includes'
|
erstellen und eine Datei namens 'setup.php' darin anlegen.
|
||||||
im PHP-'include_path'. Stellen Sie sicher dass das auch bei Ihnen der Fall ist, oder benutzen Sie absolute Pfadnamen.
|
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<example>
|
<example>
|
||||||
@@ -315,9 +360,10 @@ $smarty->display('index.tpl');</screen>
|
|||||||
<screen>
|
<screen>
|
||||||
|
|
||||||
// Smarty Library Dateien laden
|
// Smarty Library Dateien laden
|
||||||
|
define('SMARTY_DIR','/usr/local/lib/php/Smarty/');
|
||||||
require(SMARTY_DIR.'Smarty.class.php');
|
require(SMARTY_DIR.'Smarty.class.php');
|
||||||
|
|
||||||
// steup.php ist auch ein guter Platz um Applikations spezifische Libraries zu laden
|
// ein guter Platz um Applikations spezifische Libraries zu laden
|
||||||
// require('guestbook/guestbook.lib.php');
|
// require('guestbook/guestbook.lib.php');
|
||||||
|
|
||||||
class Smarty_GuestBook extends Smarty {
|
class Smarty_GuestBook extends Smarty {
|
||||||
@@ -341,6 +387,18 @@ class Smarty_GuestBook extends Smarty {
|
|||||||
}</screen>
|
}</screen>
|
||||||
</example>
|
</example>
|
||||||
|
|
||||||
|
<note>
|
||||||
|
<title>Technische Bemerkung</title>
|
||||||
|
<para>
|
||||||
|
In unserem Beispiel werden die Library Dateien ausserhalb der DocumentRoot
|
||||||
|
abgelegt. Diese Dateien könnten sensitive Informationen enthalten,
|
||||||
|
die wir nicht zugänglich machen möchten.
|
||||||
|
Deshalb legen wir alle Library Dateien in '/php/includes/guestbook/' ab
|
||||||
|
und laden sie in unserem 'setup.php' Skript, wie Sie im oben gezeigten
|
||||||
|
Beispiel sehen können.
|
||||||
|
</para>
|
||||||
|
</note>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Nun passen wir 'index.php' an, um 'setup.php' zu verwenden:
|
Nun passen wir 'index.php' an, um 'setup.php' zu verwenden:
|
||||||
</para>
|
</para>
|
||||||
|
@@ -30,7 +30,7 @@
|
|||||||
</author>
|
</author>
|
||||||
</authorgroup>
|
</authorgroup>
|
||||||
|
|
||||||
<edition>Version 2.5</edition>
|
<edition>Version 2.0</edition>
|
||||||
<copyright>
|
<copyright>
|
||||||
<year>2001</year>
|
<year>2001</year>
|
||||||
<year>2002</year>
|
<year>2002</year>
|
||||||
|
@@ -390,6 +390,20 @@
|
|||||||
Normalerweise '}'.
|
Normalerweise '}'.
|
||||||
</para>
|
</para>
|
||||||
</sect1>
|
</sect1>
|
||||||
|
<sect1 id="variable.show.info.header">
|
||||||
|
<title>$show_info_header</title>
|
||||||
|
<para>
|
||||||
|
Gibt am Anfang der HTML-Seite die Smarty Version und das Kompilier-Datum des Templates
|
||||||
|
als Kommentar aus. Normalerweise 'false'.
|
||||||
|
</para>
|
||||||
|
</sect1>
|
||||||
|
<sect1 id="variable.show.info.include">
|
||||||
|
<title>$show_info_include</title>
|
||||||
|
<para>
|
||||||
|
Gibt am Anfang und am Ende jedes eingebundenen Templates einen HTML-Kommentar aus.
|
||||||
|
Normalerweise 'false'.
|
||||||
|
</para>
|
||||||
|
</sect1>
|
||||||
<sect1 id="variable.compiler.class">
|
<sect1 id="variable.compiler.class">
|
||||||
<title>$compiler_class</title>
|
<title>$compiler_class</title>
|
||||||
<para>
|
<para>
|
||||||
@@ -405,6 +419,16 @@
|
|||||||
Verhält sich wie 'variables_order' in der php.ini.
|
Verhält sich wie 'variables_order' in der php.ini.
|
||||||
</para>
|
</para>
|
||||||
</sect1>
|
</sect1>
|
||||||
|
<sect1 id="variable.request.use.auto.globals">
|
||||||
|
<title>$request_use_auto_globals</title>
|
||||||
|
<para>
|
||||||
|
Definiert ob Smarty php's $HTTP_*_VARS[] ($request_use_auto_globals=false welches
|
||||||
|
der Standardwert ist) oder $_*[] ($request_use_auto_globals=true) verwenden soll.
|
||||||
|
Dies betrifft Templates die {$smarty.request.*}, {$smarty.get.*}, etc... verwenden.
|
||||||
|
Achtung: wenn $request_use_auto_globals auf TRUE gesetzt ist, hat <link linkend="variable.request.vars.order">variable.request.vars.order </link>
|
||||||
|
keine Auswirkungen, da php's Konfigurationswert <literal>gpc_order</literal> verwendet wird.
|
||||||
|
</para>
|
||||||
|
</sect1>
|
||||||
<sect1 id="variable.compile.id">
|
<sect1 id="variable.compile.id">
|
||||||
<title>$compile_id</title>
|
<title>$compile_id</title>
|
||||||
<para>
|
<para>
|
||||||
@@ -428,10 +452,20 @@
|
|||||||
Definiert ein Array von Variablen-Modifikatoren, die auf jeder Variable anzuwenden sind.
|
Definiert ein Array von Variablen-Modifikatoren, die auf jeder Variable anzuwenden sind.
|
||||||
Wenn Sie zum Beispiel alle Variablen standardmässig HTML-Maskieren wollen,
|
Wenn Sie zum Beispiel alle Variablen standardmässig HTML-Maskieren wollen,
|
||||||
können Sie array('escape:"htmlall"'); verwenden. Um eine Variable von dieser
|
können Sie array('escape:"htmlall"'); verwenden. Um eine Variable von dieser
|
||||||
Behandlung auszuschliessen, können Sie ihr den Modifikator 'nodefaults' übergeben.
|
Behandlung auszuschliessen, können Sie ihr den Parameter 'smarty' mit dem Modifikator 'nodefaults'
|
||||||
|
übergeben. Als Beispiel: {$var|smarty:nodefaults}.
|
||||||
Zum Beispiel: {$var|nodefaults}.
|
Zum Beispiel: {$var|nodefaults}.
|
||||||
</para>
|
</para>
|
||||||
</sect1>
|
</sect1>
|
||||||
|
<sect1 id="variable.default.resource.type">
|
||||||
|
<title>$default_resource_type</title>
|
||||||
|
<para>
|
||||||
|
Definiert den Ressourcentyp der von Smarty implizitverwendet werden soll. Standartwert
|
||||||
|
ist 'file', was dazu führt dass $smarty->display('index.tpl'); und
|
||||||
|
$smarty->display('file:index.tpl'); identisch sind. Konsultieren Sie das
|
||||||
|
<link linkend="template.resources">Resource</link> Kapitel für weitere Informationen.
|
||||||
|
</para>
|
||||||
|
</sect1>
|
||||||
</chapter>
|
</chapter>
|
||||||
<chapter id="api.functions">
|
<chapter id="api.functions">
|
||||||
<title>Methoden</title>
|
<title>Methoden</title>
|
||||||
@@ -447,27 +481,12 @@
|
|||||||
<paramdef>string <parameter>varname</parameter></paramdef>
|
<paramdef>string <parameter>varname</parameter></paramdef>
|
||||||
<paramdef>mixed <parameter>var</parameter></paramdef>
|
<paramdef>mixed <parameter>var</parameter></paramdef>
|
||||||
</funcprototype>
|
</funcprototype>
|
||||||
<funcprototype>
|
|
||||||
<funcdef>void <function>append</function></funcdef>
|
|
||||||
<paramdef>string <parameter>varname</parameter></paramdef>
|
|
||||||
<paramdef>mixed <parameter>var</parameter></paramdef>
|
|
||||||
<paramdef>boolean <parameter>merge</parameter></paramdef>
|
|
||||||
</funcprototype>
|
|
||||||
</funcsynopsis>
|
</funcsynopsis>
|
||||||
<para>
|
<para>
|
||||||
Wird verwendet, um an Template-Variablen weitere Daten anzuhängen. Sie
|
Wird verwendet, um an Template-Variablen weitere Daten anzuhängen. Sie
|
||||||
können entweder ein Namen/Wert-Paar oder assoziative Arrays,
|
können entweder ein Namen/Wert-Paar oder assoziative Arrays,
|
||||||
die mehrere Namen/Wert-Paare enthalten, übergeben. Wenn Sie als dritten Parameter
|
die mehrere Namen/Wert-Paare enthalten, übergeben.
|
||||||
'true' übergeben werden die beiden Arrays zusammengefügt.
|
|
||||||
</para>
|
</para>
|
||||||
<note>
|
|
||||||
<title>Technical Note</title>
|
|
||||||
<para>
|
|
||||||
Der Parameter 'merge' überschreibt bestehende Schlüssel, falls
|
|
||||||
im zweiten Array die selben Schlüssel wie im ersten vorkommen.
|
|
||||||
Diese Funktion ist ungelich 'array_merge()' aus PHP.
|
|
||||||
</para>
|
|
||||||
</note>
|
|
||||||
<example>
|
<example>
|
||||||
<title>append (anhängen)</title>
|
<title>append (anhängen)</title>
|
||||||
<programlisting>
|
<programlisting>
|
||||||
@@ -488,27 +507,20 @@
|
|||||||
<paramdef>string <parameter>varname</parameter></paramdef>
|
<paramdef>string <parameter>varname</parameter></paramdef>
|
||||||
<paramdef>mixed <parameter>var</parameter></paramdef>
|
<paramdef>mixed <parameter>var</parameter></paramdef>
|
||||||
</funcprototype>
|
</funcprototype>
|
||||||
<funcprototype>
|
|
||||||
<funcdef>void <function>append_by_ref</function></funcdef>
|
|
||||||
<paramdef>string <parameter>varname</parameter></paramdef>
|
|
||||||
<paramdef>mixed <parameter>var</parameter></paramdef>
|
|
||||||
<paramdef>boolean <parameter>merge</parameter></paramdef>
|
|
||||||
</funcprototype>
|
|
||||||
</funcsynopsis>
|
</funcsynopsis>
|
||||||
<para>
|
<para>
|
||||||
Wird verwendet, um an Template-Variablen Werte via Referenz (pass by reference) anstatt via Kopie
|
Wird verwendet, um an Template-Variablen Werte via Referenz (pass by reference) anstatt via Kopie
|
||||||
anzuhängen. Wenn Sie eine Variable via Referenz anhängen und sie nachträglich
|
anzuhängen. Konsultieren Sie das PHP-Manual zum Thema 'variable referencing'
|
||||||
geändert wird, wird auch der angehängte Wert geändert. Bei Objekten kann so
|
für weitere Erklärungen.
|
||||||
das kopieren derselben vermieden werden. Konsultieren Sie das PHP-Manual betreffend Variablenreferenzierung
|
|
||||||
für weitere Erklärungen. Wenn Sie als dritten Parameter 'true' übergeben wird das anzuhängende Array
|
|
||||||
mit dem bestehenden zusammengef¨gt.
|
|
||||||
</para>
|
</para>
|
||||||
<note>
|
<note>
|
||||||
<title>Technische Bemerkung</title>
|
<title>Technische Bemerkung</title>
|
||||||
<para>
|
<para>
|
||||||
Der Parameter 'merge' überschreibt bestehende Schlüssel, falls
|
'append_by_ref()' ist effizienter als 'append()', da keine Kopie der Variable
|
||||||
im zweiten Array die selben Schlüssel wie im ersten vorkommen.
|
erzeugt, sondern auf die Variable im Speicher referenziert wird. Beachten Sie
|
||||||
Diese Funktion ist ungelich 'array_merge()' aus PHP.
|
dabei, dass eine nachträgliche änderung Original-Variable auch die zugewiesene Variable
|
||||||
|
ändert. PHP5 wird die Referenzierung automatisch übernehmen, diese
|
||||||
|
Funktion dient als Workaround.
|
||||||
</para>
|
</para>
|
||||||
</note>
|
</note>
|
||||||
<example>
|
<example>
|
||||||
@@ -567,11 +579,11 @@
|
|||||||
<note>
|
<note>
|
||||||
<title>Technical Note</title>
|
<title>Technical Note</title>
|
||||||
<para>
|
<para>
|
||||||
Wird verwendet, um an Template-Variablen Werte via Referenz (pass by reference) anstatt via Kopie
|
'assign_by_ref()' ist effizienter als 'assign()', da keine Kopie der Variable
|
||||||
anzuhängen. Wenn Sie eine Variable via Referenz anhängen und sie nachträglich
|
erzeugt wird, sondern auf die Variable im Speicher referenziert wird. Beachten Sie
|
||||||
geändert wird, wird auch der angehängte Wert geändert. Bei Objekten kann so
|
dabei, dass eine nachträgliche änderung Original-Variable auch die zugewiesene Variable
|
||||||
das kopieren derselben vermieden werden. Konsultieren Sie das PHP-Manual betreffend Variablenreferenzierung
|
ändert. PHP5 wird die Referenzierung automatisch übernehmen, diese
|
||||||
für weitere Erklärungen.
|
Funktion dient als Workaround.
|
||||||
</para>
|
</para>
|
||||||
</note>
|
</note>
|
||||||
<example>
|
<example>
|
||||||
@@ -853,80 +865,27 @@
|
|||||||
echo $output;</programlisting>
|
echo $output;</programlisting>
|
||||||
</example>
|
</example>
|
||||||
</sect1>
|
</sect1>
|
||||||
<sect1 id="api.get.config.vars">
|
|
||||||
<title>get_config_vars</title>
|
|
||||||
<funcsynopsis>
|
|
||||||
<funcprototype>
|
|
||||||
<funcdef>array <function>get_config_vars</function></funcdef>
|
|
||||||
<paramdef>string <parameter><optional>varname</optional></parameter></paramdef>
|
|
||||||
</funcprototype>
|
|
||||||
</funcsynopsis>
|
|
||||||
<para>
|
|
||||||
Gibt die definierte Variable aus einer Konfigurationsdatei zurück,
|
|
||||||
wenn kein Parameter übergeben wird, wird ein Array aller Variablen
|
|
||||||
zurückgegeben.
|
|
||||||
</para>
|
|
||||||
<example>
|
|
||||||
<title>get_config_vars</title>
|
|
||||||
<programlisting>
|
|
||||||
// Vriable 'foo' aus Konfigurationsdatei lesen
|
|
||||||
$foo = $smarty->get_config_vars('foo');
|
|
||||||
|
|
||||||
// alle Variablen aus der Konfigurationsdatei lesen
|
|
||||||
$config_vars = $smarty->get_config_vars();
|
|
||||||
|
|
||||||
// ausgeben
|
|
||||||
print_r($config_vars);</programlisting>
|
|
||||||
</example>
|
|
||||||
</sect1>
|
|
||||||
<sect1 id="api.get.registered.object">
|
|
||||||
<title>get_registered_object</title>
|
|
||||||
<funcsynopsis>
|
|
||||||
<funcprototype>
|
|
||||||
<funcdef>array <function>get_registered_object</function></funcdef>
|
|
||||||
<paramdef>string <parameter>object_name</parameter></paramdef>
|
|
||||||
</funcprototype>
|
|
||||||
</funcsynopsis>
|
|
||||||
<para>
|
|
||||||
This returns a reference to a registered object. This is useful
|
|
||||||
from within a custom function when you need direct access to a
|
|
||||||
registered object.
|
|
||||||
</para>
|
|
||||||
<example>
|
|
||||||
<title>get_registered_object</title>
|
|
||||||
<programlisting>
|
|
||||||
function smarty_block_foo($params, &$smarty) {
|
|
||||||
if (isset[$params['object']]) {
|
|
||||||
// get reference to registered object
|
|
||||||
$obj_ref =& $smarty->&get_registered_object($params['object']);
|
|
||||||
// use $obj_ref is now a reference to the object
|
|
||||||
}
|
|
||||||
}</programlisting>
|
|
||||||
</example>
|
|
||||||
</sect1>
|
|
||||||
<sect1 id="api.get.template.vars">
|
<sect1 id="api.get.template.vars">
|
||||||
<title>get_template_vars (Template-Variablen extrahieren)</title>
|
<title>get_template_vars (Template-Variablen extrahieren)</title>
|
||||||
<funcsynopsis>
|
<funcsynopsis>
|
||||||
<funcprototype>
|
<funcprototype>
|
||||||
<funcdef>array <function>get_template_vars</function></funcdef>
|
<funcdef>array <function>get_template_vars</function></funcdef>
|
||||||
<paramdef>string <parameter><optional>varname</optional></parameter></paramdef>
|
<paramdef><parameter></parameter></paramdef>
|
||||||
</funcprototype>
|
</funcprototype>
|
||||||
</funcsynopsis>
|
</funcsynopsis>
|
||||||
<para>
|
<para>
|
||||||
Gibt den Wert der übergebenen Template-Variable zurück. Wenn kein Parameter
|
Gibt ein Array der zugewiesenen Template-Variablen zurück.
|
||||||
übergeben wird, besteht die Rückgabe aus einem Array aller zugewiesener Variablen.
|
|
||||||
</para>
|
</para>
|
||||||
<example>
|
<example>
|
||||||
<title>get_template_vars (Template-Variablen extrahieren)</title>
|
<title>get_template_vars (Template-Variablen extrahieren)</title>
|
||||||
<programlisting>
|
<programlisting>
|
||||||
// Template-Variable 'foo' extrahieren
|
|
||||||
$foo = $smarty->get_template_vars('foo');
|
|
||||||
|
|
||||||
// alle zugewiesenen Template-Variablen extrahieren
|
|
||||||
$tpl_vars = $smarty->get_template_vars();
|
|
||||||
|
|
||||||
// Anschauen
|
// alle zugewiesenen Template-Variablen extrahieren
|
||||||
print_r($tpl_vars);</programlisting>
|
$tpl_vars = $smarty->get_template_vars();
|
||||||
|
|
||||||
|
|
||||||
|
// Anschauen
|
||||||
|
var_dump($tpl_vars);</programlisting>
|
||||||
</example>
|
</example>
|
||||||
</sect1>
|
</sect1>
|
||||||
<sect1 id="api.is.cached">
|
<sect1 id="api.is.cached">
|
||||||
@@ -1000,13 +959,24 @@
|
|||||||
<funcprototype>
|
<funcprototype>
|
||||||
<funcdef>void <function>register_block</function></funcdef>
|
<funcdef>void <function>register_block</function></funcdef>
|
||||||
<paramdef>string <parameter>name</parameter></paramdef>
|
<paramdef>string <parameter>name</parameter></paramdef>
|
||||||
<paramdef>string <parameter>impl</parameter></paramdef>
|
<paramdef>mixed <parameter>impl</parameter></paramdef>
|
||||||
|
<paramdef>bool <parameter>cacheable</parameter></paramdef>
|
||||||
|
<paramdef>array or null <parameter>cache_attrs</parameter></paramdef>
|
||||||
</funcprototype>
|
</funcprototype>
|
||||||
</funcsynopsis>
|
</funcsynopsis>
|
||||||
<para>
|
<para>
|
||||||
Wird verwendet, um Block-Funktion-Plugins dynamisch zu registrieren.
|
Wird verwendet, um Block-Funktion-Plugins dynamisch zu registrieren.
|
||||||
Übergeben Sie dazu den Namen der Block-Funktion und den Namen der
|
Übergeben Sie dazu den Namen der Block-Funktion und den Namen der
|
||||||
PHP-Funktion, die die entsprechende Funktionalität bereitstellt.
|
PHP-Callback-Funktion, die die entsprechende Funktionalität bereitstellt.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Der Parameter <parameter>impl</parameter> kann als (a) einen Funktionnamen oder (b) einem Array der Form <literal>array(&$object, $method)</literal>,
|
||||||
|
wobei <literal>&$object</literal> eine Referenz zu einem Objekt und <literal>$method</literal> der Name der Methode die aufgerufen werden soll ist,
|
||||||
|
oder als Array der Form <literal>array(&$class, $method)</literal>, wobei <literal>$class</literal> der Name der Klasse und <literal>$method</literal>
|
||||||
|
der Name der Methode ist die aufgerufen werden soll, übergeben werden.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
<parameter>$cacheable</parameter> und <parameter>$cache_attrs</parameter> können in den meisten Fällen weggelassen werden. Konsultieren Sie <link linkend="caching.cacheable">Die Ausgabe von cachebaren Plugins Kontrollieren</link> für weitere Informationen.
|
||||||
</para>
|
</para>
|
||||||
<example>
|
<example>
|
||||||
<title>register_block (Block-Funktion registrieren)</title>
|
<title>register_block (Block-Funktion registrieren)</title>
|
||||||
@@ -1014,12 +984,12 @@
|
|||||||
/* PHP */
|
/* PHP */
|
||||||
$smarty->register_block("translate", "do_translation");
|
$smarty->register_block("translate", "do_translation");
|
||||||
|
|
||||||
function do_translation ($params, $content, &$smarty) {
|
function do_translation ($params, $content, &$smarty, &$repeat) {
|
||||||
if ($content) {
|
if (isset($content)) {
|
||||||
$lang = $params['lang'];
|
$lang = $params['lang'];
|
||||||
|
|
||||||
// übersetze den Inhalt von '$content'
|
// übersetze den Inhalt von '$content'
|
||||||
echo $translation;
|
return $translation;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1035,7 +1005,8 @@
|
|||||||
<funcprototype>
|
<funcprototype>
|
||||||
<funcdef>void <function>register_compiler_function</function></funcdef>
|
<funcdef>void <function>register_compiler_function</function></funcdef>
|
||||||
<paramdef>string <parameter>name</parameter></paramdef>
|
<paramdef>string <parameter>name</parameter></paramdef>
|
||||||
<paramdef>string <parameter>impl</parameter></paramdef>
|
<paramdef>mixed <parameter>impl</parameter></paramdef>
|
||||||
|
<paramdef>bool <parameter>cacheable</parameter></paramdef>
|
||||||
</funcprototype>
|
</funcprototype>
|
||||||
</funcsynopsis>
|
</funcsynopsis>
|
||||||
<para>
|
<para>
|
||||||
@@ -1043,6 +1014,15 @@
|
|||||||
registrieren. Übergeben Sie dazu den Namen der Compiler-Funktion und den Namen der
|
registrieren. Übergeben Sie dazu den Namen der Compiler-Funktion und den Namen der
|
||||||
PHP-Funktion, die die entsprechende Funktionalität bereitstellt.
|
PHP-Funktion, die die entsprechende Funktionalität bereitstellt.
|
||||||
</para>
|
</para>
|
||||||
|
<para>
|
||||||
|
Der Parameter <parameter>impl</parameter> kann als (a) einen Funktionnamen oder (b) einem Array der Form <literal>array(&$object, $method)</literal>,
|
||||||
|
wobei <literal>&$object</literal> eine Referenz zu einem Objekt und <literal>$method</literal> der Name der Methode die aufgerufen werden soll ist,
|
||||||
|
oder als Array der Form <literal>array(&$class, $method)</literal>, wobei <literal>$class</literal> der Name der Klasse und <literal>$method</literal>
|
||||||
|
der Name der Methode ist die aufgerufen werden soll, übergeben werden.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
<parameter>$cacheable</parameter> und <parameter>$cache_attrs</parameter> können in den meisten Fällen weggelassen werden. Konsultieren Sie <link linkend="caching.cacheable">Die Ausgabe von cachebaren Plugins Kontrollieren</link> für weitere Informationen.
|
||||||
|
</para>
|
||||||
</sect1>
|
</sect1>
|
||||||
<sect1 id="api.register.function">
|
<sect1 id="api.register.function">
|
||||||
<title>register_function (Funktion registrieren)</title>
|
<title>register_function (Funktion registrieren)</title>
|
||||||
@@ -1050,14 +1030,24 @@
|
|||||||
<funcprototype>
|
<funcprototype>
|
||||||
<funcdef>void <function>register_function</function></funcdef>
|
<funcdef>void <function>register_function</function></funcdef>
|
||||||
<paramdef>string <parameter>name</parameter></paramdef>
|
<paramdef>string <parameter>name</parameter></paramdef>
|
||||||
<paramdef>string <parameter>impl</parameter></paramdef>
|
<paramdef>mixed <parameter>impl</parameter></paramdef>
|
||||||
|
<paramdef>bool <parameter>cacheable</parameter></paramdef>
|
||||||
|
<paramdef>array or null <parameter>cache_attrs</parameter></paramdef>
|
||||||
</funcprototype>
|
</funcprototype>
|
||||||
</funcsynopsis>
|
</funcsynopsis>
|
||||||
<para>
|
<para>
|
||||||
Wird verwendet, um Template-Funktion-Plugins dynamisch zu
|
Wird verwendet, um Template-Funktion-Plugins dynamisch zu
|
||||||
registrieren. Übergeben Sie dazu den Namen der Template-Funktion
|
registrieren. Übergeben Sie dazu den Namen der Template-Funktion
|
||||||
und den Namen der PHP-Funktion, die die entsprechende Funktionalität bereitstellt.
|
und den Namen der PHP-Funktion, die die entsprechende Funktionalität bereitstellt.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Der Parameter <parameter>impl</parameter> kann als (a) einen Funktionnamen oder (b) einem Array der Form <literal>array(&$object, $method)</literal>,
|
||||||
|
wobei <literal>&$object</literal> eine Referenz zu einem Objekt und <literal>$method</literal> der Name der Methode die aufgerufen werden soll ist,
|
||||||
|
oder als Array der Form <literal>array(&$class, $method)</literal>, wobei <literal>$class</literal> der Name der Klasse und <literal>$method</literal>
|
||||||
|
der Name der Methode ist die aufgerufen werden soll, übergeben werden.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
<parameter>$cacheable</parameter> und <parameter>$cache_attrs</parameter> können in den meisten Fällen weggelassen werden. Konsultieren Sie <link linkend="caching.cacheable">Die Ausgabe von cachebaren Plugins Kontrollieren</link> für weitere Informationen.
|
||||||
</para>
|
</para>
|
||||||
<example>
|
<example>
|
||||||
<title>register_function (Funktion registrieren)</title>
|
<title>register_function (Funktion registrieren)</title>
|
||||||
@@ -1068,7 +1058,7 @@
|
|||||||
extract($params);
|
extract($params);
|
||||||
if(empty($format))
|
if(empty($format))
|
||||||
$format="%b %e, %Y";
|
$format="%b %e, %Y";
|
||||||
echo strftime($format,time());
|
return strftime($format,time());
|
||||||
}
|
}
|
||||||
|
|
||||||
// Von nun an können Sie {date_now} verwenden, um das aktuelle Datum auszugeben.
|
// Von nun an können Sie {date_now} verwenden, um das aktuelle Datum auszugeben.
|
||||||
@@ -1081,7 +1071,7 @@
|
|||||||
<funcprototype>
|
<funcprototype>
|
||||||
<funcdef>void <function>register_modifier</function></funcdef>
|
<funcdef>void <function>register_modifier</function></funcdef>
|
||||||
<paramdef>string <parameter>name</parameter></paramdef>
|
<paramdef>string <parameter>name</parameter></paramdef>
|
||||||
<paramdef>string <parameter>impl</parameter></paramdef>
|
<paramdef>mixed <parameter>impl</parameter></paramdef>
|
||||||
</funcprototype>
|
</funcprototype>
|
||||||
</funcsynopsis>
|
</funcsynopsis>
|
||||||
<para>
|
<para>
|
||||||
@@ -1090,6 +1080,12 @@
|
|||||||
und den Namen der PHP-Funktion, die die entsprechende Funktionalität
|
und den Namen der PHP-Funktion, die die entsprechende Funktionalität
|
||||||
bereitstellt.
|
bereitstellt.
|
||||||
</para>
|
</para>
|
||||||
|
<para>
|
||||||
|
Der Parameter <parameter>impl</parameter> kann als (a) einen Funktionnamen oder (b) einem Array der Form <literal>array(&$object, $method)</literal>,
|
||||||
|
wobei <literal>&$object</literal> eine Referenz zu einem Objekt und <literal>$method</literal> der Name der Methode die aufgerufen werden soll ist,
|
||||||
|
oder als Array der Form <literal>array(&$class, $method)</literal>, wobei <literal>$class</literal> der Name der Klasse und <literal>$method</literal>
|
||||||
|
der Name der Methode ist die aufgerufen werden soll, übergeben werden.
|
||||||
|
</para>
|
||||||
<example>
|
<example>
|
||||||
<title>register_modifier (Modifikator-Plugin registrieren)</title>
|
<title>register_modifier (Modifikator-Plugin registrieren)</title>
|
||||||
<programlisting>
|
<programlisting>
|
||||||
@@ -1103,27 +1099,50 @@
|
|||||||
// um "\"-Zeichen (Backslash) aus Zeichenketten zu entfernen. ('\\' wird zu '\',...)</programlisting>
|
// um "\"-Zeichen (Backslash) aus Zeichenketten zu entfernen. ('\\' wird zu '\',...)</programlisting>
|
||||||
</example>
|
</example>
|
||||||
</sect1>
|
</sect1>
|
||||||
|
<sect1 id="api.register.object">
|
||||||
|
<title>register_object</title>
|
||||||
|
<funcsynopsis>
|
||||||
|
<funcprototype>
|
||||||
|
<funcdef>void <function>register_object</function></funcdef>
|
||||||
|
<paramdef>string <parameter>object_name</parameter></paramdef>
|
||||||
|
<paramdef>object <parameter>$object</parameter></paramdef>
|
||||||
|
<paramdef>array <parameter>allowed methods/properties</parameter></paramdef>
|
||||||
|
<paramdef>boolean <parameter>format</parameter></paramdef>
|
||||||
|
<paramdef>array <parameter>block methods</parameter></paramdef>
|
||||||
|
</funcprototype>
|
||||||
|
</funcsynopsis>
|
||||||
|
<para>
|
||||||
|
Wird verwendet um ein Objekt zu registrieren. Konsultieren Sie den Abschnitt <link linkend="advanced.features.objects">Objekte</link>
|
||||||
|
für weitere Informationen und Beispiele.
|
||||||
|
</para>
|
||||||
|
</sect1>
|
||||||
<sect1 id="api.register.outputfilter">
|
<sect1 id="api.register.outputfilter">
|
||||||
<title>register_outputfilter (Ausgabefilter registrieren)</title>
|
<title>register_outputfilter (Ausgabefilter registrieren)</title>
|
||||||
<funcsynopsis>
|
<funcsynopsis>
|
||||||
<funcprototype>
|
<funcprototype>
|
||||||
<funcdef>void <function>register_outputfilter</function></funcdef>
|
<funcdef>void <function>register_outputfilter</function></funcdef>
|
||||||
<paramdef>string <parameter>function_name</parameter></paramdef>
|
<paramdef>mixed <parameter>function</parameter></paramdef>
|
||||||
</funcprototype>
|
</funcprototype>
|
||||||
</funcsynopsis>
|
</funcsynopsis>
|
||||||
<para>
|
<para>
|
||||||
Wird verwendet, um Ausgabefilter dynamisch zu registrieren.
|
Verwenden Sie diese Funktion um dynamisch Ausgabefilter zu registrieren, welche
|
||||||
Ausgabefilter verändern die Ausgabe,
|
die Template Ausgabe verarbeiten bevor sie angezeigt wird. Konsultieren Sie
|
||||||
bevor sie angezeigt wird. Konsultieren Sie dazu den
|
den Abschnitt über <link linkend="advanced.features.outputfilters">Ausgabefilter</link>
|
||||||
Abschnitt <link linkend="advanced.features.outputfilters">template output filters</link>
|
für mehr Informationen.
|
||||||
</para>
|
</para>
|
||||||
|
<para>
|
||||||
|
Der Parameter <parameter>function</parameter> kann als (a) einen Funktionnamen oder (b) einem Array der Form <literal>array(&$object, $method)</literal>,
|
||||||
|
wobei <literal>&$object</literal> eine Referenz zu einem Objekt und <literal>$method</literal> der Name der Methode die aufgerufen werden soll ist,
|
||||||
|
oder als Array der Form <literal>array(&$class, $method)</literal>, wobei <literal>$class</literal> der Name der Klasse und <literal>$method</literal>
|
||||||
|
der Name der Methode ist die aufgerufen werden soll, übergeben werden.
|
||||||
|
</para>
|
||||||
</sect1>
|
</sect1>
|
||||||
<sect1 id="api.register.postfilter">
|
<sect1 id="api.register.postfilter">
|
||||||
<title>register_postfilter ('post'-Filter registrieren)</title>
|
<title>register_postfilter ('post'-Filter registrieren)</title>
|
||||||
<funcsynopsis>
|
<funcsynopsis>
|
||||||
<funcprototype>
|
<funcprototype>
|
||||||
<funcdef>void <function>register_postfilter</function></funcdef>
|
<funcdef>void <function>register_postfilter</function></funcdef>
|
||||||
<paramdef>string <parameter>function_name</parameter></paramdef>
|
<paramdef>mixed <parameter>function</parameter></paramdef>
|
||||||
</funcprototype>
|
</funcprototype>
|
||||||
</funcsynopsis>
|
</funcsynopsis>
|
||||||
<para>
|
<para>
|
||||||
@@ -1131,20 +1150,31 @@
|
|||||||
auf das kompilierte Template angewendet. Konsultieren Sie dazu den
|
auf das kompilierte Template angewendet. Konsultieren Sie dazu den
|
||||||
Abschnitt <link linkend="advanced.features.postfilters">template postfilters</link>.
|
Abschnitt <link linkend="advanced.features.postfilters">template postfilters</link>.
|
||||||
</para>
|
</para>
|
||||||
|
<para>
|
||||||
|
Der Parameter <parameter>function</parameter> kann als (a) einen Funktionnamen oder (b) einem Array der Form <literal>array(&$object, $method)</literal>,
|
||||||
|
wobei <literal>&$object</literal> eine Referenz zu einem Objekt und <literal>$method</literal> der Name der Methode die aufgerufen werden soll ist,
|
||||||
|
oder als Array der Form <literal>array(&$class, $method)</literal>, wobei <literal>$class</literal> der Name der Klasse und <literal>$method</literal>
|
||||||
|
der Name der Methode ist die aufgerufen werden soll, übergeben werden.
|
||||||
|
</para>
|
||||||
</sect1>
|
</sect1>
|
||||||
<sect1 id="api.register.prefilter">
|
<sect1 id="api.register.prefilter">
|
||||||
<title>register_prefilter ('pre'-Filter registrieren)</title>
|
<title>register_prefilter ('pre'-Filter registrieren)</title>
|
||||||
<funcsynopsis>
|
<funcsynopsis>
|
||||||
<funcprototype>
|
<funcprototype>
|
||||||
<funcdef>void <function>register_prefilter</function></funcdef>
|
<funcdef>void <function>register_prefilter</function></funcdef>
|
||||||
<paramdef>string <parameter>function_name</parameter></paramdef>
|
<paramdef>mixed <parameter>function</parameter></paramdef>
|
||||||
</funcprototype>
|
</funcprototype>
|
||||||
</funcsynopsis>
|
</funcsynopsis>
|
||||||
<para>
|
<para>
|
||||||
Wird verwendet, um 'pre'-Filter dynamisch zu registrieren. 'pre'-Filter werden
|
Wird verwendet, um 'pre'-Filter dynamisch zu registrieren. 'pre'-Filter werden
|
||||||
vor der Kompilierung auf das Template angewendet. Konsultieren Sie dazu den
|
vor der Kompilierung auf das Template angewendet. Konsultieren Sie dazu den
|
||||||
Abschnitt <link linkend="advanced.features.prefilters">template prefilters</link>.
|
Abschnitt <link linkend="advanced.features.prefilters">'pre'-Filter</link>.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Der Parameter <parameter>function</parameter> kann als (a) einen Funktionnamen oder (b) einem Array der Form <literal>array(&$object, $method)</literal>,
|
||||||
|
wobei <literal>&$object</literal> eine Referenz zu einem Objekt und <literal>$method</literal> der Name der Methode die aufgerufen werden soll ist,
|
||||||
|
oder als Array der Form <literal>array(&$class, $method)</literal>, wobei <literal>$class</literal> der Name der Klasse und <literal>$method</literal>
|
||||||
|
der Name der Methode ist die aufgerufen werden soll, übergeben werden.
|
||||||
</para>
|
</para>
|
||||||
</sect1>
|
</sect1>
|
||||||
<sect1 id="api.register.resource">
|
<sect1 id="api.register.resource">
|
||||||
@@ -1163,6 +1193,18 @@
|
|||||||
Konsultieren Sie den Abschnitt <link linkend="template.resources">template resources</link>
|
Konsultieren Sie den Abschnitt <link linkend="template.resources">template resources</link>
|
||||||
für weitere Informationen zum Thema.
|
für weitere Informationen zum Thema.
|
||||||
</para>
|
</para>
|
||||||
|
<note>
|
||||||
|
<title>Technische Bemerkung</title>
|
||||||
|
<para>
|
||||||
|
Ein Ressourcename muss mindestens 2 Zeichen lang sein. Namen mit einem (1) Zeichen
|
||||||
|
werden ignoriert und als Teil des Pfades verwenden, wie in $smarty->display('c:/path/to/index.tpl');.
|
||||||
|
</para>
|
||||||
|
</note>
|
||||||
|
<para>
|
||||||
|
Der Parameter <parameter>resource_funcs</parameter> muss aus 4 oder 5 Elementen bestehen. Wenn 4 Elemente übergeben werden,
|
||||||
|
werden diese als Ersatz Callback-Funktionen fü "source", "timestamp", "secure" und "trusted" verwendet. Mit 5 Elementen
|
||||||
|
muss der erste Parameter eine Referenz auf das Objekt oder die Klasse sein, welche die benötigten Methoden bereitstellt.
|
||||||
|
</para>
|
||||||
<example>
|
<example>
|
||||||
<title>register_resource (Ressource registrieren)</title>
|
<title>register_resource (Ressource registrieren)</title>
|
||||||
<programlisting>
|
<programlisting>
|
||||||
@@ -1397,7 +1439,7 @@
|
|||||||
$smarty->caching = 2; // Lebensdauer ist pro Cache
|
$smarty->caching = 2; // Lebensdauer ist pro Cache
|
||||||
|
|
||||||
|
|
||||||
// Standardwert für '$cache_lifetime' auf 15 Minuten setzen
|
// Standardwert für '$cache_lifetime' auf 5 Minuten setzen
|
||||||
$smarty->cache_lifetime = 300;
|
$smarty->cache_lifetime = 300;
|
||||||
$smarty->display('index.tpl');
|
$smarty->display('index.tpl');
|
||||||
|
|
||||||
@@ -1622,9 +1664,170 @@
|
|||||||
</para>
|
</para>
|
||||||
</note>
|
</note>
|
||||||
</sect1>
|
</sect1>
|
||||||
|
<sect1 id="caching.cacheable">
|
||||||
|
<title>Die Ausgabe von cachebaren Plugins Kontrollieren</title>
|
||||||
|
<para>
|
||||||
|
Seit Smarty-2.6.0 kann bei der Registrierung angegeben werden ob ein Plugin
|
||||||
|
cached werden soll. Der dritte Parameter für register_block, register_compiler_function
|
||||||
|
und register_function heisst <parameter>$cacheable</parameter>, der Standardwert ist TRUE, was in Smarty vor
|
||||||
|
Version 2.6.0 üblich war.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Wenn ein Plugin mit $cacheable=false registriert wird, wird er bei jedem Besuch der Seite aufgerufen, selbst wenn die Site aus dem Cache stammt. Die Pluginfunktion verhält sich ein wenig wie <link linkend="plugins.inserts">insert</link>.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Im Gegensatz zu <link linkend="language.function.insert">{insert}</link> werden die Attribute standartmässig nicht gecached. Sie können das caching jedoch mit dem vierten Parameter <parameter>$cache_attrs</parameter> kontrollieren. <parameter>$cache_attrs</parameter> ist ein Array aller Attributnamen die gecached wertden sollen.
|
||||||
|
</para>
|
||||||
|
<example>
|
||||||
|
<title>Preventing a plugin's output from being cached</title>
|
||||||
|
<programlisting>
|
||||||
|
index.php:
|
||||||
|
|
||||||
|
require('Smarty.class.php');
|
||||||
|
$smarty = new Smarty;
|
||||||
|
$smarty->caching = true;
|
||||||
|
|
||||||
|
function remaining_seconds($params, &$smarty) {
|
||||||
|
$remain = $params['endtime'] - time();
|
||||||
|
if ($remain >=0)
|
||||||
|
return $remain . " second(s)";
|
||||||
|
else
|
||||||
|
return "done";
|
||||||
|
}
|
||||||
|
|
||||||
|
$smarty->register_function('remaining', 'remaining_seconds', false, array('endtime'));
|
||||||
|
|
||||||
|
if (!$smarty->is_cached('index.tpl')) {
|
||||||
|
// objekt $obj aus datenbank dem template zuweisen
|
||||||
|
$smarty->assign_by_ref('obj', $obj);
|
||||||
|
}
|
||||||
|
|
||||||
|
$smarty->display('index.tpl');
|
||||||
|
|
||||||
|
|
||||||
|
index.tpl:
|
||||||
|
|
||||||
|
Time Remaining: {remain endtime=$obj->endtime}</programlisting>
|
||||||
|
<para>
|
||||||
|
Der Wert von $obj->endtime ändert bei jeder Anzeige der Seite, selbst wenn die Seite gecached wurde. Das Objekt $obj wird nur geladen wenn die Seite nicht gecached wurde.
|
||||||
|
</para>
|
||||||
|
</example>
|
||||||
|
<example>
|
||||||
|
<title>Verhindern dass Template Blöcke gecached werden</title>
|
||||||
|
<programlisting>
|
||||||
|
index.php:
|
||||||
|
|
||||||
|
require('Smarty.class.php');
|
||||||
|
$smarty = new Smarty;
|
||||||
|
$smarty->caching = true;
|
||||||
|
|
||||||
|
function smarty_block_dynamic($param, $content, &$smarty) {
|
||||||
|
return $content;
|
||||||
|
}
|
||||||
|
$smarty->register_block('dynamic', 'smarty_block_dynamic', false);
|
||||||
|
|
||||||
|
$smarty->display('index.tpl');
|
||||||
|
|
||||||
|
|
||||||
|
index.tpl:
|
||||||
|
|
||||||
|
Page created: {"0"|date_format:"%D %H:%M:%S"}
|
||||||
|
|
||||||
|
{dynamic}
|
||||||
|
|
||||||
|
Now is: {"0"|date_format:"%D %H:%M:%S"}
|
||||||
|
|
||||||
|
... do other stuff ...
|
||||||
|
|
||||||
|
{/dynamic}</programlisting>
|
||||||
|
</example>
|
||||||
|
<para>
|
||||||
|
Um sicherzustellen dass ein Teil eines Templates nicht gecached werden soll, kann dieser Abschnitt in einen {dynamic}...{/dynamic} Block verpackt werden.
|
||||||
|
</para>
|
||||||
|
</sect1>
|
||||||
</chapter>
|
</chapter>
|
||||||
<chapter id="advanced.features">
|
<chapter id="advanced.features">
|
||||||
<title>Advanced Features</title>
|
<title>Advanced Features</title>
|
||||||
|
<sect1 id="advanced.features.objects">
|
||||||
|
<title>Objekte</title>
|
||||||
|
<para>
|
||||||
|
Smarty erlaubt es, auf PHP Objekt durch das Template zuzugreiffen. Dafür gitbt es
|
||||||
|
zwei Wege. Der erste ist, Objekte zu registrieren und wie auf eigene Funktionen zuzugreiffen.
|
||||||
|
Der andere Weg ist, das Objekt dem Template zuzuweisen und darauf wie auf andere Variablen
|
||||||
|
zuzugreiffen. Die erste Methode hat eine nettere Template Syntax und ist sicherer da der Zugriff
|
||||||
|
auf ein registriertes Objekt mit Sicherheitseinstellungen kontrolliert werden kann. Der Nachteil
|
||||||
|
ist, dass registrierte Objekte nicht in Loops verwendet werden k<>nnen. Welchen Weg Sie einschlagen
|
||||||
|
wird von Ihren Bedürfnissen definiert, die erste Methode ist jedoch zu bevorzugen.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Wenn Sicherheit eingeschaltet ist, können keine private Methoden (solche die einen '_'-Prefix tragen)
|
||||||
|
aufgerufen werden. Wenn eine Methode und eine Eigeschaft mit dem gleichen Namen existieren wird die Methode
|
||||||
|
verwendet.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Sie können den Zugriff auf Methoden und Eigenschaften einschränken
|
||||||
|
indem Sie sie als Array als dritten Registrationsparameter übergeben.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Normalerweise werden Parameter welche einem Objekt via Template übergeben
|
||||||
|
werden genau so übergeben wie dies bei normalen eigenen Funktionen der Fall ist.
|
||||||
|
Das erste Objekt ist ein assoziatives Array und das zweite das Smarty Objekt selbst.
|
||||||
|
Wenn Sie die Parameter einzeln erhalten möchten können Sie den vierten
|
||||||
|
Parameter auf FALSE setzen.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Der optional fünfte Parameter hat nur einen Effekt wenn
|
||||||
|
<parameter>format</parameter> <literal>true</literal> ist und eine Liste von
|
||||||
|
Methoden enthält die als Block verarbeitet werden sollen.
|
||||||
|
Das bedeutet dass solche Methoden ein schliessendes Tag im Template
|
||||||
|
enthalten müssen (<literal>{foobar->meth2}...{/foobar->meth2}</literal>)
|
||||||
|
und die Parameter zu den Funktionen die selbe Syntax haben wie block-function-plugins:
|
||||||
|
sie erhalten 4 Parameter
|
||||||
|
<parameter>$params</parameter>,
|
||||||
|
<parameter>$content</parameter>,
|
||||||
|
<parameter>&$smarty</parameter> und
|
||||||
|
<parameter>&$repeat</parameter>
|
||||||
|
und sich auch wie block-function-plugins verhalten.
|
||||||
|
</para>
|
||||||
|
<example>
|
||||||
|
<title>ein registiertes oder zugewiesenes Objekt verwenden</title>
|
||||||
|
<programlisting>
|
||||||
|
<?php
|
||||||
|
// das objekt
|
||||||
|
|
||||||
|
class My_Object {
|
||||||
|
function meth1($params, &$smarty_obj) {
|
||||||
|
return "meine meth1";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$myobj = new My_Object;
|
||||||
|
// objekt registrieren (referenz)
|
||||||
|
$smarty->register_object("foobar",$myobj);
|
||||||
|
// zugriff auf methoden und eigeschaften einschränken
|
||||||
|
$smarty->register_object("foobar",$myobj,array('meth1','meth2','prop1'));
|
||||||
|
// wenn wir das traditionelle parameter format verwenden wollen, übergeben wir false für den parameter format
|
||||||
|
$smarty->register_object("foobar",$myobj,null,false);
|
||||||
|
|
||||||
|
// objekte zuweisen (auch via referenz möglich)
|
||||||
|
$smarty->assign_by_ref("myobj", $myobj);
|
||||||
|
|
||||||
|
$smarty->display("index.tpl");
|
||||||
|
?>
|
||||||
|
|
||||||
|
TEMPLATE:
|
||||||
|
|
||||||
|
{* zugriff auf ein registriertes objekt *}
|
||||||
|
{foobar->meth1 p1="foo" p2=$bar}
|
||||||
|
|
||||||
|
{* ausgabe zuweisen *}
|
||||||
|
{foobar->meth1 p1="foo" p2=$bar assign="output"}
|
||||||
|
ausgabe war: {$output}
|
||||||
|
|
||||||
|
{* auf unser zugewiesenes objekt zugreiffen *}
|
||||||
|
{$myobj->meth1("foo",$bar)}</programlisting>
|
||||||
|
</example>
|
||||||
|
</sect1>
|
||||||
<sect1 id="advanced.features.prefilters">
|
<sect1 id="advanced.features.prefilters">
|
||||||
<title>'pre'-Filter</title>
|
<title>'pre'-Filter</title>
|
||||||
<para>
|
<para>
|
||||||
@@ -1878,7 +2081,9 @@
|
|||||||
ein Template mit 'display()' ausgeben, die Ausgabe mit 'fetch()'
|
ein Template mit 'display()' ausgeben, die Ausgabe mit 'fetch()'
|
||||||
in einer Variablen speichern oder innnerhalb eines Template ein
|
in einer Variablen speichern oder innnerhalb eines Template ein
|
||||||
weiteres Template einbinden, müssen Sie den Ressourcen-Typ,
|
weiteres Template einbinden, müssen Sie den Ressourcen-Typ,
|
||||||
gefolgt von Pfad und Template-Namen angeben.
|
gefolgt von Pfad und Template-Namen angeben. Wenn kein Resourcetyp angegeben
|
||||||
|
wird, wird <link linkend="variable.default.resource.type">$default_resource_type</link>
|
||||||
|
verwendet.
|
||||||
</para>
|
</para>
|
||||||
<sect2 id="templates.from.template.dir">
|
<sect2 id="templates.from.template.dir">
|
||||||
<title>Templates aus dem '$template_dir'</title>
|
<title>Templates aus dem '$template_dir'</title>
|
||||||
@@ -2116,9 +2321,9 @@
|
|||||||
entspricht der Reihenfolge in der sie geladen/registriert wurden.
|
entspricht der Reihenfolge in der sie geladen/registriert wurden.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
Aus Performancegründen existiert nur ein Plugin-Verzeichnis. Um ein Plugin
|
Die <link linkend="variable.plugins.dir">plugins directory</link> Variable kann eine Zeichenkette,
|
||||||
zu installieren, speichern Sie es einfach in diesem Verzeichnis. Smarty wird
|
oder ein Array mit Verzeichnisnamen sein. Um einen Plugin zu installieren können Sie ihn einfach
|
||||||
es danach automatisch erkennen.
|
in einem der Verzeichnisse ablegen.
|
||||||
</para>
|
</para>
|
||||||
</sect1>
|
</sect1>
|
||||||
|
|
||||||
@@ -2198,10 +2403,11 @@
|
|||||||
folgender Weg gewählt werden, um das benötigte Plugin zu laden:
|
folgender Weg gewählt werden, um das benötigte Plugin zu laden:
|
||||||
</para>
|
</para>
|
||||||
<programlisting>
|
<programlisting>
|
||||||
require_once SMARTY_DIR . 'plugins/function.html_options.php';</programlisting>
|
require_once $smarty->_get_plugin_filepath('function', 'html_options');</programlisting>
|
||||||
<para>
|
<para>
|
||||||
Das Smarty Objekt wird jedem Plugin immer als letzter Parameter
|
Das Smarty Objekt wird jedem Plugin immer als letzter Parameter
|
||||||
übergeben (ausser bei Variablen-Modifikatoren).
|
übergeben (ausser bei Variablen-Modifikatoren und bei Blücken wird
|
||||||
|
<parameter>&$repeat</parameter> nach dem Smarty Objekt übergeben um Rückwärtskompatibel zu bleiben).
|
||||||
</para>
|
</para>
|
||||||
</sect1>
|
</sect1>
|
||||||
|
|
||||||
@@ -2413,7 +2619,8 @@
|
|||||||
<para>
|
<para>
|
||||||
Ihre Funktions-Implementation wird von Smarty zweimal
|
Ihre Funktions-Implementation wird von Smarty zweimal
|
||||||
aufgerufen: einmal für das öffnende und einmal
|
aufgerufen: einmal für das öffnende und einmal
|
||||||
für das schliessende Tag.
|
für das schliessende Tag. (konsultieren Sie den Abschnitt zu <literal>&$repeat</literal>
|
||||||
|
um zu erfahren wie Sie dies ändern können.)
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
Nur das Öffnungs-Tag kann Attribute enthalten. Alle so übergebenen Attribute
|
Nur das Öffnungs-Tag kann Attribute enthalten. Alle so übergebenen Attribute
|
||||||
@@ -2431,6 +2638,15 @@
|
|||||||
Achtung: Der Template-Abschnitt den Sie erhalten, wurde bereits von
|
Achtung: Der Template-Abschnitt den Sie erhalten, wurde bereits von
|
||||||
Smarty bearbeitet. Sie erhalten also die Template-Ausgabe, nicht den Template-Quelltext.
|
Smarty bearbeitet. Sie erhalten also die Template-Ausgabe, nicht den Template-Quelltext.
|
||||||
</para>
|
</para>
|
||||||
|
<para>
|
||||||
|
Der Parameter <parameter>&$repeat</parameter> wird als Referenz übergeben und
|
||||||
|
kontrolliert wie oft ein Block dargestellt werden soll. Standardwert von <parameter>$repeat</parameter>
|
||||||
|
ist beim ersten Aufruf (für das öffnende Tag) <literal>true</literal>, danach immer
|
||||||
|
<literal>false</literal>.
|
||||||
|
Jedes Mal wenn eine Funktion für <parameter>&$repeat</parameter> TRUE zur&uum;ck gibt,
|
||||||
|
wird der Inhalt zwischen {func} .. {/func} erneut mit dem veränderten
|
||||||
|
Inhalt als <parameter>$content</parameter> Parameter aufgerufen.
|
||||||
|
</para>
|
||||||
<para>
|
<para>
|
||||||
Wenn Sie verschachtelte Block-Funktionen haben, können Sie
|
Wenn Sie verschachtelte Block-Funktionen haben, können Sie
|
||||||
die Eltern-Block-Funktion mit der <varname>$smarty->_tag_stack</varname> Variable
|
die Eltern-Block-Funktion mit der <varname>$smarty->_tag_stack</varname> Variable
|
||||||
@@ -2458,11 +2674,11 @@
|
|||||||
*/
|
*/
|
||||||
function smarty_block_translate($params, $content, &$smarty)
|
function smarty_block_translate($params, $content, &$smarty)
|
||||||
{
|
{
|
||||||
if ($content) {
|
if (isset($content)) {
|
||||||
$lang = $params['lang'];
|
$lang = $params['lang'];
|
||||||
|
|
||||||
// den $content irgendwie intelligent übersetzuen
|
// den $content irgendwie intelligent übersetzuen
|
||||||
echo $translation;
|
return $translation;
|
||||||
}
|
}
|
||||||
}</programlisting>
|
}</programlisting>
|
||||||
</example>
|
</example>
|
||||||
|
Reference in New Issue
Block a user