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

View File

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

View File

@@ -1,70 +1,99 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<!-- EN-Revision: 1.14 Maintainer: andreas Status: ready -->
<chapter id="language.modifiers">
<title>Variablen-Modifikatoren</title>
<para>
Variablen-Modifikatoren k&ouml;nnen auf alle Variablen angewendet werden, um deren Inhalt zu ver&auml;ndern. Dazu
h&auml;ngen sie einfach ein <literal>|</literal> (Pipe-Zeichen) und den Modifikatornamen an die entsprechende
Variable an. Ein Modifikator &uuml;ber Parameter in seiner Arbeitsweise beinflusst werden. Diese Parameter
werden dem Modifikatorname angeh&auml;ngt und mit <literal>:</literal> getrennt.
</para>
<example>
<title>Modifikator Beispiel</title>
<programlisting>
<![CDATA[
{* Schreibe den Titel in Grossbuchstaben *}
&lt;h2&gt;{$titel|upper}&lt;/h2&gt;
<!-- EN-Revision: 1.18 Maintainer: andreas Status: ready -->
<chapter id="language.modifiers">
<title>Variablen-Modifikatoren</title>
<para>
Variablen-Modifikatoren k<EFBFBD>nnen auf alle Variablen angewendet
werden, um deren Inhalt zu ver<65>ndern. Dazu h<>ngen sie einfach
ein <literal>|</literal> (Pipe-Zeichen) und den Modifikatornamen an
die entsprechende Variable an. Ein Modifikator <20>ber Parameter in
seiner Arbeitsweise beinflusst werden. Diese Parameter werden dem
Modifikatorname angeh<65>ngt und mit <literal>:</literal> getrennt.
</para>
<example>
<title>Modifikator Beispiel</title>
<programlisting>
<![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. *}
Thema: {$thema|truncate:40:"..."}
{* Modifikator auf Funktionsparameter anwenden *}
{html_table loop=$myvar|upper}
{* mit Parametern *}
{html_table loop=$myvar|truncate:40:"..."}
{* formatierung einer Zeichenkette *}
{"foobar"|upper}
{* mit date_format das aktuelle Datum formatieren *}
{"now"|date_format:"%Y/%m/%d"}
{* modifier auf eigene Funktion anwenden *}
{mailto|upper address="me@domain.dom"}
]]></programlisting>
</example>
<para>
Wenn Sie einen Modifikator auf ein Array anwenden, wird dieser auf jeden Wert angewandt.
Um zu erreichen, dass der Modifkator auf den Array selbst angewendet wird, muss dem
Modifikator ein <literal>@</literal> Zeichen vorangestellt werden. Beispiel:
<literal>{$artikelTitel|@count}</literal> (gibt die Anzahl Elemente des Arrays $artikelTitel aus.)
</para>
<para>
Modifikatoren k&ouml;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&ouml;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&ouml;ffnet zwei Probleme: erstens: manchmal ist die Parameter Reiehnfolge nicht
erw&uuml;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&uuml;ssen alle verwendeten PHP Funktionen im <link linkend="variable.security.settings">$security_settings['MODIFIER_FUNCS']</link>-Array
enthalten sein.
</para>
&designers.language-modifiers.language-modifier-capitalize;
&designers.language-modifiers.language-modifier-count-characters;
&designers.language-modifiers.language-modifier-cat;
&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;
]]>
</programlisting>
</example>
<para>
Wenn Sie einen Modifikator auf ein Array anwenden, wird dieser auf
jeden Wert angewandt. Um zu erreichen, dass der Modifkator auf den
Array selbst angewendet wird, muss dem Modifikator ein
<literal>@</literal> Zeichen vorangestellt werden. Beispiel:
<literal>{$artikelTitel|@count}</literal> (gibt die Anzahl Elemente
des Arrays $artikelTitel aus.)
</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<EFBFBD>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<65>ffnet zwei Probleme:
erstens: manchmal ist die Parameter Reiehnfolge nicht
erw<72>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>
<para>
Siehe auch <link
linkend="api.register.modifier">register_modifier()</link>, <link
linkend="api.register.function">register_function()</link>, <link
linkend="plugins">Smarty durch Plugins erweitern</link> und <link
linkend="plugins.modifiers">Variablen-Modifikatoren</link>.
</para>
&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>
<!-- Keep this comment at the end of the file

View File

@@ -1,23 +1,77 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<!-- EN-Revision: 1.1 Maintainer: andreas Status: ready -->
<sect1 id="language.modifier.capitalize">
<title>capitalize (in Grossbuchstaben schreiben)</title>
<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>
<!-- EN-Revision: 1.4 Maintainer: andreas Status: ready -->
<sect1 id="language.modifier.capitalize">
<title>capitalize (in Grossbuchstaben schreiben)</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>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|capitalize}
AUSGABE:
]]>
</programlisting>
<para>
AUSGABE:
</para>
<screen>
<![CDATA[
diebe haben in norwegen 20 tonnen streusalz entwendet.
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
Local variables:
mode: sgml