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:
@@ -1,7 +1,7 @@
|
|||||||
<!-- Smarty German Documentation Port -->
|
<!-- Smarty German Documentation Port -->
|
||||||
<!-- $Id$ -->
|
<!-- designers.sgml,v 1.7 2003/01/10 15:52:52 dexxter Exp -->
|
||||||
<!-- $Author$ -->
|
<!-- dexxter -->
|
||||||
<!-- $Version$ -->
|
<!-- 1.7 -->
|
||||||
<part id="smarty.for.designers">
|
<part id="smarty.for.designers">
|
||||||
<title>Smarty für Template Designer</title>
|
<title>Smarty für Template Designer</title>
|
||||||
|
|
||||||
@@ -61,10 +61,10 @@
|
|||||||
|
|
||||||
{include file="header.tpl"}
|
{include file="header.tpl"}
|
||||||
|
|
||||||
{if $name eq "Fred"}
|
{if $highlight_name}
|
||||||
Du bist Fred und darfst das hier sehen!
|
Welcome, <font color="{#fontColor#}">{$name}!</font>
|
||||||
{else}
|
{else}
|
||||||
Willkommen, <font color="{#fontColor#}">{$name}!</font>
|
Welcome, {$name}!
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
{include file="footer.tpl"}</programlisting>
|
{include file="footer.tpl"}</programlisting>
|
||||||
@@ -112,35 +112,51 @@
|
|||||||
</sect1>
|
</sect1>
|
||||||
|
|
||||||
<sect1 id="language.syntax.quotes">
|
<sect1 id="language.syntax.quotes">
|
||||||
<title>Variablen in doppelten Anführungszeichen</title>
|
<title>Variablen mit Doppelten Anführungszeichen</title>
|
||||||
<para>
|
<para>
|
||||||
Smarty will recognize assigned variables embedded in double quotes so long
|
Smarty erkennt zugewiesene Variablen mit doppelten Anführungszeichen solange
|
||||||
as the variables contain only numbers, letters, underscores and brackets
|
die Variablen nur Zahlen, Buchstaben, Understriche oder Klammern [] enthalten. Mit allen
|
||||||
[]. With any other characters (period, object reference, etc.) the variable
|
anderen Zeichen wie Punkt, Objekt Referenzen, etc muss die Vairable mit Backticks umschlossen sein.
|
||||||
must be surrounded by backticks.
|
|
||||||
Smarty erkennt zugewisene Variablen in doppelten Anführungszeichen solange
|
|
||||||
der Variablenname nur Zahlen, Buchstaben, Unterstriche oder Klammern [] enthaelt.
|
|
||||||
Wenn andere Zeichen (punkte, objekt referenzen, etc) verwendet werden, so muss
|
|
||||||
die Variable mit Backticks versehen werden.
|
|
||||||
</para>
|
</para>
|
||||||
<example>
|
<example>
|
||||||
<title>Anführungszeichen Syntax</title>
|
<title>Syntax von eingebetteten Anfürungszeichen</title>
|
||||||
<programlisting>
|
<programlisting>
|
||||||
Syntax Beispiele:
|
SYNTAX BEISPIELE:
|
||||||
{func var="test $foo test"} <-- sieht $foo
|
{func var="test $foo test"} <-- sieht $foo
|
||||||
{func var="test $foo_bar test"} <-- sieht $foo_bar
|
{func var="test $foo_bar test"} <-- sieht $foo_bar
|
||||||
{func var="test $foo[0] test"} <-- sieht $foo[0]
|
{func var="test $foo[0] test"} <-- sieht $foo[0]
|
||||||
{func var="test $foo[bar] test"} <-- sieht $foo[bar]
|
{func var="test $foo[bar] test"} <-- sieht $foo[bar]
|
||||||
{func var="test $foo.bar test"} <-- sieht $foo (not $foo.bar)
|
{func var="test $foo.bar test"} <-- sieht $foo (nicht $foo.bar)
|
||||||
{func var="test `$foo.bar` test"} <-- sieht $foo.bar
|
{func var="test `$foo.bar` test"} <-- sieht $foo.bar
|
||||||
|
|
||||||
Anwendungsbeispiele:
|
PRAKTISCHE BEISPIELE:
|
||||||
{include file="subdir/$tpl_name.tpl"} <-- $tpl_name wird durch den Wert ersetzt
|
{include file="subdir/$tpl_name.tpl"} <-- ersetzt $tpl_name durch wert
|
||||||
{cycle values="one,two,`$smarty.config.myval`"} <-- muss Backticks enthalten</programlisting>
|
{cycle values="one,two,`$smarty.config.myval`"} <-- muss Backticks enthalten</programlisting>
|
||||||
</example>
|
</example>
|
||||||
</sect1>
|
</sect1>
|
||||||
|
<sect1 id="language.math">
|
||||||
|
<title>Math</title>
|
||||||
|
<para>
|
||||||
|
Mathematische Operationen können direkt auf Variablen verwendet werden.
|
||||||
|
</para>
|
||||||
|
<example>
|
||||||
|
<title>Mathematik Beispiele</title>
|
||||||
|
<programlisting>
|
||||||
|
{$foo+1}
|
||||||
|
|
||||||
|
{$foo*$bar}
|
||||||
|
|
||||||
|
{* kompliziertere Beispiele *}
|
||||||
|
|
||||||
|
{$foo->bar-$bar[1]*$baz->foo->bar()-3*7}
|
||||||
|
|
||||||
|
{if ($foo+$bar.test%$baz*134232+10+$b+10)}
|
||||||
|
|
||||||
|
{$foo|truncate:"`$fooTruncCount/$barTruncFactor-1`"}
|
||||||
|
|
||||||
|
{assign var="foo" value="`$foo+$bar`"}</programlisting>
|
||||||
|
</example>
|
||||||
|
</sect1>
|
||||||
</chapter>
|
</chapter>
|
||||||
|
|
||||||
<chapter id="language.variables">
|
<chapter id="language.variables">
|
||||||
@@ -246,25 +262,12 @@ email: zaphod@slartibartfast.com<br></programlisting>
|
|||||||
<title>Verwendung von Variablen aus Konfigurationsdateien</title>
|
<title>Verwendung von Variablen aus Konfigurationsdateien</title>
|
||||||
<para>
|
<para>
|
||||||
Variablen, die aus einer Konfigurationsdatei geladen werden, referenziert man mit
|
Variablen, die aus einer Konfigurationsdatei geladen werden, referenziert man mit
|
||||||
umschliessenden '#'-Zeichen (Raute), oder der Smarty Variable <link linkend="language.variables.smarty.config">$smarty.config</link>.
|
umschliessenden '#'-Zeichen (Raute).
|
||||||
Die zweite Syntax ist sinnvoll, wenn Werte in Variablen mit Anf<6E>hrungszeichen geladen werden sollen.
|
|
||||||
|
|
||||||
</para>
|
</para>
|
||||||
<example>
|
<example>
|
||||||
|
|
||||||
<title>Konfigurationsvariablen</title>
|
<title>Konfigurationsvariablen</title>
|
||||||
<programlisting>
|
<programlisting>
|
||||||
foo.conf:
|
|
||||||
|
|
||||||
seitenTitel = "This is mine"
|
|
||||||
bodyHintergrundFarbe = "#eeeeee"
|
|
||||||
tabelleRahmenBreite = "3"
|
|
||||||
tabelleHintergrundFarbe = "#bbbbbb"
|
|
||||||
reiheHintergrundFarbe = "#cccccc"
|
|
||||||
|
|
||||||
index.tpl:
|
|
||||||
|
|
||||||
{config_load file="foo.conf"}
|
|
||||||
<html>
|
<html>
|
||||||
<title>{#seitenTitel#}</title>
|
<title>{#seitenTitel#}</title>
|
||||||
<body bgcolor="{#bodyHintergrundFarbe#}">
|
<body bgcolor="{#bodyHintergrundFarbe#}">
|
||||||
@@ -276,42 +279,7 @@ index.tpl:
|
|||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html></programlisting>
|
||||||
|
|
||||||
AUSGABE:
|
|
||||||
|
|
||||||
<html>
|
|
||||||
<title>This is mine</title>
|
|
||||||
<body bgcolor="#eeeeee">
|
|
||||||
<table border="3" bgcolor="#bbbbbb">
|
|
||||||
<tr bgcolor="#cccccc">
|
|
||||||
<td>Vornamen</td>
|
|
||||||
<td>Nachnamen</td>
|
|
||||||
<td>Adresse</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
|
|
||||||
index.tpl: (alternate syntax)
|
|
||||||
|
|
||||||
{config_load file="foo.conf"}
|
|
||||||
<html>
|
|
||||||
<title>{$smarty.config.seitenTitel}</title>
|
|
||||||
<body bgcolor="{$smarty.config.bodyHintergrundFarbe}">
|
|
||||||
<table border="{$smarty.config.tabelleRahmenBreite}" bgcolor="{$smarty.config.tabelleHintergrundFarbe}">
|
|
||||||
<tr bgcolor="{$smarty.config.reiheHintergrundFarbe}">
|
|
||||||
<td>Vornamen</td>
|
|
||||||
<td>Nachnamen</td>
|
|
||||||
<td>Adresse</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
|
|
||||||
AUSGABE: (gleich, für beide Beispiele)
|
|
||||||
|
|
||||||
</programlisting>
|
|
||||||
</example>
|
</example>
|
||||||
<para>
|
<para>
|
||||||
Variablen aus Konfigurationsdateien können erst verwendet werden,
|
Variablen aus Konfigurationsdateien können erst verwendet werden,
|
||||||
@@ -387,16 +355,6 @@ AUSGABE: (gleich, für beide Beispiele)
|
|||||||
</para>
|
</para>
|
||||||
</sect2>
|
</sect2>
|
||||||
|
|
||||||
<sect2 id="language.variables.smarty.config">
|
|
||||||
<title>{$smarty.config}</title>
|
|
||||||
<para>
|
|
||||||
{$smarty} kann verwendet werden um auf geladenen Konfigurationsdateien zu referenzieren.
|
|
||||||
{$smarty.config.foo} ist ein Synonym für {#foo#}. Konsultieren Sie den Abschnitt
|
|
||||||
<link linkend="language.function.config.load">config_load</link> für ein Beispiel.
|
|
||||||
</para>
|
|
||||||
</sect2>
|
|
||||||
|
|
||||||
|
|
||||||
<sect2 id="language.variables.smarty.loops">
|
<sect2 id="language.variables.smarty.loops">
|
||||||
<title>{$smarty.section}, {$smarty.foreach}</title>
|
<title>{$smarty.section}, {$smarty.foreach}</title>
|
||||||
<para>
|
<para>
|
||||||
@@ -441,7 +399,18 @@ Thema: {$thema|truncate:40:"..."}</programlisting>
|
|||||||
Modifikator ein <literal>@</literal> Zeichen vorangestellt werden. Beispiel:
|
Modifikator ein <literal>@</literal> Zeichen vorangestellt werden. Beispiel:
|
||||||
<literal>{$artikelTitel|@count}</literal> (gibt die Anzahl Elemente des Arrays $artikelTitel aus.)
|
<literal>{$artikelTitel|@count}</literal> (gibt die Anzahl Elemente des Arrays $artikelTitel aus.)
|
||||||
</para>
|
</para>
|
||||||
|
<para>
|
||||||
|
Modifikatoren können aus Ihrem <link linkend="variable.plugins.dir">$plugins_dir</link>
|
||||||
|
automatisch geladen (sehen Sie dazu auch <link linkend="plugins.naming.conventions">Naming Conventions</link>)
|
||||||
|
oder explizit registriert werden (<link linkend="api.register.modifier">register_modifier</link>).
|
||||||
|
Zudem können alle PHP-Funktionen implizit als Modifikatoren verwendet werden. (Das Beispiel mit dem
|
||||||
|
<literal>@count</literal> Modifier verwendet die Funktion 'count' von PHP und keinen Smarty Modifikator)
|
||||||
|
PHP Funktionen zu verwenden eröffnet zwei Probleme: erstens: manchmal ist die Parameter Reiehnfolge nicht
|
||||||
|
erwünscht. (<literal>{"%2.f"|sprintf:$float}</literal> funktioniert zwar, sieht aber als <literal>{$float|string_format:"%2.f"}</literal>
|
||||||
|
das durch Smarty geliefert wird, besser aus. Zweitens: wenn <link linkend="variable.security">$security</link> auf TRUE gesetzt ist,
|
||||||
|
müssen alle verwendeten PHP Funktionen im <link linkend="variable.security.settings">$security_settings['MODIFIER_FUNCS']</link>-Array
|
||||||
|
enthalten sein.
|
||||||
|
</para>
|
||||||
<sect1 id="language.modifier.capitalize">
|
<sect1 id="language.modifier.capitalize">
|
||||||
<title>capitalize (in Grossbuchstaben schreiben)</title>
|
<title>capitalize (in Grossbuchstaben schreiben)</title>
|
||||||
<para>
|
<para>
|
||||||
@@ -461,6 +430,33 @@ Diebe Haben In Norwegen 20 Tonnen Streusalz Entwendet.</programlisting>
|
|||||||
</sect1>
|
</sect1>
|
||||||
<sect1 id="language.modifier.count.characters">
|
<sect1 id="language.modifier.count.characters">
|
||||||
<title>count_characters (Buchstaben zählen)</title>
|
<title>count_characters (Buchstaben zählen)</title>
|
||||||
|
<informaltable frame=all>
|
||||||
|
<tgroup cols=6>
|
||||||
|
<colspec colname=param align=center>
|
||||||
|
<colspec colname=type align=center>
|
||||||
|
<colspec colname=required align=center>
|
||||||
|
<colspec colname=default align=center>
|
||||||
|
<colspec colname=desc>
|
||||||
|
<thead>
|
||||||
|
<row>
|
||||||
|
<entry>Parameter Position</entry>
|
||||||
|
<entry>Typ</entry>
|
||||||
|
<entry>Benötigt</entry>
|
||||||
|
<entry>Standard</entry>
|
||||||
|
<entry>Beschreibung</entry>
|
||||||
|
</row>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<row>
|
||||||
|
<entry>1</entry>
|
||||||
|
<entry>boolean</entry>
|
||||||
|
<entry>Nein</entry>
|
||||||
|
<entry>false</entry>
|
||||||
|
<entry>Definiert ob Leerzeichen mitgezählt werden sollen.</entry>
|
||||||
|
</row>
|
||||||
|
</tbody>
|
||||||
|
</tgroup>
|
||||||
|
</informaltable>
|
||||||
<para>
|
<para>
|
||||||
Wird verwendet um die Anzahl Buchstaben in einer Variable auszugeben.
|
Wird verwendet um die Anzahl Buchstaben in einer Variable auszugeben.
|
||||||
</para>
|
</para>
|
||||||
@@ -470,64 +466,15 @@ Diebe Haben In Norwegen 20 Tonnen Streusalz Entwendet.</programlisting>
|
|||||||
|
|
||||||
{$artikelTitel}
|
{$artikelTitel}
|
||||||
{$artikelTitel|count_characters}
|
{$artikelTitel|count_characters}
|
||||||
|
{$artikelTitel|count_characters:true}
|
||||||
|
|
||||||
AUSGABE:
|
AUSGABE:
|
||||||
|
|
||||||
20% der US-Amerikaner finden ihr Land (die USA) nicht auf der Landkarte.
|
20% der US-Amerikaner finden ihr Land (die USA) nicht auf der Landkarte.
|
||||||
72</programlisting>
|
72
|
||||||
|
61</programlisting>
|
||||||
</example>
|
</example>
|
||||||
</sect1>
|
</sect1>
|
||||||
<sect1 id="language.modifier.cat">
|
|
||||||
<title>cat</title>
|
|
||||||
<informaltable frame=all>
|
|
||||||
<tgroup cols=5>
|
|
||||||
<colspec colname=param align=center>
|
|
||||||
<colspec colname=type align=center>
|
|
||||||
<colspec colname=required align=center>
|
|
||||||
<colspec colname=cat align=center>
|
|
||||||
<colspec colname=desc>
|
|
||||||
<thead>
|
|
||||||
<row>
|
|
||||||
<entry>Parameter Position</entry>
|
|
||||||
<entry>Typ</entry>
|
|
||||||
<entry>Erforderlich</entry>
|
|
||||||
<entry>cat</entry>
|
|
||||||
<entry>Beschreibung</entry>
|
|
||||||
</row>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<row>
|
|
||||||
<entry>1</entry>
|
|
||||||
<entry>string</entry>
|
|
||||||
<entry>Nein</entry>
|
|
||||||
<entry><emphasis>empty</emphasis></entry>
|
|
||||||
<entry>Hängt den übergebenen Wert der Variable an.</entry>
|
|
||||||
</row>
|
|
||||||
</tbody>
|
|
||||||
</tgroup>
|
|
||||||
</informaltable>
|
|
||||||
<para>
|
|
||||||
Dieser Wert wird der Variable angehängt.
|
|
||||||
</para>
|
|
||||||
<example>
|
|
||||||
<title>cat</title>
|
|
||||||
<programlisting>
|
|
||||||
index.php:
|
|
||||||
|
|
||||||
$smarty = new Smarty;
|
|
||||||
$smarty->assign('articleTitle', 'Psychics predict world didn't end');
|
|
||||||
$smarty->display('index.tpl');
|
|
||||||
|
|
||||||
index.tpl:
|
|
||||||
|
|
||||||
{$articleTitle|cat:" yesterday."}
|
|
||||||
|
|
||||||
AUSGABE:
|
|
||||||
|
|
||||||
Psychics predict world didn't end yesterday.</programlisting>
|
|
||||||
</example>
|
|
||||||
</sect1>
|
|
||||||
|
|
||||||
<sect1 id="language.modifier.count.paragraphs">
|
<sect1 id="language.modifier.count.paragraphs">
|
||||||
<title>count_paragraphs (Absätze zählen)</title>
|
<title>count_paragraphs (Absätze zählen)</title>
|
||||||
<para>
|
<para>
|
||||||
@@ -927,30 +874,6 @@ AUSGABE:
|
|||||||
|
|
||||||
In Kalifornien wurde ein Hund in das Wählerverzeichnis eingetragen.
|
In Kalifornien wurde ein Hund in das Wählerverzeichnis eingetragen.
|
||||||
in kalifornien wurde ein hund in das wählerverzeichnis eingetragen.</programlisting>
|
in kalifornien wurde ein hund in das wählerverzeichnis eingetragen.</programlisting>
|
||||||
</example>
|
|
||||||
</sect1>
|
|
||||||
<sect1 id="language.modifier.nl2br">
|
|
||||||
<title>nl2br</title>
|
|
||||||
<para>
|
|
||||||
Konvertiert alle Zeilenschaltungen in der Variable in <br /> Tags.
|
|
||||||
Verhält sich gleich wie die PHP Funktion 'nl2br()'.
|
|
||||||
</para>
|
|
||||||
<example>
|
|
||||||
<title>nl2br</title>
|
|
||||||
<programlisting>
|
|
||||||
index.php:
|
|
||||||
|
|
||||||
$smarty = new Smarty;
|
|
||||||
$smarty->assign('articleTitle', "Sun or rain expected\ntoday, dark tonight");
|
|
||||||
$smarty->display('index.tpl');
|
|
||||||
|
|
||||||
index.tpl:
|
|
||||||
|
|
||||||
{$articleTitle|nl2br}
|
|
||||||
|
|
||||||
AUSGABE:
|
|
||||||
|
|
||||||
Sun or rain expected<br />today, dark tonight</programlisting>
|
|
||||||
</example>
|
</example>
|
||||||
</sect1>
|
</sect1>
|
||||||
<sect1 id="language.modifier.regex.replace">
|
<sect1 id="language.modifier.regex.replace">
|
||||||
@@ -1423,6 +1346,40 @@ e i n e m s t a d t r. . .</programlisting>
|
|||||||
</para>
|
</para>
|
||||||
<sect1 id="language.function.capture">
|
<sect1 id="language.function.capture">
|
||||||
<title>capture (Ausgabe abfangen)</title>
|
<title>capture (Ausgabe abfangen)</title>
|
||||||
|
<informaltable frame=all>
|
||||||
|
<tgroup cols=5>
|
||||||
|
<colspec colname=param align=center>
|
||||||
|
<colspec colname=type align=center>
|
||||||
|
<colspec colname=required align=center>
|
||||||
|
<colspec colname=default align=center>
|
||||||
|
<colspec colname=desc>
|
||||||
|
<thead>
|
||||||
|
<row>
|
||||||
|
<entry>Attribut Name</entry>
|
||||||
|
<entry>Typ</entry>
|
||||||
|
<entry>Benötigt</entry>
|
||||||
|
<entry>Standardwert</entry>
|
||||||
|
<entry>Beschreibung</entry>
|
||||||
|
</row>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<row>
|
||||||
|
<entry>name</entry>
|
||||||
|
<entry>string</entry>
|
||||||
|
<entry>no</entry>
|
||||||
|
<entry><emphasis>default</emphasis></entry>
|
||||||
|
<entry>Der Name des abgefangenen Blocks</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry>assign</entry>
|
||||||
|
<entry>string</entry>
|
||||||
|
<entry>No</entry>
|
||||||
|
<entry><emphasis>n/a</emphasis></entry>
|
||||||
|
<entry>Der Name der Variable welcher der Wert zugewiesen werden soll.</entry>
|
||||||
|
</row>
|
||||||
|
</tbody>
|
||||||
|
</tgroup>
|
||||||
|
</informaltable>
|
||||||
<para>
|
<para>
|
||||||
'capture' wird verwendet, um die Template-Ausgabe abzufangen und in einer
|
'capture' wird verwendet, um die Template-Ausgabe abzufangen und in einer
|
||||||
Variable zu speichern. Der Inhalt zwischen {capture name="foo"} und {/capture}
|
Variable zu speichern. Der Inhalt zwischen {capture name="foo"} und {/capture}
|
||||||
@@ -1690,6 +1647,51 @@ phone: 555-4444<br>
|
|||||||
fax: 555-3333<br>
|
fax: 555-3333<br>
|
||||||
cell: 760-1234<br></programlisting>
|
cell: 760-1234<br></programlisting>
|
||||||
</example>
|
</example>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Foreach-Loops haben auch eigene Variablen welche die Foreach Eigenschaften enthalten.
|
||||||
|
Diese werden wie folgt ausgewiesen: {$smarty.foreach.foreachname.varname}. foreachname
|
||||||
|
ist der Name der als <emphasis>name</emphasis> Attribut von Foreach übergeben wurden.
|
||||||
|
</para>
|
||||||
|
<sect2 id="foreach.property.iteration">
|
||||||
|
<title>iteration</title>
|
||||||
|
<para>
|
||||||
|
gibt die aktuelle iteration aus
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
iteration beginnt immer mit 1 und wird danach bei jedem durchgang um 1 inkrementiert.
|
||||||
|
</para>
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
<sect2 id="foreach.property.first">
|
||||||
|
<title>first</title>
|
||||||
|
<para>
|
||||||
|
<emphasis>first</emphasis> ist TRUE wenn die aktuelle Iteration die erste ist
|
||||||
|
</para>
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
<sect2 id="foreach.property.last">
|
||||||
|
<title>last</title>
|
||||||
|
<para>
|
||||||
|
<emphasis>last</emphasis> ist TRUE wenn die aktuelle Iteration die letzte ist
|
||||||
|
</para>
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
<sect2 id="foreach.property.show">
|
||||||
|
<title>show</title>
|
||||||
|
<para>
|
||||||
|
<emphasis>show</emphasis> wird als Parameter von foreach verwedet und ist ein boolscher Wert, TRUE oder FALSE. Auf FALSE wird
|
||||||
|
nichts ausgegeben und wenn foreachelse gefunden wird, dieser angezeigt.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
</sect2>
|
||||||
|
<sect2 id="foreach.property.total">
|
||||||
|
<title>total</title>
|
||||||
|
<para>
|
||||||
|
<emphasis>total</emphasis> gibt die Anzahl Iterationen des Foreach Loops aus und kann in- oder nach- Foreach Blöcken verwendet werden.
|
||||||
|
</para>
|
||||||
|
</sect2>
|
||||||
|
|
||||||
</sect1>
|
</sect1>
|
||||||
<sect1 id="language.function.include">
|
<sect1 id="language.function.include">
|
||||||
<title>include (einbinden)</title>
|
<title>include (einbinden)</title>
|
||||||
@@ -3014,23 +3016,16 @@ AUSGABE:
|
|||||||
<programlisting>
|
<programlisting>
|
||||||
|
|
||||||
{* initialisieren *}
|
{* initialisieren *}
|
||||||
{section name=rows loop=$data}
|
{cycle values="#eeeeee,#d0d0d0"}
|
||||||
<tr bgcolor="{cycle values="#eeeeee,#d0d0d0"}">
|
{cycle}
|
||||||
<td>{$data[rows]}</td>
|
{cycle}
|
||||||
</tr>
|
|
||||||
{/section}
|
|
||||||
|
|
||||||
AUSGABE:
|
AUSGABE:
|
||||||
<tr bgcolor="#eeeeee">
|
|
||||||
<td>1</td>
|
#eeeeee
|
||||||
</tr>
|
#d0d0d0
|
||||||
<tr bgcolor="#d0d0d0">
|
#eeeeee</programlisting>
|
||||||
<td>2</td>
|
|
||||||
</tr>
|
|
||||||
<tr bgcolor="#eeeeee">
|
|
||||||
<td>3</td>
|
|
||||||
</tr>
|
|
||||||
</programlisting>
|
|
||||||
</example>
|
</example>
|
||||||
</sect1>
|
</sect1>
|
||||||
<sect1 id="language.function.debug">
|
<sect1 id="language.function.debug">
|
||||||
@@ -3273,55 +3268,60 @@ Bitte geben Sie einen <b>Provinznamen</b> ein.
|
|||||||
<entry>string</entry>
|
<entry>string</entry>
|
||||||
<entry>Nein</entry>
|
<entry>Nein</entry>
|
||||||
<entry><emphasis>checkbox</emphasis></entry>
|
<entry><emphasis>checkbox</emphasis></entry>
|
||||||
<entry>Name der checkbox-Liste</entry>
|
<entry>Name der checkbox Liste</entry>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<entry>werte</entry>
|
<entry>values</entry>
|
||||||
<entry>array</entry>
|
<entry>array</entry>
|
||||||
<entry>Ja, ausser wenn das option-Attribut verwendet wird</entry>
|
<entry>ja, ausser wenn das option Attribut verwendet wird</entry>
|
||||||
<entry><emphasis>n/a</emphasis></entry>
|
<entry><emphasis>n/a</emphasis></entry>
|
||||||
<entry>Ein Array mit Werten für die checkbox-Liste</entry>
|
<entry>ein Array mit Werten für die checkboxes</entry>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<entry>ausgabe</entry>
|
<entry>output</entry>
|
||||||
<entry>array</entry>
|
<entry>array</entry>
|
||||||
<entry>Ja, ausser wenn das option-Attribut verwendet wird</entry>
|
<entry>ja, ausser wenn das option Attribut verwendet wird</entry>
|
||||||
<entry><emphasis>n/a</emphasis></entry>
|
<entry><emphasis>n/a</emphasis></entry>
|
||||||
<entry>Ein Array mit Ausgaben/Namen für die checkbox-Liste</entry>
|
<entry>ein Array mit Werten für checkbox Knöpfe</entry>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<entry>checked</entry>
|
<entry>selected</entry>
|
||||||
<entry>string</entry>
|
<entry>string/array</entry>
|
||||||
<entry>Nein</entry>
|
<entry>No</entry>
|
||||||
<entry><emphasis>empty</emphasis></entry>
|
<entry><emphasis>empty</emphasis></entry>
|
||||||
<entry>Das ausgewählte option-Element</entry>
|
<entry>das/die ausgewählten checkbox Elemente</entry>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<entry>options</entry>
|
<entry>options</entry>
|
||||||
<entry>associative array</entry>
|
<entry>assoziatives array</entry>
|
||||||
<entry>Ja, ausser wert/ausgabe wird verwendet</entry>
|
<entry>Ja, ausser Werte/Ausgabe wird verwendet</entry>
|
||||||
<entry><emphasis>n/a</emphasis></entry>
|
<entry><emphasis>n/a</emphasis></entry>
|
||||||
<entry>Assoziatives Array mit Wert/Ausgabe Paaren</entry>
|
<entry>ein assoziatives Array mit Werten und Ausgaben</entry>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<entry>separator</entry>
|
<entry>separator</entry>
|
||||||
<entry>string</entry>
|
<entry>string</entry>
|
||||||
<entry>Nein</entry>
|
<entry>No</entry>
|
||||||
<entry><emphasis>empty</emphasis></entry>
|
<entry><emphasis>empty</emphasis></entry>
|
||||||
<entry>Zeichenkette die zwischen den checkboxes ausgegeben werden soll</entry>
|
<entry>Zeichenkette die zwischen den checkbox Elementen eingefügt werden soll</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry>labels</entry>
|
||||||
|
<entry>boolean</entry>
|
||||||
|
<entry>No</entry>
|
||||||
|
<entry><emphasis>true</emphasis></entry>
|
||||||
|
<entry>fügt der Ausgabe <label>-Tags hinzu</entry>
|
||||||
</row>
|
</row>
|
||||||
</tbody>
|
</tbody>
|
||||||
</tgroup>
|
</tgroup>
|
||||||
</informaltable>
|
</informaltable>
|
||||||
<para>
|
<para>
|
||||||
html_checkboxes generiert HTML-Checkboxes mit den Übergebenen Werten.
|
html_checkboxes ist eine Funktion die aus den übergebenen Daten html checkbox
|
||||||
Kümmert sich auch darum welches option-Element ausgewählt sein soll.
|
Elemente erstellt und kümmert sich darum welche Elemente ausgewählt sind.
|
||||||
Erforderliche Attribute sind Werte/Ausgabe ausser wenn options verwendet wird.
|
Erforderliche Attribute sind Wert/Ausgabe oder Options. Die Ausgabe ist XHTML kompatibel
|
||||||
Die Ausgabe ist XHTML kompatibel.
|
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
Alle weiteren Parameter, die in der obigen Liste nicht erwähnt werden,
|
Alle Parameter die nicht in der Liste erwähnt werden, werden ausgegeben.
|
||||||
werden als <input>-Tags ausgegeben.
|
|
||||||
</para>
|
</para>
|
||||||
<example>
|
<example>
|
||||||
<title>html_checkboxes</title>
|
<title>html_checkboxes</title>
|
||||||
@@ -3331,8 +3331,7 @@ index.php:
|
|||||||
require('Smarty.php.class');
|
require('Smarty.php.class');
|
||||||
$smarty = new Smarty;
|
$smarty = new Smarty;
|
||||||
$smarty->assign('cust_ids', array(1000,1001,1002,1003));
|
$smarty->assign('cust_ids', array(1000,1001,1002,1003));
|
||||||
$smarty->assign('cust_names', array('Joe Schmoe','Jack Smith','Jane
|
$smarty->assign('cust_names', array('Joe Schmoe','Jack Smith','Jane Johnson','Charlie Brown'));
|
||||||
Johnson','CHarlie Brown'));
|
|
||||||
$smarty->assign('customer_id', 1001);
|
$smarty->assign('customer_id', 1001);
|
||||||
$smarty->display('index.tpl');
|
$smarty->display('index.tpl');
|
||||||
|
|
||||||
@@ -3347,9 +3346,10 @@ index.php:
|
|||||||
require('Smarty.php.class');
|
require('Smarty.php.class');
|
||||||
$smarty = new Smarty;
|
$smarty = new Smarty;
|
||||||
$smarty->assign('cust_checkboxes', array(
|
$smarty->assign('cust_checkboxes', array(
|
||||||
1001 => 'Joe Schmoe',
|
1000 => 'Joe Schmoe',
|
||||||
1002 => 'Jack Smith',
|
1001 => 'Jack Smith',
|
||||||
1003 => 'Jane Johnson','Carlie Brown'));
|
1002 => 'Jane Johnson',
|
||||||
|
1003 => 'Charlie Brown'));
|
||||||
$smarty->assign('customer_id', 1001);
|
$smarty->assign('customer_id', 1001);
|
||||||
$smarty->display('index.tpl');
|
$smarty->display('index.tpl');
|
||||||
|
|
||||||
@@ -3358,12 +3358,12 @@ index.php:
|
|||||||
{html_checkboxes name="id" options=$cust_checkboxes checked=$customer_id separator="<br />"}
|
{html_checkboxes name="id" options=$cust_checkboxes checked=$customer_id separator="<br />"}
|
||||||
|
|
||||||
|
|
||||||
AUSGABE: (Beide Beispiele)
|
AUSGABE: (beider Beispiele)
|
||||||
|
|
||||||
<input type="checkbox" name="id[]" value="1000">Joe Schmoe<br />
|
<label><input type="checkbox" name="checkbox[]" value="1000" />Joe Schmoe</label><br />
|
||||||
<input type="checkbox" name="id[]" value="1001" checked="checked"><br />
|
<label><input type="checkbox" name="checkbox[]" value="1001" checked="checked" />Jack Smith</label><br />
|
||||||
<input type="checkbox" name="id[]" value="1002">Jane Johnson<br />
|
<label><input type="checkbox" name="checkbox[]" value="1002" />Jane Johnson</label><br />
|
||||||
<input type="checkbox" name="id[]" value="1003">Charlie Brown<br /></programlisting>
|
<label><input type="checkbox" name="checkbox[]" value="1003" />Charlie Brown</label><br /></programlisting>
|
||||||
</example>
|
</example>
|
||||||
</sect1>
|
</sect1>
|
||||||
<sect1 id="language.function.html.image">
|
<sect1 id="language.function.html.image">
|
||||||
@@ -3397,59 +3397,65 @@ index.php:
|
|||||||
<entry>string</entry>
|
<entry>string</entry>
|
||||||
<entry>Nein</entry>
|
<entry>Nein</entry>
|
||||||
<entry><emphasis>0</emphasis></entry>
|
<entry><emphasis>0</emphasis></entry>
|
||||||
<entry>Grösse des Rahmens</entry>
|
<entry>Stärke des Rahmens</entry>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<entry>height</entry>
|
<entry>height</entry>
|
||||||
<entry>string</entry>
|
<entry>string</entry>
|
||||||
<entry>Nein</entry>
|
<entry>No</entry>
|
||||||
<entry><emphasis>Bildhöhe</emphasis></entry>
|
<entry><emphasis>Normale Höhe des Bildes</emphasis></entry>
|
||||||
<entry>Darstellungshöhe</entry>
|
<entry>Höhe des Bildes</entry>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<entry>width</entry>
|
<entry>width</entry>
|
||||||
<entry>string</entry>
|
<entry>string</entry>
|
||||||
<entry>Nein</entry>
|
<entry>No</entry>
|
||||||
<entry><emphasis>Bildbreite</emphasis></entry>
|
<entry><emphasis>Normale Breite des Bildes</emphasis></entry>
|
||||||
<entry>Darstellungsbreite</entry>
|
<entry>Breite des Bildes</entry>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<entry>basedir</entry>
|
<entry>basedir</entry>
|
||||||
<entry>string</entry>
|
<entry>string</entry>
|
||||||
<entry>Nein</entry>
|
<entry>no</entry>
|
||||||
<entry><emphasis>DocumentRoot des Webservers</emphasis></entry>
|
<entry><emphasis>web server doc root</emphasis></entry>
|
||||||
<entry>Verzeichnis auf das relative Pfade aufgebaut werden sollen</entry>
|
<entry>directory to base relative paths from</entry>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<entry>link</entry>
|
<entry>alt</entry>
|
||||||
<entry>string</entry>
|
<entry>string</entry>
|
||||||
<entry>Nein</entry>
|
<entry>no</entry>
|
||||||
|
<entry><emphasis>""</emphasis></entry>
|
||||||
|
<entry>Alternative Beschreibung des Bildes</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry>href</entry>
|
||||||
|
<entry>string</entry>
|
||||||
|
<entry>no</entry>
|
||||||
<entry><emphasis>n/a</emphasis></entry>
|
<entry><emphasis>n/a</emphasis></entry>
|
||||||
<entry>href-Ziel auf das das Bild verweisen soll</entry>
|
<entry>href Wert des Tags</entry>
|
||||||
</row>
|
</row>
|
||||||
</tbody>
|
</tbody>
|
||||||
</tgroup>
|
</tgroup>
|
||||||
</informaltable>
|
</informaltable>
|
||||||
<para>
|
<para>
|
||||||
'html_image' generiert ein HTML-Tag f¨r ein Bild. Höhe und Breite
|
html_image ist eine eigene Funktion die ein HTML Tag für ein Bild erzeugt.
|
||||||
werden berechnet falls sie nicht ¨bergeben werden.
|
Die Höhe und Breite der Ausgabe wird automatisch aus der Bilddatei berechnet
|
||||||
|
wenn die Werte nicht übergeben werden.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
'basedir' definiert das Verzeichnis auf welchen relative Pfade aufgebaut
|
basedir ist der Basispfad der für die Verlinkung verwendet werden soll. Wenn kein
|
||||||
werden sollen. Falls nicht ¨bergeben, wird die Umgebungsvariable
|
Wert übergeben wird, wird die Umgebungsvariable DOCUMENT_ROOT verwendet. Wenn Sicherheit
|
||||||
DOCUMENT_ROOT verwendet. Wenn Sicherheit eingeschaltet ist, muss der
|
eingeschaltet ist, muss das Bild in einem sicheren Verzeichnis liegen.
|
||||||
Pfad in einem sicheren Verzeichnis sein.
|
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
Wenn 'link' übergeben wird, wird um das Bild ein <a href="LINKVALUE"><a>
|
<parameter>href</parameter> ist das href Attribut für das Image-Tag. Wenn dieser Wert übergeben wird,
|
||||||
Tag eingefühgt.
|
wird um das Bild ein <a href="LINKVALUE"><a> Tag erzeugt.
|
||||||
</para>
|
</para>
|
||||||
<note>
|
<note>
|
||||||
<title>Technische Bemerkung</title>
|
<title>Technische Bemerkung</title>
|
||||||
<para>
|
<para>
|
||||||
'html_image' verursacht Festplattenzugriffe um die Breite/Höhe des Bildes
|
html_image greift auf das Dateisystem zu um Höhe und Breite zu errechnen. Wenn Sie
|
||||||
zu berechnen. Falls Sie kein 'caching' einsetzen, ist es zu empfehlen, 'html_image'
|
caching nicht verwenden sollten Sie normalerweise auf diese Funktion aus performance Gründen verzichten.
|
||||||
nicht zu verwenden, und stattdessen statische image Tags zu verwenden.
|
|
||||||
</para>
|
</para>
|
||||||
</note>
|
</note>
|
||||||
<example>
|
<example>
|
||||||
@@ -3463,15 +3469,19 @@ index.php:
|
|||||||
|
|
||||||
index.tpl:
|
index.tpl:
|
||||||
|
|
||||||
{image file="pumpkin.jpg"}
|
{html_image file="pumpkin.jpg"}
|
||||||
{image file="/pfad/aus/docroot/pumpkin.jpg"}
|
{html_image file="/path/from/docroot/pumpkin.jpg"}
|
||||||
{image file="../pfad/relativ/zu/aktuellem/verzeichnis/pumpkin.jpg"}
|
{html_image file="../path/relative/to/currdir/pumpkin.jpg"}
|
||||||
|
|
||||||
AUSGABE: (möglich)
|
AUSGABE: (möglich)
|
||||||
|
|
||||||
<img src="pumpkin.jpg" border="0" width="44" height="68">
|
<img src="pumpkin.jpg" alt="" border="0" width="44" height="68" />
|
||||||
<img src="/pfad/aus/docroot/pumpkin.jpg" border="0" width="44" height="68">
|
<img src="/path/from/docroot/pumpkin.jpg" alt="" border="0" width="44" height="68" />
|
||||||
<img src="../pfad/relativ/zu/aktuellem/verzeichnis/pumpkin.jpg" border="0" width="44" height="68"></programlisting>
|
<img src="../path/relative/to/currdir/pumpkin.jpg" alt="" border="0" width="44" height="68" /></programlisting>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</example>
|
</example>
|
||||||
</sect1>
|
</sect1>
|
||||||
<sect1 id="language.function.html.options">
|
<sect1 id="language.function.html.options">
|
||||||
@@ -3512,7 +3522,7 @@ index.php:
|
|||||||
<entry>string</entry>
|
<entry>string</entry>
|
||||||
<entry>Nein</entry>
|
<entry>Nein</entry>
|
||||||
<entry><emphasis>empty</emphasis></entry>
|
<entry><emphasis>empty</emphasis></entry>
|
||||||
<entry>Das ausgewählte Option Element.</entry>
|
<entry>Das ausgewählte Array Element.</entry>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<entry>options</entry>
|
<entry>options</entry>
|
||||||
@@ -3521,13 +3531,6 @@ index.php:
|
|||||||
<entry><emphasis>n/a</emphasis></entry>
|
<entry><emphasis>n/a</emphasis></entry>
|
||||||
<entry>Assoziatives Array mit Werten die ausgegeben werden sollen.</entry>
|
<entry>Assoziatives Array mit Werten die ausgegeben werden sollen.</entry>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
|
||||||
<entry>name</entry>
|
|
||||||
<entry>string</entry>
|
|
||||||
<entry>Nein</entry>
|
|
||||||
<entry><emphasis>empty</emphasis></entry>
|
|
||||||
<entry>Name der select-Gruppe</entry>
|
|
||||||
</row>
|
|
||||||
</tbody>
|
</tbody>
|
||||||
</tgroup>
|
</tgroup>
|
||||||
</informaltable>
|
</informaltable>
|
||||||
@@ -3535,76 +3538,41 @@ index.php:
|
|||||||
'html_options' wird verwendet um HTML-Options Listen mit den übergebenen Daten
|
'html_options' wird verwendet um HTML-Options Listen mit den übergebenen Daten
|
||||||
zu erzeugen. Die Funktion kümmert sich ebenfalls um das setzen des ausgewählten
|
zu erzeugen. Die Funktion kümmert sich ebenfalls um das setzen des ausgewählten
|
||||||
Standardwertes. Die Attribute 'values' und 'output' sind erforderlich,
|
Standardwertes. Die Attribute 'values' und 'output' sind erforderlich,
|
||||||
ausser man verwendet das Attribut 'options'.
|
ausser man verwendet das Attribut 'options'. Wenn ein Wert als Array erkannt wird,
|
||||||
</para>
|
|
||||||
<para>
|
|
||||||
Wenn ein Wert als Array erkannt wird,
|
|
||||||
wird er als HTML-OPTGROUP ausgegeben und die Werte werden in Gruppen dargestellt.
|
wird er als HTML-OPTGROUP ausgegeben und die Werte werden in Gruppen dargestellt.
|
||||||
Rekursion wird unterstützt. Die Ausgabe ist XHTML kompatibel.
|
Rekursion wird unterstützt. Die Ausgabe ist XHTML kompatibel.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
|
||||||
Wenn das optionale <emphasis>name</emphasis> Attribut übergeben wird,
|
|
||||||
umschliesst ein <select name="groupname"></select> Tag die 'options'-Liste.
|
|
||||||
Sonst wird nur die 'options'-Liste generiert.
|
|
||||||
</para>
|
|
||||||
<para>
|
|
||||||
All parameters that are not in the list above are printed as
|
|
||||||
name/value-pairs inside the <select>-tag. They are ignored if
|
|
||||||
the optional <emphasis>name</emphasis> is not given.
|
|
||||||
Alle weiteren Parameter werden innerhalb des <select>-Tags
|
|
||||||
als wert/ausgabe-Paare übergeben. Falls <emphasis>name</emphasis>
|
|
||||||
nicht übergeben wird, werden die Werte ignoriert.
|
|
||||||
</para>
|
|
||||||
<example>
|
<example>
|
||||||
<title>html_options</title>
|
<title>html_options</title>
|
||||||
<programlisting>
|
<programlisting>
|
||||||
index.php:
|
{* nehmen Sie an, dass $cust_ids und $cust_names Arrays mit Werten sind,
|
||||||
|
während $customer_id auch leer sein kann *}
|
||||||
require('Smarty.php.class');
|
|
||||||
$smarty = new Smarty;
|
|
||||||
$smarty->assign('cust_ids', array(1000,1001,1002,1003));
|
|
||||||
$smarty->assign('cust_names', array('Joe Schmoe','Jack Smith','Jane
|
|
||||||
Johnson','Carlie Brown'));
|
|
||||||
$smarty->assign('customer_id', 1001);
|
|
||||||
$smarty->display('index.tpl');
|
|
||||||
|
|
||||||
index.tpl:
|
|
||||||
|
|
||||||
<select name=customer_id>
|
<select name=customer_id>
|
||||||
{html_options values=$cust_ids selected=$customer_id output=$cust_names}
|
{html_options values=$cust_ids selected=$customer_id output=$cust_names}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
index.php:
|
|
||||||
|
|
||||||
require('Smarty.php.class');
|
{* alternativ können die Werte aus 'values' und 'output' als assoziative Arrays
|
||||||
$smarty = new Smarty;
|
an 'options' übergeben werden. $customer_options ist in diesem Beispiel ein assoziatives Array *}
|
||||||
$smarty->assign('cust_options', array(
|
|
||||||
1001 => 'Joe Schmoe',
|
|
||||||
1002 => 'Jack Smith',
|
|
||||||
1003 => 'Jane Johnson',
|
|
||||||
1004 => 'Charlie Brown'));
|
|
||||||
$smarty->assign('customer_id', 1001);
|
|
||||||
$smarty->display('index.tpl');
|
|
||||||
|
|
||||||
index.tpl:
|
|
||||||
|
|
||||||
<select name=customer_id>
|
<select name=customer_id>
|
||||||
{html_options options=$cust_options selected=$customer_id}
|
{html_options options=$customer_options selected=$customer_id}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|
||||||
AUSGABE (beide Beispiele):
|
AUSGABE:
|
||||||
|
|
||||||
<select name=customer_id>
|
<select name=customer_id>
|
||||||
<option value="1000">Joe Schmoe</option>
|
<option value="1000">Joe Schmoe</option>
|
||||||
<option value="1001" selected="selected">Jack Smith</option>
|
<option value="1001" selected="selected">Jack Smith</option>
|
||||||
<option value="1002">Jane Johnson</option>
|
<option value="1002">Jane Johnson</option>
|
||||||
<option value="1003">Charlie Brown</option>
|
<option value="1003">Charlie Brown</option>
|
||||||
</select></programlisting>
|
</select></programlisting>
|
||||||
</example>
|
</example>
|
||||||
</sect1>
|
</sect1>
|
||||||
<sect1 id="language.function.html.radios">
|
<sect1 id="language.function.html.radios">
|
||||||
<title>html_radios</title>
|
<title>html_radios (Ausgabe von HTML-Radio Tags)</title>
|
||||||
<informaltable frame=all>
|
<informaltable frame=all>
|
||||||
<tgroup cols=5>
|
<tgroup cols=5>
|
||||||
<colspec colname=param align=center>
|
<colspec colname=param align=center>
|
||||||
@@ -3627,53 +3595,50 @@ AUSGABE (beide Beispiele):
|
|||||||
<entry>string</entry>
|
<entry>string</entry>
|
||||||
<entry>Nein</entry>
|
<entry>Nein</entry>
|
||||||
<entry><emphasis>radio</emphasis></entry>
|
<entry><emphasis>radio</emphasis></entry>
|
||||||
<entry>name der radio-Liste</entry>
|
<entry>Name der Radio Liste</entry>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<entry>values</entry>
|
<entry>values</entry>
|
||||||
<entry>array</entry>
|
<entry>array</entry>
|
||||||
<entry>Ja, ausser wenn das 'options'-Attribut verwendet wird</entry>
|
<entry>Ja, ausser 'options'-Attribut wird verwendet.</entry>
|
||||||
<entry><emphasis>n/a</emphasis></entry>
|
<entry><emphasis>n/a</emphasis></entry>
|
||||||
<entry>Ein Array mit Werten für die radio-Liste</entry>
|
<entry>Array mit Werten für die dropdown-Liste.</entry>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<entry>output</entry>
|
<entry>output</entry>
|
||||||
<entry>array</entry>
|
<entry>array</entry>
|
||||||
<entry>Ja, ausser wenn das 'options'-Attribut verwendet wird</entry>
|
<entry>Ja, ausser 'options'-Attribut wird verwendet.</entry>
|
||||||
<entry><emphasis>n/a</emphasis></entry>
|
<entry><emphasis>n/a</emphasis></entry>
|
||||||
<entry>Ein Array mit Namen für die radio-Liste</entry>
|
<entry>Arrays mit Namen für die dropdown-Liste.</entry>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<entry>checked</entry>
|
<entry>selected</entry>
|
||||||
<entry>string</entry>
|
<entry>string</entry>
|
||||||
<entry>Nein</entry>
|
<entry>Nein</entry>
|
||||||
<entry><emphasis>empty</emphasis></entry>
|
<entry><emphasis>empty</emphasis></entry>
|
||||||
<entry>Das ausgewählte checkbox-Element</entry>
|
<entry>Das ausgewählte Array Element.</entry>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<entry>options</entry>
|
<entry>options</entry>
|
||||||
<entry>associative array</entry>
|
<entry>associative array</entry>
|
||||||
<entry>Ja, ausser wenn die Attribute 'values' und 'output' verwendet werden</entry>
|
<entry>Ja, ausser wenn das 'values'- und das 'output'-Attribut verwendet werden.</entry>
|
||||||
<entry><emphasis>n/a</emphasis></entry>
|
<entry><emphasis>n/a</emphasis></entry>
|
||||||
<entry>Ein assoziatves Array mit wert/ausgabe Paaren</entry>
|
<entry>Assoziatives Array mit Werten die ausgegeben werden sollen.</entry>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<entry>separator</entry>
|
<entry>separator</entry>
|
||||||
<entry>string</entry>
|
<entry>string</entry>
|
||||||
<entry>Nein</entry>
|
<entry>No</entry>
|
||||||
<entry><emphasis>empty</emphasis></entry>
|
<entry><emphasis>empty</emphasis></entry>
|
||||||
<entry>Zeichenkette die zwischen den radio-Elementen eingefügt werden soll.</entry>
|
<entry>Die Zeichenkette die zwischen 2 Radioelemente eingefügt werden soll.</entry>
|
||||||
</row>
|
</row>
|
||||||
</tbody>
|
</tbody>
|
||||||
</tgroup>
|
</tgroup>
|
||||||
</informaltable>
|
</informaltable>
|
||||||
<para>
|
<para>
|
||||||
'html_radios' generiert eine Liste mit radio-Elementen aus den übergebenen Daten.
|
html_radio ist eine Funktion die aus den übergebenen Daten html radio
|
||||||
Es kümmert sich ebenfalls darum, welches Element ausgewählt sein soll. Erforderliche
|
Elemente erstellt und kümmert sich darum welche Elemente ausgewählt sind.
|
||||||
Attribute sind 'values'/'output', ausser wenn 'options' verwendet wird. Die Ausgabe ist XHTML kompatibel.
|
Erforderliche Attribute sind Wert/Ausgabe oder Options. Die Ausgabe ist XHTML kompatibel
|
||||||
</para>
|
|
||||||
<para>
|
|
||||||
Alle weiteren Parameter werden als <input>-Tags ausgegeben.
|
|
||||||
</para>
|
</para>
|
||||||
<example>
|
<example>
|
||||||
<title>html_radios</title>
|
<title>html_radios</title>
|
||||||
@@ -3683,7 +3648,8 @@ AUSGABE (beide Beispiele):
|
|||||||
require('Smarty.php.class');
|
require('Smarty.php.class');
|
||||||
$smarty = new Smarty;
|
$smarty = new Smarty;
|
||||||
$smarty->assign('cust_ids', array(1000,1001,1002,1003));
|
$smarty->assign('cust_ids', array(1000,1001,1002,1003));
|
||||||
$smarty->assign('cust_names', array('Joe Schmoe','Jack Smith','Jane Johnson','Carlie Brown'));
|
$smarty->assign('cust_names', array('Joe Schmoe','Jack Smith','Jane
|
||||||
|
Johnson','Carlie Brown'));
|
||||||
$smarty->assign('customer_id', 1001);
|
$smarty->assign('customer_id', 1001);
|
||||||
$smarty->display('index.tpl');
|
$smarty->display('index.tpl');
|
||||||
|
|
||||||
@@ -3711,7 +3677,7 @@ AUSGABE (beide Beispiele):
|
|||||||
{html_radios name="id" options=$cust_radios checked=$customer_id separator="<br />"}
|
{html_radios name="id" options=$cust_radios checked=$customer_id separator="<br />"}
|
||||||
|
|
||||||
|
|
||||||
AUSGABE: (beide Beispiele)
|
AUSGABE: (beider Beispiele)
|
||||||
|
|
||||||
<input type="radio" name="id[]" value="1000">Joe Schmoe<br />
|
<input type="radio" name="id[]" value="1000">Joe Schmoe<br />
|
||||||
<input type="radio" name="id[]" value="1001" checked="checked"><br />
|
<input type="radio" name="id[]" value="1001" checked="checked"><br />
|
||||||
@@ -3720,7 +3686,6 @@ AUSGABE (beide Beispiele):
|
|||||||
</example>
|
</example>
|
||||||
</sect1>
|
</sect1>
|
||||||
|
|
||||||
|
|
||||||
<sect1 id="language.function.html.select.date">
|
<sect1 id="language.function.html.select.date">
|
||||||
<title>html_select_date (Ausgabe von Daten als HTML-'options')</title>
|
<title>html_select_date (Ausgabe von Daten als HTML-'options')</title>
|
||||||
<informaltable frame=all>
|
<informaltable frame=all>
|
||||||
@@ -4308,7 +4273,7 @@ AUSGABE:
|
|||||||
<entry>Attribut Name</entry>
|
<entry>Attribut Name</entry>
|
||||||
<entry>Typ</entry>
|
<entry>Typ</entry>
|
||||||
<entry>Erforderlich</entry>
|
<entry>Erforderlich</entry>
|
||||||
<entry>Standardwert</entry>
|
<entry>Standartwert</entry>
|
||||||
<entry>Beschreibung</entry>
|
<entry>Beschreibung</entry>
|
||||||
</row>
|
</row>
|
||||||
</thead>
|
</thead>
|
||||||
@@ -4318,53 +4283,68 @@ AUSGABE:
|
|||||||
<entry>array</entry>
|
<entry>array</entry>
|
||||||
<entry>Ja</entry>
|
<entry>Ja</entry>
|
||||||
<entry><emphasis>n/a</emphasis></entry>
|
<entry><emphasis>n/a</emphasis></entry>
|
||||||
<entry>Array mit den Daten durch die gelooped werden soll.</entry>
|
<entry>Array mit den Daten für den Loop</entry>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<entry>cols</entry>
|
<entry>cols</entry>
|
||||||
<entry>integer</entry>
|
<entry>integer</entry>
|
||||||
<entry>Nein</entry>
|
<entry>Nein</entry>
|
||||||
<entry><emphasis>3</emphasis></entry>
|
<entry><emphasis>3</emphasis></entry>
|
||||||
<entry>Anzahl Spalten in der Tabelle</entry>
|
<entry>Anzahl Reihen in einer Tabelle</entry>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<entry>table_attr</entry>
|
<entry>table_attr</entry>
|
||||||
<entry>string</entry>
|
<entry>string</entry>
|
||||||
<entry>Nein</entry>
|
<entry>No</entry>
|
||||||
<entry><emphasis>border="1"</emphasis></entry>
|
<entry><emphasis>border="1"</emphasis></entry>
|
||||||
<entry>Attribute für table-Tag</entry>
|
<entry>Attribute für das Table-Tag</entry>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<entry>tr_attr</entry>
|
<entry>tr_attr</entry>
|
||||||
<entry>string</entry>
|
<entry>string</entry>
|
||||||
<entry>Nein</entry>
|
<entry>No</entry>
|
||||||
<entry><emphasis>empty</emphasis></entry>
|
<entry><emphasis>empty</emphasis></entry>
|
||||||
<entry>Attribute für tr-Tags (Arrays werden durchlaufen)</entry>
|
<entry>Attribute für das tr-Tag (Arrays werden durchlaufen)</entry>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<entry>td_attr</entry>
|
<entry>td_attr</entry>
|
||||||
<entry>string</entry>
|
<entry>string</entry>
|
||||||
<entry>Nein</entry>
|
<entry>No</entry>
|
||||||
<entry><emphasis>empty</emphasis></entry>
|
<entry><emphasis>empty</emphasis></entry>
|
||||||
<entry>Attribute für td-Tags (Arrays werden durchlaufen)</entry>
|
<entry>Attribute für das tr-Tag (Arrays werden durchlaufen)</entry>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<entry>trailpad</entry>
|
<entry>trailpad</entry>
|
||||||
<entry>string</entry>
|
<entry>string</entry>
|
||||||
<entry>Nein</entry>
|
<entry>No</entry>
|
||||||
<entry><emphasis>&nbsp;</emphasis></entry>
|
<entry><emphasis>&nbsp;</emphasis></entry>
|
||||||
<entry>Werte um leere Zellen auszufüllen</entry>
|
<entry>Wert für leere Zellen</entry>
|
||||||
|
</row>
|
||||||
|
|
||||||
|
<row>
|
||||||
|
<entry>hdir</entry>
|
||||||
|
<entry>string</entry>
|
||||||
|
<entry>No</entry>
|
||||||
|
<entry><emphasis>right</emphasis></entry>
|
||||||
|
<entry>Richtung in der die Zeilen gerendered werden. Mögliche Werte: <emphasis>left</emphasis>/<emphasis>right</emphasis></entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry>vdir</entry>
|
||||||
|
<entry>string</entry>
|
||||||
|
<entry>No</entry>
|
||||||
|
<entry><emphasis>down</emphasis></entry>
|
||||||
|
<entry>Richtung in der die Reihen gerendered werden. Mögliche Werte: <emphasis>up</emphasis>/<emphasis>down</emphasis></entry>
|
||||||
</row>
|
</row>
|
||||||
</tbody>
|
</tbody>
|
||||||
</tgroup>
|
</tgroup>
|
||||||
</informaltable>
|
</informaltable>
|
||||||
<para>
|
<para>
|
||||||
<emphasis>html_table</emphasis> generiert eine Tabelle aus dem
|
<emphasis>html_table</emphasis> ist eine eigene Funktion die einen Array als
|
||||||
übergebenen Array. Das <emphasis>cols</emphasis> Attribut
|
Tabelle ausgibt. Das <emphasis>cols</emphasis> Attribut definiert die Menge
|
||||||
definiert die Anzahl Spalten die generiert werden sollen. <emphasis>table_attr</emphasis>, <emphasis>tr_attr</emphasis>
|
von Reihen die ausgegeben werden sollen. <emphasis>table_attr</emphasis>, <emphasis>tr_attr</emphasis>
|
||||||
und <emphasis>td_attr</emphasis> definiert die Werte die den entsprechenden HTML-Tags als Attribute angehängt werden.
|
und <emphasis>td_attr</emphasis> definieren die Attribute für die HTML Tags. Wenn <emphasis>tr_attr</emphasis>
|
||||||
Wenn <emphasis>tr_attr</emphasis> oder <emphasis>td_attr</emphasis> Arrays sind, werden diese durchlaufen.
|
oder <emphasis>td_attr</emphasis> Arrays sind, werden diese durchlaufen. <emphasis>trailpad</emphasis>
|
||||||
<emphasis>trailpad</emphasis> definiert den Wert der in leere Zellen eingefügt werden soll.
|
wird in leere Zellen eingefügt.
|
||||||
</para>
|
</para>
|
||||||
<example>
|
<example>
|
||||||
<title>html_table</title>
|
<title>html_table</title>
|
||||||
@@ -4380,8 +4360,8 @@ AUSGABE:
|
|||||||
index.tpl:
|
index.tpl:
|
||||||
|
|
||||||
{html_table loop=$data}
|
{html_table loop=$data}
|
||||||
{html_table loop=$data cols=4 table_attrs='border="0"'}
|
{html_table loop=$data cols=4 table_attr='border="0"'}
|
||||||
{html_table loop=$data cols=4 tr_attrs=$tr}
|
{html_table loop=$data cols=4 tr_attr=$tr}
|
||||||
|
|
||||||
AUSGABE:
|
AUSGABE:
|
||||||
|
|
||||||
@@ -4400,7 +4380,6 @@ AUSGABE:
|
|||||||
<tr bgcolor="#dddddd"><td>5</td><td>6</td><td>7</td><td>8</td></tr>
|
<tr bgcolor="#dddddd"><td>5</td><td>6</td><td>7</td><td>8</td></tr>
|
||||||
<tr bgcolor="#eeeeee"><td>9</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
|
<tr bgcolor="#eeeeee"><td>9</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
|
||||||
</table></programlisting>
|
</table></programlisting>
|
||||||
|
|
||||||
</example>
|
</example>
|
||||||
</sect1>
|
</sect1>
|
||||||
<sect1 id="language.function.math">
|
<sect1 id="language.function.math">
|
||||||
|
@@ -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,86 +110,98 @@ 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
|
||||||
|
// Danach sollte folgendes Funktionieren.
|
||||||
require('Smarty.class.php');
|
require('Smarty.class.php');
|
||||||
$smarty = new Smarty;</screen>
|
$smarty = new Smarty;</screen>
|
||||||
</example>
|
</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
|
||||||
@@ -172,6 +209,7 @@ $smarty = new Smarty;</screen>
|
|||||||
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
|
// alle zugewiesenen Template-Variablen extrahieren
|
||||||
$tpl_vars = $smarty->get_template_vars();
|
$tpl_vars = $smarty->get_template_vars();
|
||||||
|
|
||||||
|
|
||||||
// Anschauen
|
// Anschauen
|
||||||
print_r($tpl_vars);</programlisting>
|
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,19 +1099,42 @@
|
|||||||
// 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>
|
||||||
|
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.postfilter">
|
<sect1 id="api.register.postfilter">
|
||||||
@@ -1123,7 +1142,7 @@
|
|||||||
<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