sync with en

This commit is contained in:
messju
2005-06-18 20:07:24 +00:00
parent 61fa896989
commit cef4ae2676
4 changed files with 270 additions and 154 deletions

View File

@@ -1,41 +1,55 @@
<?xml version="1.0" encoding="iso-8859-1"?> <?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ --> <!-- $Revision$ -->
<!-- EN-Revision: 1.3 Maintainer: andreas Status: ready --> <!-- EN-Revision: 1.7 Maintainer: andreas Status: ready -->
<chapter id="chapter.debugging.console"> <chapter id="chapter.debugging.console">
<title>Debugging Konsole</title> <title>Debugging Konsole</title>
<para> <para>
Smarty wird mit einer eingebauten Debugging Konsole ausgeliefert. Diese Smarty wird mit einer eingebauten Debugging Konsole
Konsole informiert &uuml;ber die im aufgerufenen Template eingebundenen ausgeliefert. Diese Konsole informiert <EFBFBD>ber die im aufgerufenen
Templates, die zugewiesenen Variablen und die Konfigurations-Variablen. Template <link
Die Formatierung der Konsole wird &uuml;ber das Template 'debug.tpl' linkend="language.function.include">eingebundenen</link> Templates,
gesteuert. Um debugging zu aktivieren, setzten Sie '$debugging' auf 'true' die <link linkend="api.assign">zugewiesenen</link> Variablen und die
und (falls n&ouml;tig) &uuml;bergeben in '$debug_tpl' den Pfad zum 'debug.tpl' <link
Template (normalerweise SMARTY_DIR). Wenn Sie danach eine Seite laden, linkend="language.config.variables">Konfigurations-Variablen</link>.
sollte ein Javascript-Fenster ge&ouml;ffnet werden in welchem Sie alle Die Formatierung der Konsole wird <20>ber das Template <link
Informationen zur aufgerufenen Seite finden. Falls Sie die Variablen linkend="variable.debug.tpl">debug.tpl</link> gesteuert. Um
eines bestimmten Templates ausgeben wollen, k&ouml;nnen Sie dazu die debugging zu aktivieren, setzten Sie <link
Funktion <link linkend="language.function.debug">{debug}</link> verwenden. linkend="variable.debugging">$debugging</link> auf 'true' und (falls
Um debugging auszuschalten, k&ouml;nnen Sie '$debugging' auf 'false' setzen. n<>tig) <20>bergeben in <link
Sie k&ouml;nnen debugging auch tempor&auml;r aktivieren, in dem Sie der linkend="variable.debug.tpl">$debug_tpl</link> den Pfad zum
aufgerufenen URL SMARTY_DEBUG mit &uuml;bergeben, dies muss jedoch zuerst mit Debugtemplate (normalerweise <link
<link linkend="variable.debugging.ctrl">$debugging_ctrl</link> aktiviert werden. linkend="constant.smarty.dir">SMARTY_DIR</link>debug.tpl). Wenn Sie
</para> danach eine Seite laden, sollte ein Javascript-Fenster ge<67>ffnet
<note> werden in welchem Sie alle Informationen zur aufgerufenen Seite
<title>Technische Bemerkung</title> finden. Falls Sie die Variablen eines bestimmten Templates ausgeben
<para> wollen, k<>nnen Sie dazu die Funktion <link
Die Debugging Konsole funktioniert nicht f&uuml;r Daten die via 'fetch()' geladen linkend="language.function.debug">{debug}</link> verwenden. Um
wurden, sondern nur f&uuml;r Daten die via 'display()' ausgegeben werden. Die Konsole debugging auszuschalten, k<>nnen Sie <link
besteht aus ein paar Zeilen Javascript welche am Ende jeder Seite eingef&uuml;gt werden. linkend="variable.debugging">$debugging</link> auf 'false' setzen.
Wenn Sie Javascript nicht m&ouml;gen, k&ouml;nnen Sie die Ausgabe in 'debug.tpl' selbst Sie k<>nnen debugging auch tempor<6F>r aktivieren, in dem Sie der
definieren. Debug-Ausgaben werden nicht gecached und Informationen zu 'debug.tpl' aufgerufenen URL SMARTY_DEBUG mit <20>bergeben, dies muss jedoch
selbst werden nicht ausgegeben. zuerst mit <link
</para> linkend="variable.debugging.ctrl">$debugging_ctrl</link> aktiviert
</note> werden.
<note> </para>
<para> <note>
Die Ladezeiten werden in Sekunden, oder Bruchteilen davon, angegeben. <title>Technische Bemerkung</title>
</para> <para>
</note> Die Debugging Konsole funktioniert nicht f<>r Daten die via <link
linkend="api.fetch">fetch()</link> geladen wurden, sondern nur
f<>r Daten die via <link linkend="api.display">display()</link>
ausgegeben werden. Die Konsole besteht aus ein paar Zeilen
Javascript welche am Ende jeder Seite eingef<65>gt werden. Wenn
Sie Javascript nicht m<>gen, k<>nnen Sie die Ausgabe in
'debug.tpl' selbst definieren. Debug-Ausgaben werden nicht gecached
und Informationen zu 'debug.tpl' selbst werden nicht ausgegeben.
</para>
</note>
<note>
<para>
Die Ladezeiten werden in Sekunden, oder Bruchteilen davon, angegeben.
</para>
</note>
</chapter> </chapter>
<!-- Keep this comment at the end of the file <!-- Keep this comment at the end of the file
Local variables: Local variables:

View File

@@ -1,19 +1,20 @@
<?xml version="1.0" encoding="iso-8859-1"?> <?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ --> <!-- $Revision$ -->
<!-- EN-Revision: 1.3 Maintainer: andreas Status: ready --> <!-- EN-Revision: 1.7 Maintainer: andreas Status: ready -->
<chapter id="config.files"> <chapter id="config.files">
<title>Konfigurationsdateien</title> <title>Konfigurationsdateien</title>
<para> <para>
Konfigurationsdateien sind ein praktischer Weg um Template-Variablen Konfigurationsdateien sind ein praktischer Weg um Template-Variablen
aus einer gemeinsamen Datei zu lesen. Ein Beispiel sind die Template-Farben. aus einer gemeinsamen Datei zu lesen. Ein Beispiel sind die
Wenn Sie die Farben einer Applikation anpassen wollen, m&uuml;ssen Sie normalerweise Template-Farben. Wenn Sie die Farben einer Applikation anpassen
alle Templates durcharbeiten, und die entsprechenden Werte &auml;ndern. wollen, m<>ssen Sie normalerweise alle Templates durcharbeiten,
Mit einer Konfigurationsdatei k&ouml;nnen Sie alle Definitionen in einer und die entsprechenden Werte <20>ndern. Mit einer
einzigen Datei vornehmen, und somit auch einfach &auml;ndern. Konfigurationsdatei k<>nnen Sie alle Definitionen in einer
</para> einzigen Datei vornehmen, und somit auch einfach <20>ndern.
<example> </para>
<title>Beispiel der Konfigurationsdatei-Syntax</title> <example>
<programlisting> <title>Beispiel der Konfigurationsdatei-Syntax</title>
<programlisting>
<![CDATA[ <![CDATA[
# global variables # global variables
pageTitle = "Main Menu" pageTitle = "Main Menu"
@@ -27,47 +28,65 @@ pageTitle = "Customer Info"
[Login] [Login]
pageTitle = "Login" pageTitle = "Login"
focus = "username" focus = "username"
Intro = """Diese Zeile erstreckt sich &uuml;ber Intro = """Diese Zeile erstreckt sich <EFBFBD>ber
mehrere Zeilen, und muss deswegen mehrere Zeilen, und muss deswegen
mit dreifachen Anf&uuml;hrungszeichen mit dreifachen Anf<EFBFBD>hrungszeichen
umschlossen werden.""" umschlossen werden."""
# hidden section # hidden section
[.Database] [.Database]
host=my.domain.com host=my.example.com
db=ADDRESSBOOK db=ADDRESSBOOK
user=php-user user=php-user
pass=foobar pass=foobar
]]></programlisting> ]]></programlisting>
</example> </example>
<para> <para>
Die Werte in einer Konfigurationsdatei k&ouml;nnen in einfachen/doppelten Anf&uuml;hrungszeichen <link linkend="language.config.variables">Die Werte in einer
notiert werden. Falls Sie einen Wert haben der sich &uuml;ber mehrere Zeilen ausbreitet muss dieser Konfigurationsdatei</link> k<>nnen in einfachen/doppelten
Wert in dreifachen Anf&uuml;hrungszeichen (""") eingebettet werden. Die Kommentar-Syntax kann frei Anf<EFBFBD>hrungszeichen notiert werden. Falls Sie einen Wert haben der
gew&auml;hlt werden, solange sie nicht der normalen Syntax entsprechen. Wir empfehlen die sich <20>ber mehrere Zeilen ausbreitet muss dieser Wert in
Verwendung von <literal>#</literal> (Raute) am Anfang jeder Kommentar-Zeile. dreifachen Anf<6E>hrungszeichen (""") eingebettet werden. Die
</para> Kommentar-Syntax kann frei gew<65>hlt werden, solange sie nicht der
<para> normalen Syntax entsprechen. Wir empfehlen die Verwendung von
Dieses Beispiel hat 2 'sections'. 'section'-Namen werden von []-Zeichen umschlossen <literal>#</literal> (Raute) am Anfang jeder Kommentar-Zeile.
und k&ouml;nnen alle Zeichen ausser <literal>[</literal> und <literal>]</literal> enthalten. </para>
Die vier Variablen welche am Anfang der Datei definiert werden sind globale Variablen. Diese <para>
Variablen werden immer geladen. Wenn eine definierte 'section' geladen wird, werden also Dieses Beispiel hat 2 'sections'. 'section'-Namen werden von
die globalen Variablen ebenfalls eingelesen. Wenn eine Variable sowohl global als auch []-Zeichen umschlossen und k<>nnen alle Zeichen ausser
in einer 'section' vorkommt, wird die 'section'-Variable verwendet. Wenn zwei Variablen <literal>[</literal> und <literal>]</literal> enthalten. Die vier
in der gleichen 'section' den selben Namen aufweisen wird die Letztere verwendet. Variablen welche am Anfang der Datei definiert werden sind globale
</para> Variablen. Diese Variablen werden immer geladen. Wenn eine
<para> definierte 'section' geladen wird, werden also die globalen
Konfigurationsdateien werden mit <command>config_load</command> geladen. Variablen ebenfalls eingelesen. Wenn eine Variable sowohl global als
</para> auch in einer 'section' vorkommt, wird die 'section'-Variable
<para> verwendet. Wenn zwei Variablen in der gleichen 'section' den selben
Sie k&ouml;nnen Variablen oder auch ganze 'sections' verstecken indem Namen aufweisen wird die Letztere verwendet, es sei denn <link
Sie dem Namen ein '.' voranstellen. Dies ist besonders wertvoll wenn linkend="variable.config.overwrite">$config_overwrite</link> ist
Ihre Applikation sensitive Informationen aus der Konfigurationsdatei liest deaktiviert ('false').
welche von der Template-Engine nicht verwendet werden. Falls eine Drittpartei </para>
eine &Auml;nderung an der Konfigurationsdatei vornimmt k&ouml;nnen Sie so <para>
sicherstellen, dass die sensitiven Daten nicht in deren Template geladen Konfigurationsdateien werden mit <link
werden k&ouml;nnen. linkend="language.function.config.load"><command>config_load</command></link>
</para> geladen.
</para>
<para>
Sie k<>nnen Variablen oder auch ganze 'sections' verstecken indem
Sie dem Namen ein '.' voranstellen. Dies ist besonders wertvoll wenn
Ihre Applikation sensitive Informationen aus der Konfigurationsdatei
liest welche von der Template-Engine nicht verwendet werden. Falls
eine Drittpartei eine <20>nderung an der Konfigurationsdatei
vornimmt k<>nnen Sie so sicherstellen, dass die sensitiven Daten
nicht in deren Template geladen werden k<>nnen.
</para>
<para>
Siehe auch: <link
linkend="language.function.config.load">{config_load}</link>, <link
linkend="variable.config.overwrite">$config_overwrite</link>, <link
linkend="api.get.config.vars">get_config_vars()</link>, <link
linkend="api.clear.config">clear_config()</link> und <link
linkend="api.config.load">config_load()</link>
</para>
</chapter> </chapter>
<!-- Keep this comment at the end of the file <!-- Keep this comment at the end of the file
Local variables: Local variables:

View File

@@ -1,70 +1,99 @@
<?xml version="1.0" encoding="iso-8859-1"?> <?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ --> <!-- $Revision$ -->
<!-- EN-Revision: 1.14 Maintainer: andreas Status: ready --> <!-- EN-Revision: 1.18 Maintainer: andreas Status: ready -->
<chapter id="language.modifiers"> <chapter id="language.modifiers">
<title>Variablen-Modifikatoren</title> <title>Variablen-Modifikatoren</title>
<para> <para>
Variablen-Modifikatoren k&ouml;nnen auf alle Variablen angewendet werden, um deren Inhalt zu ver&auml;ndern. Dazu Variablen-Modifikatoren k<EFBFBD>nnen auf alle Variablen angewendet
h&auml;ngen sie einfach ein <literal>|</literal> (Pipe-Zeichen) und den Modifikatornamen an die entsprechende werden, um deren Inhalt zu ver<65>ndern. Dazu h<>ngen sie einfach
Variable an. Ein Modifikator &uuml;ber Parameter in seiner Arbeitsweise beinflusst werden. Diese Parameter ein <literal>|</literal> (Pipe-Zeichen) und den Modifikatornamen an
werden dem Modifikatorname angeh&auml;ngt und mit <literal>:</literal> getrennt. die entsprechende Variable an. Ein Modifikator <20>ber Parameter in
</para> seiner Arbeitsweise beinflusst werden. Diese Parameter werden dem
<example> Modifikatorname angeh<65>ngt und mit <literal>:</literal> getrennt.
<title>Modifikator Beispiel</title> </para>
<programlisting> <example>
<![CDATA[ <title>Modifikator Beispiel</title>
{* Schreibe den Titel in Grossbuchstaben *} <programlisting>
&lt;h2&gt;{$titel|upper}&lt;/h2&gt; <![CDATA[
{* Modifikator auf eine Variable anwenden *}
{$titel|upper}
{* Modifikator mit Parametern *}
{$title|truncate:40:"..."}
{* K&uuml;rze das Thema auf 40 Zeichen, und h&auml;nge '...' an. *} {* Modifikator auf Funktionsparameter anwenden *}
Thema: {$thema|truncate:40:"..."} {html_table loop=$myvar|upper}
{* mit Parametern *}
{html_table loop=$myvar|truncate:40:"..."}
{* formatierung einer Zeichenkette *} {* formatierung einer Zeichenkette *}
{"foobar"|upper}
{* mit date_format das aktuelle Datum formatieren *}
{"now"|date_format:"%Y/%m/%d"} {"now"|date_format:"%Y/%m/%d"}
{* modifier auf eigene Funktion anwenden *} {* modifier auf eigene Funktion anwenden *}
{mailto|upper address="me@domain.dom"} {mailto|upper address="me@domain.dom"}
]]></programlisting> ]]>
</example> </programlisting>
<para> </example>
Wenn Sie einen Modifikator auf ein Array anwenden, wird dieser auf jeden Wert angewandt. <para>
Um zu erreichen, dass der Modifkator auf den Array selbst angewendet wird, muss dem Wenn Sie einen Modifikator auf ein Array anwenden, wird dieser auf
Modifikator ein <literal>@</literal> Zeichen vorangestellt werden. Beispiel: jeden Wert angewandt. Um zu erreichen, dass der Modifkator auf den
<literal>{$artikelTitel|@count}</literal> (gibt die Anzahl Elemente des Arrays $artikelTitel aus.) Array selbst angewendet wird, muss dem Modifikator ein
</para> <literal>@</literal> Zeichen vorangestellt werden. Beispiel:
<para> <literal>{$artikelTitel|@count}</literal> (gibt die Anzahl Elemente
Modifikatoren k&ouml;nnen aus Ihrem <link linkend="variable.plugins.dir">$plugins_dir</link> des Arrays $artikelTitel aus.)
automatisch geladen (sehen Sie dazu auch <link linkend="plugins.naming.conventions">Naming Conventions</link>) </para>
oder explizit registriert werden (<link linkend="api.register.modifier">register_modifier</link>). <para>
Zudem k&ouml;nnen alle PHP-Funktionen implizit als Modifikatoren verwendet werden. (Das Beispiel mit dem Modifikatoren k<>nnen aus Ihrem <link
<literal>@count</literal> Modifier verwendet die Funktion 'count' von PHP und keinen Smarty Modifikator) linkend="variable.plugins.dir">$plugins_dir</link> automatisch
PHP Funktionen zu verwenden er&ouml;ffnet zwei Probleme: erstens: manchmal ist die Parameter Reiehnfolge nicht geladen (sehen Sie dazu auch <link
erw&uuml;nscht. (<literal>{"%2.f"|sprintf:$float}</literal> funktioniert zwar, sieht aber als <literal>{$float|string_format:"%2.f"}</literal> linkend="plugins.naming.conventions">Naming Conventions</link>) oder
das durch Smarty geliefert wird, besser aus. Zweitens: wenn <link linkend="variable.security">$security</link> auf TRUE gesetzt ist, explizit registriert werden (<link
m&uuml;ssen alle verwendeten PHP Funktionen im <link linkend="variable.security.settings">$security_settings['MODIFIER_FUNCS']</link>-Array linkend="api.register.modifier">register_modifier</link>). Zudem
enthalten sein. k<EFBFBD>nnen alle PHP-Funktionen implizit als Modifikatoren verwendet
</para> werden. (Das Beispiel mit dem <literal>@count</literal> Modifier
&designers.language-modifiers.language-modifier-capitalize; verwendet die Funktion 'count' von PHP und keinen Smarty
&designers.language-modifiers.language-modifier-count-characters; Modifikator) PHP Funktionen zu verwenden er<65>ffnet zwei Probleme:
&designers.language-modifiers.language-modifier-cat; erstens: manchmal ist die Parameter Reiehnfolge nicht
&designers.language-modifiers.language-modifier-count-paragraphs; erw<72>nscht. (<literal>{"%2.f"|sprintf:$float}</literal>
&designers.language-modifiers.language-modifier-count-sentences; funktioniert zwar, sieht aber als
&designers.language-modifiers.language-modifier-count-words; <literal>{$float|string_format:"%2.f"}</literal> das durch Smarty
&designers.language-modifiers.language-modifier-date-format; geliefert wird, besser aus. Zweitens: wenn <link
&designers.language-modifiers.language-modifier-default; linkend="variable.security">$security</link> auf TRUE gesetzt ist,
&designers.language-modifiers.language-modifier-escape; m<>ssen alle verwendeten PHP Funktionen im <link
&designers.language-modifiers.language-modifier-indent; linkend="variable.security.settings">
&designers.language-modifiers.language-modifier-lower; $security_settings['MODIFIER_FUNCS']</link>-Array enthalten sein.
&designers.language-modifiers.language-modifier-nl2br; </para>
&designers.language-modifiers.language-modifier-regex-replace; <para>
&designers.language-modifiers.language-modifier-replace; Siehe auch <link
&designers.language-modifiers.language-modifier-spacify; linkend="api.register.modifier">register_modifier()</link>, <link
&designers.language-modifiers.language-modifier-string-format; linkend="api.register.function">register_function()</link>, <link
&designers.language-modifiers.language-modifier-strip; linkend="plugins">Smarty durch Plugins erweitern</link> und <link
&designers.language-modifiers.language-modifier-strip-tags; linkend="plugins.modifiers">Variablen-Modifikatoren</link>.
&designers.language-modifiers.language-modifier-truncate; </para>
&designers.language-modifiers.language-modifier-upper;
&designers.language-modifiers.language-modifier-wordwrap; &designers.language-modifiers.language-modifier-capitalize;
&designers.language-modifiers.language-modifier-cat;
&designers.language-modifiers.language-modifier-count-characters;
&designers.language-modifiers.language-modifier-count-paragraphs;
&designers.language-modifiers.language-modifier-count-sentences;
&designers.language-modifiers.language-modifier-count-words;
&designers.language-modifiers.language-modifier-date-format;
&designers.language-modifiers.language-modifier-default;
&designers.language-modifiers.language-modifier-escape;
&designers.language-modifiers.language-modifier-indent;
&designers.language-modifiers.language-modifier-lower;
&designers.language-modifiers.language-modifier-nl2br;
&designers.language-modifiers.language-modifier-regex-replace;
&designers.language-modifiers.language-modifier-replace;
&designers.language-modifiers.language-modifier-spacify;
&designers.language-modifiers.language-modifier-string-format;
&designers.language-modifiers.language-modifier-strip;
&designers.language-modifiers.language-modifier-strip-tags;
&designers.language-modifiers.language-modifier-truncate;
&designers.language-modifiers.language-modifier-upper;
&designers.language-modifiers.language-modifier-wordwrap;
</chapter> </chapter>
<!-- Keep this comment at the end of the file <!-- Keep this comment at the end of the file

View File

@@ -1,23 +1,77 @@
<?xml version="1.0" encoding="iso-8859-1"?> <?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ --> <!-- $Revision$ -->
<!-- EN-Revision: 1.1 Maintainer: andreas Status: ready --> <!-- EN-Revision: 1.4 Maintainer: andreas Status: ready -->
<sect1 id="language.modifier.capitalize"> <sect1 id="language.modifier.capitalize">
<title>capitalize (in Grossbuchstaben schreiben)</title> <title>capitalize (in Grossbuchstaben schreiben)</title>
<para> <informaltable frame="all">
Wird verwendet um den Anfangsbuchstaben aller W&ouml;rter in der Variable gross (upper case) zu schreiben. <tgroup cols="5">
</para> <colspec colname="param" align="center" />
<example> <colspec colname="type" align="center" />
<title>capitalize (in Grossbuchstaben schreiben)</title> <colspec colname="required" align="center" />
<programlisting> <colspec colname="default" align="center" />
<colspec colname="desc" />
<thead>
<row>
<entry>Parameter Position</entry>
<entry>Typ</entry>
<entry>Ben<EFBFBD>tigt</entry>
<entry>Vorgabe</entry>
<entry>Beschreibung</entry>
</row>
</thead>
<tbody>
<row>
<entry>1</entry>
<entry>boolean</entry>
<entry>Nein</entry>
<entry>false</entry>
<entry>Bestimmt ob W<>rter die Ziffern enthalten auch in
Gro<72>schreibung gewandelt werden</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para>
Wird verwendet um den Anfangsbuchstaben aller W&ouml;rter in der
Variable gross (upper case) zu schreiben.
</para>
<example>
<title>capitalize (in Grossbuchstaben schreiben)</title>
<programlisting role="php">
<![CDATA[
<?php
$smarty->assign('articleTitle', 'diebe haben in norwegen 20 tonnen streusalz entwendet.');
?>
]]>
</programlisting>
<para>
Wobei das Template wie folgt aussieht:
</para>
<programlisting>
<![CDATA[
{$artikelTitel} {$artikelTitel}
{$artikelTitel|capitalize} {$artikelTitel|capitalize}
]]>
AUSGABE: </programlisting>
<para>
AUSGABE:
</para>
<screen>
<![CDATA[
diebe haben in norwegen 20 tonnen streusalz entwendet. diebe haben in norwegen 20 tonnen streusalz entwendet.
Diebe Haben In Norwegen 20 Tonnen Streusalz Entwendet.</programlisting> Diebe Haben In Norwegen 20 Tonnen Streusalz Entwendet.</programlisting>
</example> ]]>
</sect1> </screen>
</example>
<para>
Siehe auch <link linkend="language.modifier.lower">lower (in
Kleinbuchstaben schreiben)</link> <link
linkend="language.modifier.upper">upper (in Grossbuchstaben
umwandeln)</link>
</para>
</sect1>
<!-- Keep this comment at the end of the file <!-- Keep this comment at the end of the file
Local variables: Local variables:
mode: sgml mode: sgml