mirror of
https://github.com/smarty-php/smarty.git
synced 2025-08-04 18:34:27 +02:00
commit german 2.5.0 docs
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
<!-- Smarty German Documentation Port -->
|
<!-- Smarty German Documentation Port -->
|
||||||
<!-- designers.sgml,v 1.7 2003/01/10 15:52:52 dexxter Exp -->
|
<!-- $Id$ -->
|
||||||
<!-- dexxter -->
|
<!-- $Author$ -->
|
||||||
<!-- 1.7 -->
|
<!-- $Version$ -->
|
||||||
<part id="smarty.for.designers">
|
<part id="smarty.for.designers">
|
||||||
<title>Smarty für Template Designer</title>
|
<title>Smarty für Template Designer</title>
|
||||||
|
|
||||||
@@ -111,6 +111,36 @@
|
|||||||
</example>
|
</example>
|
||||||
</sect1>
|
</sect1>
|
||||||
|
|
||||||
|
<sect1 id="language.syntax.quotes">
|
||||||
|
<title>Variablen in doppelten Anführungszeichen</title>
|
||||||
|
<para>
|
||||||
|
Smarty will recognize assigned variables embedded in double quotes so long
|
||||||
|
as the variables contain only numbers, letters, underscores and brackets
|
||||||
|
[]. With any other characters (period, object reference, etc.) the variable
|
||||||
|
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>
|
||||||
|
<example>
|
||||||
|
<title>Anführungszeichen Syntax</title>
|
||||||
|
<programlisting>
|
||||||
|
Syntax Beispiele:
|
||||||
|
{func var="test $foo test"} <-- sieht $foo
|
||||||
|
{func var="test $foo_bar test"} <-- sieht $foo_bar
|
||||||
|
{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 (not $foo.bar)
|
||||||
|
{func var="test `$foo.bar` test"} <-- sieht $foo.bar
|
||||||
|
|
||||||
|
Anwendungsbeispiele:
|
||||||
|
{include file="subdir/$tpl_name.tpl"} <-- $tpl_name wird durch den Wert ersetzt
|
||||||
|
{cycle values="one,two,`$smarty.config.myval`"} <-- muss Backticks enthalten</programlisting>
|
||||||
|
</example>
|
||||||
|
</sect1>
|
||||||
|
|
||||||
|
|
||||||
</chapter>
|
</chapter>
|
||||||
|
|
||||||
<chapter id="language.variables">
|
<chapter id="language.variables">
|
||||||
@@ -216,12 +246,25 @@ 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).
|
umschliessenden '#'-Zeichen (Raute), oder der Smarty Variable <link linkend="language.variables.smarty.config">$smarty.config</link>.
|
||||||
|
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#}">
|
||||||
@@ -233,7 +276,42 @@ email: zaphod@slartibartfast.com<br></programlisting>
|
|||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
</body>
|
</body>
|
||||||
</html></programlisting>
|
</html>
|
||||||
|
|
||||||
|
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,
|
||||||
@@ -309,6 +387,16 @@ email: zaphod@slartibartfast.com<br></programlisting>
|
|||||||
</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>
|
||||||
@@ -389,6 +477,57 @@ AUSGABE:
|
|||||||
72</programlisting>
|
72</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>
|
||||||
@@ -788,6 +927,30 @@ 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">
|
||||||
@@ -2851,16 +3014,23 @@ AUSGABE:
|
|||||||
<programlisting>
|
<programlisting>
|
||||||
|
|
||||||
{* initialisieren *}
|
{* initialisieren *}
|
||||||
{cycle values="#eeeeee,#d0d0d0"}
|
{section name=rows loop=$data}
|
||||||
{cycle}
|
<tr bgcolor="{cycle values="#eeeeee,#d0d0d0"}">
|
||||||
{cycle}
|
<td>{$data[rows]}</td>
|
||||||
|
</tr>
|
||||||
|
{/section}
|
||||||
|
|
||||||
AUSGABE:
|
AUSGABE:
|
||||||
|
<tr bgcolor="#eeeeee">
|
||||||
#eeeeee
|
<td>1</td>
|
||||||
#d0d0d0
|
</tr>
|
||||||
#eeeeee</programlisting>
|
<tr bgcolor="#d0d0d0">
|
||||||
|
<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">
|
||||||
@@ -3077,6 +3247,231 @@ Bitte geben Sie einen <b>Provinznamen</b> ein.
|
|||||||
{if $weather ne ""}
|
{if $weather ne ""}
|
||||||
<b>{$weather}</b>
|
<b>{$weather}</b>
|
||||||
{/if}</programlisting>
|
{/if}</programlisting>
|
||||||
|
</example>
|
||||||
|
</sect1>
|
||||||
|
<sect1 id="language.function.html.checkboxes">
|
||||||
|
<title>html_checkboxes</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>Erforderlich</entry>
|
||||||
|
<entry>Standardwert</entry>
|
||||||
|
<entry>Beschreibung</entry>
|
||||||
|
</row>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<row>
|
||||||
|
<entry>name</entry>
|
||||||
|
<entry>string</entry>
|
||||||
|
<entry>Nein</entry>
|
||||||
|
<entry><emphasis>checkbox</emphasis></entry>
|
||||||
|
<entry>Name der checkbox-Liste</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry>werte</entry>
|
||||||
|
<entry>array</entry>
|
||||||
|
<entry>Ja, ausser wenn das option-Attribut verwendet wird</entry>
|
||||||
|
<entry><emphasis>n/a</emphasis></entry>
|
||||||
|
<entry>Ein Array mit Werten für die checkbox-Liste</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry>ausgabe</entry>
|
||||||
|
<entry>array</entry>
|
||||||
|
<entry>Ja, ausser wenn das option-Attribut verwendet wird</entry>
|
||||||
|
<entry><emphasis>n/a</emphasis></entry>
|
||||||
|
<entry>Ein Array mit Ausgaben/Namen für die checkbox-Liste</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry>checked</entry>
|
||||||
|
<entry>string</entry>
|
||||||
|
<entry>Nein</entry>
|
||||||
|
<entry><emphasis>empty</emphasis></entry>
|
||||||
|
<entry>Das ausgewählte option-Element</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry>options</entry>
|
||||||
|
<entry>associative array</entry>
|
||||||
|
<entry>Ja, ausser wert/ausgabe wird verwendet</entry>
|
||||||
|
<entry><emphasis>n/a</emphasis></entry>
|
||||||
|
<entry>Assoziatives Array mit Wert/Ausgabe Paaren</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry>separator</entry>
|
||||||
|
<entry>string</entry>
|
||||||
|
<entry>Nein</entry>
|
||||||
|
<entry><emphasis>empty</emphasis></entry>
|
||||||
|
<entry>Zeichenkette die zwischen den checkboxes ausgegeben werden soll</entry>
|
||||||
|
</row>
|
||||||
|
</tbody>
|
||||||
|
</tgroup>
|
||||||
|
</informaltable>
|
||||||
|
<para>
|
||||||
|
html_checkboxes generiert HTML-Checkboxes mit den Übergebenen Werten.
|
||||||
|
Kümmert sich auch darum welches option-Element ausgewählt sein soll.
|
||||||
|
Erforderliche Attribute sind Werte/Ausgabe ausser wenn options verwendet wird.
|
||||||
|
Die Ausgabe ist XHTML kompatibel.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Alle weiteren Parameter, die in der obigen Liste nicht erwähnt werden,
|
||||||
|
werden als <input>-Tags ausgegeben.
|
||||||
|
</para>
|
||||||
|
<example>
|
||||||
|
<title>html_checkboxes</title>
|
||||||
|
<programlisting>
|
||||||
|
index.php:
|
||||||
|
|
||||||
|
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','CHarlie Brown'));
|
||||||
|
$smarty->assign('customer_id', 1001);
|
||||||
|
$smarty->display('index.tpl');
|
||||||
|
|
||||||
|
|
||||||
|
index.tpl:
|
||||||
|
|
||||||
|
{html_checkboxes values=$cust_ids checked=$customer_id output=$cust_names separator="<br />"}
|
||||||
|
|
||||||
|
|
||||||
|
index.php:
|
||||||
|
|
||||||
|
require('Smarty.php.class');
|
||||||
|
$smarty = new Smarty;
|
||||||
|
$smarty->assign('cust_checkboxes', array(
|
||||||
|
1001 => 'Joe Schmoe',
|
||||||
|
1002 => 'Jack Smith',
|
||||||
|
1003 => 'Jane Johnson','Carlie Brown'));
|
||||||
|
$smarty->assign('customer_id', 1001);
|
||||||
|
$smarty->display('index.tpl');
|
||||||
|
|
||||||
|
index.tpl:
|
||||||
|
|
||||||
|
{html_checkboxes name="id" checkboxes=$cust_checkboxes checked=$customer_id separator="<br />"}
|
||||||
|
|
||||||
|
|
||||||
|
AUSGABE: (Beide Beispiele)
|
||||||
|
|
||||||
|
<input type="checkbox" name="id[]" value="1000">Joe Schmoe<br />
|
||||||
|
<input type="checkbox" name="id[]" value="1001" checked="checked"><br />
|
||||||
|
<input type="checkbox" name="id[]" value="1002">Jane Johnson<br />
|
||||||
|
<input type="checkbox" name="id[]" value="1003">Charlie Brown<br /></programlisting>
|
||||||
|
</example>
|
||||||
|
</sect1>
|
||||||
|
<sect1 id="language.function.html.image">
|
||||||
|
<title>html_image</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>Erforderlich</entry>
|
||||||
|
<entry>Standardwert</entry>
|
||||||
|
<entry>Beschreibung</entry>
|
||||||
|
</row>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<row>
|
||||||
|
<entry>file</entry>
|
||||||
|
<entry>string</entry>
|
||||||
|
<entry>Ja</entry>
|
||||||
|
<entry><emphasis>n/a</emphasis></entry>
|
||||||
|
<entry>Name/Pfad zum Bild</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry>border</entry>
|
||||||
|
<entry>string</entry>
|
||||||
|
<entry>Nein</entry>
|
||||||
|
<entry><emphasis>0</emphasis></entry>
|
||||||
|
<entry>Grösse des Rahmens</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry>height</entry>
|
||||||
|
<entry>string</entry>
|
||||||
|
<entry>Nein</entry>
|
||||||
|
<entry><emphasis>Bildhöhe</emphasis></entry>
|
||||||
|
<entry>Darstellungshöhe</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry>width</entry>
|
||||||
|
<entry>string</entry>
|
||||||
|
<entry>Nein</entry>
|
||||||
|
<entry><emphasis>Bildbreite</emphasis></entry>
|
||||||
|
<entry>Darstellungsbreite</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry>basedir</entry>
|
||||||
|
<entry>string</entry>
|
||||||
|
<entry>Nein</entry>
|
||||||
|
<entry><emphasis>DocumentRoot des Webservers</emphasis></entry>
|
||||||
|
<entry>Verzeichnis auf das relative Pfade aufgebaut werden sollen</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry>link</entry>
|
||||||
|
<entry>string</entry>
|
||||||
|
<entry>Nein</entry>
|
||||||
|
<entry><emphasis>n/a</emphasis></entry>
|
||||||
|
<entry>href-Ziel auf das das Bild verweisen soll</entry>
|
||||||
|
</row>
|
||||||
|
</tbody>
|
||||||
|
</tgroup>
|
||||||
|
</informaltable>
|
||||||
|
<para>
|
||||||
|
'html_image' generiert ein HTML-Tag f¨r ein Bild. Höhe und Breite
|
||||||
|
werden berechnet falls sie nicht ¨bergeben werden.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
'basedir' definiert das Verzeichnis auf welchen relative Pfade aufgebaut
|
||||||
|
werden sollen. Falls nicht ¨bergeben, wird die Umgebungsvariable
|
||||||
|
DOCUMENT_ROOT verwendet. Wenn Sicherheit eingeschaltet ist, muss der
|
||||||
|
Pfad in einem sicheren Verzeichnis sein.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Wenn 'link' übergeben wird, wird um das Bild ein <a href="LINKVALUE"><a>
|
||||||
|
Tag eingefühgt.
|
||||||
|
</para>
|
||||||
|
<note>
|
||||||
|
<title>Technische Bemerkung</title>
|
||||||
|
<para>
|
||||||
|
'html_image' verursacht Festplattenzugriffe um die Breite/Höhe des Bildes
|
||||||
|
zu berechnen. Falls Sie 'caching' einsetzen, ist es zu empfehlen, 'html_image'
|
||||||
|
nicht zu verwenden, und stattdessen statische image Tags zu verwenden.
|
||||||
|
</para>
|
||||||
|
</note>
|
||||||
|
<example>
|
||||||
|
<title>html_image</title>
|
||||||
|
<programlisting>
|
||||||
|
index.php:
|
||||||
|
|
||||||
|
require('Smarty.php.class');
|
||||||
|
$smarty = new Smarty;
|
||||||
|
$smarty->display('index.tpl');
|
||||||
|
|
||||||
|
index.tpl:
|
||||||
|
|
||||||
|
{image file="pumpkin.jpg"}
|
||||||
|
{image file="/pfad/aus/docroot/pumpkin.jpg"}
|
||||||
|
{image file="../pfad/relativ/zu/aktuellem/verzeichnis/pumpkin.jpg"}
|
||||||
|
|
||||||
|
AUSGABE: (möglich)
|
||||||
|
|
||||||
|
<img src="pumpkin.jpg" border="0" width="44" height="68">
|
||||||
|
<img src="/pfad/aus/docroot/pumpkin.jpg" border="0" width="44" height="68">
|
||||||
|
<img src="../pfad/relativ/zu/aktuellem/verzeichnis/pumpkin.jpg" border="0" width="44" height="68"></programlisting>
|
||||||
</example>
|
</example>
|
||||||
</sect1>
|
</sect1>
|
||||||
<sect1 id="language.function.html.options">
|
<sect1 id="language.function.html.options">
|
||||||
@@ -3117,7 +3512,7 @@ Bitte geben Sie einen <b>Provinznamen</b> ein.
|
|||||||
<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 Array Element.</entry>
|
<entry>Das ausgewählte Option Element.</entry>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<entry>options</entry>
|
<entry>options</entry>
|
||||||
@@ -3126,6 +3521,13 @@ Bitte geben Sie einen <b>Provinznamen</b> ein.
|
|||||||
<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>
|
||||||
@@ -3133,39 +3535,192 @@ Bitte geben Sie einen <b>Provinznamen</b> ein.
|
|||||||
'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'. Wenn ein Wert als Array erkannt wird,
|
ausser man verwendet das Attribut 'options'.
|
||||||
|
</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>
|
||||||
{* nehmen Sie an, dass $cust_ids und $cust_names Arrays mit Werten sind,
|
index.php:
|
||||||
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:
|
||||||
|
|
||||||
{* alternativ können die Werte aus 'values' und 'output' als assoziative Arrays
|
require('Smarty.php.class');
|
||||||
an 'options' übergeben werden. $customer_options ist in diesem Beispiel ein assoziatives Array *}
|
$smarty = new Smarty;
|
||||||
|
$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=$customer_options selected=$customer_id}
|
{html_options options=$cust_options selected=$customer_id}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|
||||||
AUSGABE:
|
AUSGABE (beide Beispiele):
|
||||||
|
|
||||||
<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">
|
||||||
|
<title>html_radios</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>Erforderlich</entry>
|
||||||
|
<entry>Standardwert</entry>
|
||||||
|
<entry>Beschreibung</entry>
|
||||||
|
</row>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<row>
|
||||||
|
<entry>name</entry>
|
||||||
|
<entry>string</entry>
|
||||||
|
<entry>Nein</entry>
|
||||||
|
<entry><emphasis>radio</emphasis></entry>
|
||||||
|
<entry>name der radio-Liste</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry>values</entry>
|
||||||
|
<entry>array</entry>
|
||||||
|
<entry>Ja, ausser wenn das 'options'-Attribut verwendet wird</entry>
|
||||||
|
<entry><emphasis>n/a</emphasis></entry>
|
||||||
|
<entry>Ein Array mit Werten für die radio-Liste</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry>output</entry>
|
||||||
|
<entry>array</entry>
|
||||||
|
<entry>Ja, ausser wenn das 'options'-Attribut verwendet wird</entry>
|
||||||
|
<entry><emphasis>n/a</emphasis></entry>
|
||||||
|
<entry>Ein Array mit Namen für die radio-Liste</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry>checked</entry>
|
||||||
|
<entry>string</entry>
|
||||||
|
<entry>Nein</entry>
|
||||||
|
<entry><emphasis>empty</emphasis></entry>
|
||||||
|
<entry>Das ausgewählte checkbox-Element</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry>options</entry>
|
||||||
|
<entry>associative array</entry>
|
||||||
|
<entry>Ja, ausser wenn die Attribute 'values' und 'output' verwendet werden</entry>
|
||||||
|
<entry><emphasis>n/a</emphasis></entry>
|
||||||
|
<entry>Ein assoziatves Array mit wert/ausgabe Paaren</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry>separator</entry>
|
||||||
|
<entry>string</entry>
|
||||||
|
<entry>Nein</entry>
|
||||||
|
<entry><emphasis>empty</emphasis></entry>
|
||||||
|
<entry>Zeichenkette die zwischen den radio-Elementen eingefügt werden soll.</entry>
|
||||||
|
</row>
|
||||||
|
</tbody>
|
||||||
|
</tgroup>
|
||||||
|
</informaltable>
|
||||||
|
<para>
|
||||||
|
'html_radios' generiert eine Liste mit radio-Elementen aus den übergebenen Daten.
|
||||||
|
Es kümmert sich ebenfalls darum, welches Element ausgewählt sein soll. Erforderliche
|
||||||
|
Attribute sind 'values'/'output', ausser wenn 'options' verwendet wird. Die Ausgabe ist XHTML kompatibel.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Alle weiteren Parameter werden als <input>-Tags ausgegeben.
|
||||||
|
</para>
|
||||||
|
<example>
|
||||||
|
<title>html_radios</title>
|
||||||
|
<programlisting>
|
||||||
|
index.php:
|
||||||
|
|
||||||
|
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:
|
||||||
|
|
||||||
|
{html_radios values=$cust_ids checked=$customer_id output=$cust_names separator="<br />"}
|
||||||
|
|
||||||
|
|
||||||
|
index.php:
|
||||||
|
|
||||||
|
require('Smarty.php.class');
|
||||||
|
$smarty = new Smarty;
|
||||||
|
$smarty->assign('cust_radios', array(
|
||||||
|
1001 => 'Joe Schmoe',
|
||||||
|
1002 => 'Jack Smith',
|
||||||
|
1003 => 'Jane Johnson',
|
||||||
|
1004 => 'Charlie Brown'));
|
||||||
|
$smarty->assign('customer_id', 1001);
|
||||||
|
$smarty->display('index.tpl');
|
||||||
|
|
||||||
|
|
||||||
|
index.tpl:
|
||||||
|
|
||||||
|
{html_radios name="id" radios=$cust_radios checked=$customer_id separator="<br />"}
|
||||||
|
|
||||||
|
|
||||||
|
AUSGABE: (beide Beispiele)
|
||||||
|
|
||||||
|
<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="1002">Jane Johnson<br />
|
||||||
|
<input type="radio" name="id[]" value="1003">Charlie Brown<br /></programlisting>
|
||||||
|
</example>
|
||||||
|
</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>
|
||||||
@@ -3737,6 +4292,115 @@ AUSGABE:
|
|||||||
<option value="am" selected>AM</option>
|
<option value="am" selected>AM</option>
|
||||||
<option value="pm">PM</option>
|
<option value="pm">PM</option>
|
||||||
</select></programlisting>
|
</select></programlisting>
|
||||||
|
</example>
|
||||||
|
</sect1>
|
||||||
|
<sect1 id="language.function.html.table">
|
||||||
|
<title>html_table</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>Erforderlich</entry>
|
||||||
|
<entry>Standardwert</entry>
|
||||||
|
<entry>Beschreibung</entry>
|
||||||
|
</row>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<row>
|
||||||
|
<entry>loop</entry>
|
||||||
|
<entry>array</entry>
|
||||||
|
<entry>Ja</entry>
|
||||||
|
<entry><emphasis>n/a</emphasis></entry>
|
||||||
|
<entry>Array mit den Daten durch die gelooped werden soll.</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry>cols</entry>
|
||||||
|
<entry>integer</entry>
|
||||||
|
<entry>Nein</entry>
|
||||||
|
<entry><emphasis>3</emphasis></entry>
|
||||||
|
<entry>Anzahl Spalten in der Tabelle</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry>table_attr</entry>
|
||||||
|
<entry>string</entry>
|
||||||
|
<entry>Nein</entry>
|
||||||
|
<entry><emphasis>border="1"</emphasis></entry>
|
||||||
|
<entry>Attribute für table-Tag</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry>tr_attr</entry>
|
||||||
|
<entry>string</entry>
|
||||||
|
<entry>Nein</entry>
|
||||||
|
<entry><emphasis>empty</emphasis></entry>
|
||||||
|
<entry>Attribute für tr-Tags (Arrays werden durchlaufen)</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry>td_attr</entry>
|
||||||
|
<entry>string</entry>
|
||||||
|
<entry>Nein</entry>
|
||||||
|
<entry><emphasis>empty</emphasis></entry>
|
||||||
|
<entry>Attribute für td-Tags (Arrays werden durchlaufen)</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry>trailpad</entry>
|
||||||
|
<entry>string</entry>
|
||||||
|
<entry>Nein</entry>
|
||||||
|
<entry><emphasis>&nbsp;</emphasis></entry>
|
||||||
|
<entry>Werte um leere Zellen auszufüllen</entry>
|
||||||
|
</row>
|
||||||
|
</tbody>
|
||||||
|
</tgroup>
|
||||||
|
</informaltable>
|
||||||
|
<para>
|
||||||
|
<emphasis>html_table</emphasis> generiert eine Tabelle aus dem
|
||||||
|
übergebenen Array. Das <emphasis>cols</emphasis> Attribut
|
||||||
|
definiert die Anzahl Spalten die generiert 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.
|
||||||
|
Wenn <emphasis>tr_attr</emphasis> oder <emphasis>td_attr</emphasis> Arrays sind, werden diese durchlaufen.
|
||||||
|
<emphasis>trailpad</emphasis> definiert den Wert der in leere Zellen eingefügt werden soll.
|
||||||
|
</para>
|
||||||
|
<example>
|
||||||
|
<title>html_table</title>
|
||||||
|
<programlisting>
|
||||||
|
index.php:
|
||||||
|
|
||||||
|
require('Smarty.php.class');
|
||||||
|
$smarty = new Smarty;
|
||||||
|
$smarty->assign('data',array(1,2,3,4,5,6,7,8,9));
|
||||||
|
$smarty->assign('tr',array('bgcolor="#eeeeee"','bgcolor="#dddddd"'));
|
||||||
|
$smarty->display('index.tpl');
|
||||||
|
|
||||||
|
index.tpl:
|
||||||
|
|
||||||
|
{html_table loop=$data}
|
||||||
|
{html_table loop=$data cols=4 table_attrs='border="0"'}
|
||||||
|
{html_table loop=$data cols=4 tr_attrs=$tr}
|
||||||
|
|
||||||
|
AUSGABE:
|
||||||
|
|
||||||
|
<table border="1">
|
||||||
|
<tr><td>1</td><td>2</td><td>3</td></tr>
|
||||||
|
<tr><td>4</td><td>5</td><td>6</td></tr>
|
||||||
|
<tr><td>7</td><td>8</td><td>9</td></tr>
|
||||||
|
</table>
|
||||||
|
<table border="0">
|
||||||
|
<tr><td>1</td><td>2</td><td>3</td><td>4</td></tr>
|
||||||
|
<tr><td>5</td><td>6</td><td>7</td><td>8</td></tr>
|
||||||
|
<tr><td>9</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>
|
||||||
|
</table>
|
||||||
|
<table border="1">
|
||||||
|
<tr bgcolor="#eeeeee"><td>1</td><td>2</td><td>3</td><td>4</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>
|
||||||
|
</table></programlisting>
|
||||||
|
|
||||||
</example>
|
</example>
|
||||||
</sect1>
|
</sect1>
|
||||||
<sect1 id="language.function.math">
|
<sect1 id="language.function.math">
|
||||||
|
@@ -72,36 +72,11 @@
|
|||||||
|
|
||||||
<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>
|
||||||
Dieser Leitfaden geht davon aus, dass Sie Ihr Webserver- und PHP-Setup kennen
|
Installieren Sie die Smarty Library Dateien aus dem /libs/ Verzeichnis
|
||||||
und mit den Namenskonventionen für Dateien und Verzeichnisse Ihres Betriebssystems
|
der Distribution. Diese PHP Dateien sollten NICHT angepasst werden. Sie
|
||||||
vertraut sind. Im Folgenden wird ein Unix-Dateisystem verwendet, stellen Sie also
|
werden zwischen den verschieden Applikationen die Smarty verwenden geteilt.
|
||||||
sicher, dass sie die für Ihr Betriebssystem nötigen Änderungen vornehmen.
|
Diese Dateien werden bei einem upgrade ersetzt.
|
||||||
</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>
|
||||||
@@ -114,10 +89,12 @@ debug.tpl
|
|||||||
</example>
|
</example>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Sie können diese Dateien entweder in Ihrem PHP-'include_path' oder
|
Smarty verwendet eine PHP Konstante namens <link linkend="constant.smarty.dir">SMARTY_DIR</link>
|
||||||
auch in irgend einem anderen Verzeichnis ablegen, solange die Konstante
|
die den Systempfad zu den Library Dateien enthält. Wenn Ihre Applikation keine
|
||||||
<link linkend="constant.smarty.dir">SMARTY_DIR</link> auf den korrekten
|
Probleme hat die Library Dateien zu finden, müssen Sie diese Konstante nicht zuweisen,
|
||||||
Pfad zeigt. Im Folgenden werden Beispiele für beide Fälle aufgezeigt.
|
und Smarty wird alle benötigten Dateien finden. Falls <emphasis>Smarty.class.php</emphasis>
|
||||||
|
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:
|
||||||
@@ -131,14 +108,28 @@ $smarty = new Smarty;</screen>
|
|||||||
</example>
|
</example>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Wenn sich die Dateien ausserhalb des PHP-'include_path' befinden,
|
Versuchen Sie das oben gezeigte Script auszuführen. Wenn Sie einen Fehler erhalten ('<emphasis>Smarty.class.php</emphasis> file could not be found'),
|
||||||
muss die Konstante <link linkend="constant.smarty.dir">SMARTY_DIR</link>
|
müssen Sie wie folgt vorgehen:
|
||||||
auf den absoluten Pfad zeigen und mit einem '/' enden. Nehmen wir an,
|
|
||||||
die Library-Dateien befinden sich in '/usr/local/lib/php/Smarty/':
|
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<example>
|
<example>
|
||||||
<title>Instanz von Smarty aus SMARTY_DIR erstellen:</title>
|
<title>Übergeben Sie den vollen Pfad</title>
|
||||||
|
<screen>
|
||||||
|
require('/usr/local/lib/php/Smarty/Smarty.class.php');
|
||||||
|
$smarty = new Smarty;</screen>
|
||||||
|
</example>
|
||||||
|
|
||||||
|
<example>
|
||||||
|
<title>Fügen Sie den Library Pfad Ihrem PHP-'include_path' hinzu</title>
|
||||||
|
<screen>
|
||||||
|
// Editieren Sie die php.ini Datei und fügen Sie den Library Pfad Ihrem PHP-'include_path' hinzu
|
||||||
|
// Danach sollte folgendes funktionieren.
|
||||||
|
require('Smarty.class.php');
|
||||||
|
$smarty = new Smarty;</screen>
|
||||||
|
</example>
|
||||||
|
|
||||||
|
<example>
|
||||||
|
<title>Setzen Sie SMARTY_DIR manuell</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');
|
||||||
@@ -147,43 +138,33 @@ $smarty = new Smarty;</screen>
|
|||||||
|
|
||||||
<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.
|
Zeit, die Smarty Verzeichnisse zu erstellen. Smarty benötigt 4 Verzeichnisse
|
||||||
|
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>
|
||||||
Für unser Beispiel werden wir die Smarty Umgebung für eine
|
Stellen Sie sicher dass Sie die DocumentRoot Ihres Webservers kennen.
|
||||||
Gästebuch-Applikation konfigurieren. Wir verwenden den Applikationsnamen
|
In unserem Beispiel verwenden wir "/web/www.mydomain.com/docs/". Alle
|
||||||
nur, um die Verzeichnis-Struktur zu verdeutlichen. Sie können die selbe
|
Smarty-Verzeichnisse werden immer nur von Smarty aufgerufen, nie vom Browser
|
||||||
Umgebung für alle Ihre Applikationen verwenden indem Sie 'guestbook'
|
direkt. Deshalb wird empfohlen diese Verzeichnisse <emphasis>ausserhalb</emphasis>
|
||||||
durch dem Namen Ihrer Applikation ersetzen.
|
der DocumentRoot einzurichten.
|
||||||
</para>
|
|
||||||
<para>
|
|
||||||
Stellen Sie sicher, dass Sie die DocumentRoot Ihres Webservers kennen.
|
|
||||||
In unserem Beispiel lautet sie '/web/www.domain.com/docs/'.
|
|
||||||
</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>
|
</para>
|
||||||
|
|
||||||
<note>
|
|
||||||
<title>Technische Bemerkung</title>
|
|
||||||
<para>
|
<para>
|
||||||
Wir empfehlen, diese Verzeichnisse ausserhalb der DocumentRoot anzulegen,
|
Für unser installations-Beispiel werden wir die Umgebung für eine
|
||||||
um mögliche Direktzugriffe zu verhindern.
|
Gästebuchapplikation einrichten. Wir verwenden dies nur als Beispiel,
|
||||||
</para>
|
falls Sie ihre eigene Applikationsumgebung einrichten, ersetzen sie '/guestbook/'
|
||||||
</note>
|
einfach durch den Namen Ihrer eigener Applikation. Unsere Dateien werden unter
|
||||||
|
"/web/www.mydomain.com/smarty/guestbook/" abgelegt.
|
||||||
|
|
||||||
|
</para>
|
||||||
<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
|
||||||
@@ -191,7 +172,6 @@ $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:
|
||||||
@@ -214,16 +194,6 @@ $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')
|
||||||
@@ -282,14 +252,17 @@ 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>
|
||||||
|
|
||||||
define('SMARTY_DIR','/usr/local/lib/php/Smarty/');
|
// Smarty laden
|
||||||
require(SMARTY_DIR.'Smarty.class.php');
|
require('Smarty.class.php');
|
||||||
|
|
||||||
$smarty = new Smarty;
|
$smarty = new Smarty;
|
||||||
|
|
||||||
@@ -333,7 +306,8 @@ $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.
|
erstellen und eine Datei namens 'setup.php' darin anlegen. In unserem Beispiel ist '/php/includes'
|
||||||
|
im PHP-'include_path'. Stellen Sie sicher dass das auch bei Ihnen der Fall ist, oder benutzen Sie absolute Pfadnamen.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<example>
|
<example>
|
||||||
@@ -341,10 +315,9 @@ $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');
|
||||||
|
|
||||||
// ein guter Platz um Applikations spezifische Libraries zu laden
|
// steup.php ist auch 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 {
|
||||||
@@ -368,18 +341,6 @@ 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.0</edition>
|
<edition>Version 2.5</edition>
|
||||||
<copyright>
|
<copyright>
|
||||||
<year>2001</year>
|
<year>2001</year>
|
||||||
<year>2002</year>
|
<year>2002</year>
|
||||||
|
@@ -390,20 +390,6 @@
|
|||||||
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>
|
||||||
@@ -461,12 +447,27 @@
|
|||||||
<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.
|
die mehrere Namen/Wert-Paare enthalten, übergeben. Wenn Sie als dritten Parameter
|
||||||
|
'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>
|
||||||
@@ -487,20 +488,27 @@
|
|||||||
<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. Konsultieren Sie das PHP-Manual zum Thema 'variable referencing'
|
anzuhängen. Wenn Sie eine Variable via Referenz anhängen und sie nachträglich
|
||||||
für weitere Erklärungen.
|
geändert wird, wird auch der angehängte Wert geändert. Bei Objekten kann so
|
||||||
|
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>
|
||||||
'append_by_ref()' ist effizienter als 'append()', da keine Kopie der Variable
|
Der Parameter 'merge' überschreibt bestehende Schlüssel, falls
|
||||||
erzeugt, sondern auf die Variable im Speicher referenziert wird. Beachten Sie
|
im zweiten Array die selben Schlüssel wie im ersten vorkommen.
|
||||||
dabei, dass eine nachträgliche änderung Original-Variable auch die zugewiesene Variable
|
Diese Funktion ist ungelich 'array_merge()' aus PHP.
|
||||||
ändert. PHP5 wird die Referenzierung automatisch übernehmen, diese
|
|
||||||
Funktion dient als Workaround.
|
|
||||||
</para>
|
</para>
|
||||||
</note>
|
</note>
|
||||||
<example>
|
<example>
|
||||||
@@ -559,11 +567,11 @@
|
|||||||
<note>
|
<note>
|
||||||
<title>Technical Note</title>
|
<title>Technical Note</title>
|
||||||
<para>
|
<para>
|
||||||
'assign_by_ref()' ist effizienter als 'assign()', da keine Kopie der Variable
|
Wird verwendet, um an Template-Variablen Werte via Referenz (pass by reference) anstatt via Kopie
|
||||||
erzeugt wird, sondern auf die Variable im Speicher referenziert wird. Beachten Sie
|
anzuhängen. Wenn Sie eine Variable via Referenz anhängen und sie nachträglich
|
||||||
dabei, dass eine nachträgliche änderung Original-Variable auch die zugewiesene Variable
|
geändert wird, wird auch der angehängte Wert geändert. Bei Objekten kann so
|
||||||
ändert. PHP5 wird die Referenzierung automatisch übernehmen, diese
|
das kopieren derselben vermieden werden. Konsultieren Sie das PHP-Manual betreffend Variablenreferenzierung
|
||||||
Funktion dient als Workaround.
|
für weitere Erklärungen.
|
||||||
</para>
|
</para>
|
||||||
</note>
|
</note>
|
||||||
<example>
|
<example>
|
||||||
@@ -845,27 +853,80 @@
|
|||||||
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><parameter></parameter></paramdef>
|
<paramdef>string <parameter><optional>varname</optional></parameter></paramdef>
|
||||||
</funcprototype>
|
</funcprototype>
|
||||||
</funcsynopsis>
|
</funcsynopsis>
|
||||||
<para>
|
<para>
|
||||||
Gibt ein Array der zugewiesenen Template-Variablen zurück.
|
Gibt den Wert der übergebenen Template-Variable zurück. Wenn kein Parameter
|
||||||
|
ü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
|
||||||
var_dump($tpl_vars);</programlisting>
|
print_r($tpl_vars);</programlisting>
|
||||||
</example>
|
</example>
|
||||||
</sect1>
|
</sect1>
|
||||||
<sect1 id="api.is.cached">
|
<sect1 id="api.is.cached">
|
||||||
|
@@ -122,16 +122,16 @@
|
|||||||
<title>embedded quotes syntax</title>
|
<title>embedded quotes syntax</title>
|
||||||
<programlisting>
|
<programlisting>
|
||||||
SYNTAX EXAMPLES:
|
SYNTAX EXAMPLES:
|
||||||
{func var="test $foo test"} <-- sees $foo
|
{func var="test $foo test"} <-- sees $foo
|
||||||
{func var="test $foo_bar test"} <-- sees $foo_bar
|
{func var="test $foo_bar test"} <-- sees $foo_bar
|
||||||
{func var="test $foo[0] test"} <-- sees $foo[0]
|
{func var="test $foo[0] test"} <-- sees $foo[0]
|
||||||
{func var="test $foo[bar] test"} <-- sees $foo[bar]
|
{func var="test $foo[bar] test"} <-- sees $foo[bar]
|
||||||
{func var="test $foo.bar test"} <-- sees $foo (not $foo.bar)
|
{func var="test $foo.bar test"} <-- sees $foo (not $foo.bar)
|
||||||
{func var="test `$foo.bar` test"} <-- sees $foo.bar
|
{func var="test `$foo.bar` test"} <-- sees $foo.bar
|
||||||
|
|
||||||
PRACTICAL EXAMPLES:
|
PRACTICAL EXAMPLES:
|
||||||
{include file="subdir/$tpl_name.tpl"} <-- will replace $tpl_name with value
|
{include file="subdir/$tpl_name.tpl"} <-- will replace $tpl_name with value
|
||||||
{cycle values="one,two,`$smarty.config.myval`"} <-- must have backticks</programlisting>
|
{cycle values="one,two,`$smarty.config.myval`"} <-- must have backticks</programlisting>
|
||||||
</example>
|
</example>
|
||||||
</sect1>
|
</sect1>
|
||||||
|
|
||||||
|
@@ -307,10 +307,19 @@ class Smarty_Compiler extends Smarty {
|
|||||||
$template_compiled .= $text_blocks[$i];
|
$template_compiled .= $text_blocks[$i];
|
||||||
|
|
||||||
/* Reformat data between 'strip' and '/strip' tags, removing spaces, tabs and newlines. */
|
/* Reformat data between 'strip' and '/strip' tags, removing spaces, tabs and newlines. */
|
||||||
if (preg_match_all("!{$ldq}strip{$rdq}.*?{$ldq}/strip{$rdq}!s", $template_compiled, $match)) {
|
if (preg_match_all("!{$ldq}strip{$rdq}.*?{$ldq}/strip{$rdq}!s", $template_compiled, $_match)) {
|
||||||
$strip_tags = $match[0];
|
$strip_tags = $_match[0];
|
||||||
$strip_tags_modified = preg_replace("!{$ldq}/?strip{$rdq}|[\t ]+$|^[\t ]+!m", '', $strip_tags);
|
$_strip_search = array(
|
||||||
$strip_tags_modified = preg_replace('![\r\n]+!m', '', $strip_tags_modified);
|
'%([^\\\\]\?>)\n%', // remove newlines after PHP close tags
|
||||||
|
"!{$ldq}/?strip{$rdq}|[\t ]+$|^[\t ]+!m", // remove leading/trailing space chars
|
||||||
|
'%[\r\n]+%m', // remove CRs and newlines
|
||||||
|
'%([^\\\\]\?>)%'); // replace newlines after PHP close tags
|
||||||
|
$_strip_replace = array(
|
||||||
|
'\\1',
|
||||||
|
'',
|
||||||
|
'',
|
||||||
|
'\\1' . "\n");
|
||||||
|
$strip_tags_modified = preg_replace($_strip_search, $_strip_replace, $strip_tags);
|
||||||
for ($i = 0, $for_max = count($strip_tags); $i < $for_max; $i++)
|
for ($i = 0, $for_max = count($strip_tags); $i < $for_max; $i++)
|
||||||
$template_compiled = preg_replace("!{$ldq}strip{$rdq}.*?{$ldq}/strip{$rdq}!s",
|
$template_compiled = preg_replace("!{$ldq}strip{$rdq}.*?{$ldq}/strip{$rdq}!s",
|
||||||
$this->quote_replace($strip_tags_modified[$i]),
|
$this->quote_replace($strip_tags_modified[$i]),
|
||||||
|
Reference in New Issue
Block a user