cvs: smarty /docs/de getting-started.xml
"Messju Mohr" <[email protected]>
| Newsgroups | gmane.comp.php.cvs.smarty |
|---|---|
| Message-ID | <cvsmessju1118311023@cvsserver> |
messju Thu Jun 9 05:57:03 2005 EDT
Modified files:
/smarty/docs/de getting-started.xml
Log:
sync with en
--
Smarty CVS Mailing List (http://cvs.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
messju-20050609055703.txt
(text/plain, 33.2 KB)
http://cvs.php.net/diff.php/smarty/docs/de/getting-started.xml?r1=1.6&r2=1.7&ty=u
Index: smarty/docs/de/getting-started.xml
diff -u smarty/docs/de/getting-started.xml:1.6 smarty/docs/de/getting-started.xml:1.7
--- smarty/docs/de/getting-started.xml:1.6 Thu Jun 9 05:18:24 2005
+++ smarty/docs/de/getting-started.xml Thu Jun 9 05:57:02 2005
@@ -1,221 +1,334 @@
<?xml version="1.0" encoding="iso-8859-1"?>
-<!-- $Revision: 1.6 $ -->
-<!-- EN-Revision: 1.10 Maintainer: andreas Status: partial -->
+<!-- $Revision: 1.7 $ -->
+<!-- EN-Revision: 1.10 Maintainer: andreas Status: ready -->
<part id="getting.started">
<title>Erste Schritte</title>
<chapter id="what.is.smarty">
- <title>Was ist Smarty?</title>
- <para>
- Smarty ist eine Template-Engine für PHP. Genauer gesagt erlaubt es
- die einfache Trennung von Applikations-Logik und Design/Ausgabe. Dies
- ist vor allem wünschenswert, wenn der Applikationsentwickler nicht
- die selbe Person ist wie der Designer. Nehmen wir zum Beispiel eine
- Webseite die Zeitungsartikel ausgibt. Der Titel, die Einführung,
- der Author und der Inhalt selbst enthalten keine Informationen darüber
- wie sie dargestellt werden sollen. Also werden sie von der Applikation
- an Smarty übergeben, damit der Designer in den Templates mit einer Kombination von
- HTML- und Template-Tags die Ausgabe (Tabellen, Hintergrundfarben,
- Schriftgrössen, Stylesheets, etc.) gestalten kann. Falls nun die
- Applikation eines Tages angepasst werden muss, ist dies für den
- Designer nicht von Belang, da die Inhalte immer noch genau gleich
- übergeben werden. Genauso kann der Designer die Ausgabe der
- Daten beliebig verändern, ohne dass eine Änderung der
- Applikation vorgenommen werden muss. Somit können der Programmierer
- die Applikations-Logik und der Designer die Ausgabe frei anpassen,
- ohne sich dabei in die Quere zu kommen.
- </para>
- <para>
- Was Smarty nicht kann: Smarty versucht nicht die gesamte Logik aus dem
- Template zu verbannen. Solange die verwendete Logik ausschließlich für die
- Ausgabe verwendet wird, kann sie auch im Template eingebettet werden. Ein Tip:
- versuchen Sie Applikations-Logik aus dem Template und Präsentations-Logik
- aus der Applikation herauszuhalten. Nur so bleibt die Applikation auf absehbere Zeit
- gut skalier- und wartbar.
- </para>
- <para>
- Einer der einzigartigen Aspekte von Smarty ist die Kompilierung der
- Templates. Smarty liest die Template-Dateien und generiert daraus neue
- PHP-Skripte; von da an werden nur noch diese Skripte verwendet. Deshalb
- müssen Templates nicht für jeden Seitenaufruf performance-intensiv
- neu geparst werden und jedes Template kann voll von PHP Compiler-Cache
- Lösungen profitieren.
- (Zend, <ulink url="&url.zend;">&url.zend;</ulink>; PHP Accelerator, <ulink url="&url.php-accelerator;">&url.php-accelerator;</ulink>)
- </para>
- <para>
- Ein paar Smarty Charakteristiken
- </para>
- <itemizedlist>
- <listitem><para>Sehr schnell.</para></listitem>
- <listitem><para>Sehr effizient, da der PHP-Parser die 'schmutzige' Arbeit übernimmt.</para></listitem>
- <listitem><para>Kein Overhead durch Template-Parsing, nur einmaliges kompilieren.</para></listitem>
- <listitem><para>Re-kompiliert nur gänderte Templates.</para></listitem>
- <listitem><para>Sie können die Engine um <link linkend="language.custom.functions">individuelle Funktionen</link> und <link linkend="language.modifiers">Variablen-Modifikatoren</link> erweitern.</para></listitem>
- <listitem><para>Konfigurierbare Syntax für <link linkend="variable.left.delimiter">Template-Tags</link>: Sie können {}, {{}}, <!--{}-->, etc. verwenden.</para></listitem>
- <listitem><para><link linkend="language.function.if">'if/elseif/else/endif'-Konstrukte</link> werden direkt dem PHP-Parser übergeben. Somit können {if ...} Ausdrücke sowohl sehr einfach als auch sehr komplex sein.</para></listitem>
- <listitem><para>Unbegrenzte Verschachtelung von <link linkend="language.function.section">'section'</link>, 'if' und anderen Blöcken.</para></listitem>
- <listitem><para>Ermöglicht die direkte <link linkend="language.function.php">Einbettung von PHP-Code</link>. (Obwohl es weder benötigt noch empfohlen wird, da die Engine einfach erweiterbar ist.)</para></listitem>
- <listitem><para>Eingebauter <link linkend="caching">Caching-Support</link></para></listitem>
- <listitem><para>Beliebige <link linkend="template.resources">Template-Quellen</link></para></listitem>
- <listitem><para>Eigene <link linkend="section.template.cache.handler.func">Cache-Handling Funktionen</link></para></listitem>
- <listitem><para><link linkend="plugins">Plugin</link> Architektur</para></listitem>
- </itemizedlist>
+ <title>Was ist Smarty?</title>
+ <para>
+ Smarty ist eine Template-Engine für PHP. Genauer gesagt
+ erlaubt es die einfache Trennung von Applikations-Logik und
+ Design/Ausgabe. Dies ist vor allem wünschenswert, wenn der
+ Applikationsentwickler nicht die selbe Person ist wie der
+ Designer. Nehmen wir zum Beispiel eine Webseite die Zeitungsartikel
+ ausgibt. Der Titel, die Einführung, der Author und der Inhalt
+ selbst enthalten keine Informationen darüber wie sie
+ dargestellt werden sollen. Also werden sie von der Applikation an
+ Smarty übergeben, damit der Designer in den Templates mit
+ einer Kombination von HTML- und Template-Tags die Ausgabe
+ (Tabellen, Hintergrundfarben, Schriftgrössen, Stylesheets,
+ etc.) gestalten kann. Falls nun die Applikation eines Tages
+ angepasst werden muss, ist dies für den Designer nicht von
+ Belang, da die Inhalte immer noch genau gleich übergeben
+ werden. Genauso kann der Designer die Ausgabe der Daten beliebig
+ verändern, ohne dass eine Änderung der Applikation
+ vorgenommen werden muss. Somit können der Programmierer die
+ Applikations-Logik und der Designer die Ausgabe frei anpassen, ohne
+ sich dabei in die Quere zu kommen.
+ </para>
+ <para>
+ Was Smarty nicht kann: Smarty versucht nicht die gesamte Logik aus
+ dem Template zu verbannen. Solange die verwendete Logik
+ ausschließlich für die Ausgabe verwendet wird, kann sie auch
+ im Template eingebettet werden. Ein Tip: versuchen Sie
+ Applikations-Logik aus dem Template und Präsentations-Logik
+ aus der Applikation herauszuhalten. Nur so bleibt die Applikation
+ auf absehbere Zeit gut skalier- und wartbar.
+ </para>
+ <para>
+ Einer der einzigartigen Aspekte von Smarty ist die Kompilierung der
+ Templates. Smarty liest die Template-Dateien und generiert daraus
+ neue PHP-Skripte; von da an werden nur noch diese Skripte
+ verwendet. Deshalb müssen Templates nicht für jeden
+ Seitenaufruf performance-intensiv neu geparst werden und jedes
+ Template kann voll von PHP Compiler-Cache Lösungen
+ profitieren. (Zend, <ulink url="&url.zend;">&url.zend;</ulink>;
+ PHP Accelerator, <ulink
+ url="&url.php-accelerator;">&url.php-accelerator;</ulink>)
+ </para>
+ <para>
+ Ein paar Smarty Charakteristiken
+ </para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ Sehr schnell.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Sehr effizient, da der PHP-Parser die 'schmutzige' Arbeit
+ übernimmt.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Kein Overhead durch Template-Parsing, nur einmaliges kompilieren.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Re-kompiliert nur gänderte Templates.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Sie können die Engine um <link
+ linkend="language.custom.functions">individuelle Funktionen</link>
+ und <link
+ linkend="language.modifiers">Variablen-Modifikatoren</link>
+ erweitern.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Konfigurierbare Syntax für <link
+ linkend="variable.left.delimiter">Template-Tags</link>: Sie
+ können {}, {{}}, <!--{}-->, etc. verwenden.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <link
+ linkend="language.function.if">'if/elseif/else/endif'-Konstrukte</link>
+ werden direkt dem PHP-Parser übergeben. Somit können {if
+ ...} Ausdrücke sowohl sehr einfach als auch sehr komplex sein.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Unbegrenzte Verschachtelung von <link
+ linkend="language.function.section">'section'</link>, 'if' und
+ anderen Blöcken.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Ermöglicht die direkte <link
+ linkend="language.function.php">Einbettung von
+ PHP-Code</link>. (Obwohl es weder benötigt noch empfohlen
+ wird, da die Engine einfach erweiterbar ist.)
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Eingebauter <link linkend="caching">Caching-Support</link>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Beliebige <link linkend="template.resources">Template-Quellen</link>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Eigene <link
+ linkend="section.template.cache.handler.func">Cache-Handling
+ Funktionen</link>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <link linkend="plugins">Plugin</link> Architektur
+ </para>
+ </listitem>
+ </itemizedlist>
</chapter>
<chapter id="installation">
<title>Installation</title>
<sect1 id="installation.requirements">
<title>Anforderungen</title>
<para>
- Smarty benötigt einen Webserver mit PHP >=4.0.6.
+ Smarty benötigt einen Webserver mit PHP >=4.0.6.
</para>
</sect1>
-
<sect1 id="installing.smarty.basic">
- <title>Basis Installation</title>
- <note>
- <title>Technische Bemerkung</title>
- <para>
- Dieser Leitfaden geht davon aus, dass Sie Ihr Webserver- und PHP-Setup kennen
- und mit den Namenskonventionen für Dateien und Verzeichnisse Ihres Betriebssystems
- vertraut sind. Im Folgenden wird ein Unix-Dateisystem verwendet, stellen Sie also
- sicher, dass sie die für Ihr Betriebssystem nötigen Änderungen vornehmen.
- </para>
- <para>
- Das Beispiel geht davon aus, dass '/php/includes' in Ihrem PHP-'include_path'
- liegt. Konsultieren Sie das PHP-Manual für weiterführende Informationen hierzu.
- </para>
- </note>
- <para>
- Installieren Sie als erstes die Smarty-Library Dateien. Diese Dateien
- sollten von Ihnen NICHT editiert und von allen Applikationen
- verwendet werden. Sie werden nur erneuert, wenn Sie eine neue Version von Smarty installieren.
- </para>
- <note>
- <title>Technische Bemerkung</title>
- <para>
- Wir empfehlen keine Änderungen an den Smarty-Library Dateien vorzunehmen.
- Dies macht ein mögliches Upgrade wesentlich einfacher. Sie müssen
- diese Dateien auch nicht anpassen, um Smarty zu konfigurieren! Benutzen Sie für
- diesen Zwecke eine Instanz der Smarty-Klasse.
- </para>
- </note>
-
- <para>
- Folgende Library Dateien werden mit Smarty geliefert und werden benötigt:
- </para>
- <example>
- <title>Benötigte Smarty-Library Dateien</title>
- <screen>
+ <title>Basis Installation</title>
+ <note>
+ <title>Technische Bemerkung</title>
+ <para>
+ Dieser Leitfaden geht davon aus, dass Sie Ihr Webserver- und
+ PHP-Setup kennen und mit den Namenskonventionen für Dateien
+ und Verzeichnisse Ihres Betriebssystems vertraut sind. Im
+ Folgenden wird ein Unix-Dateisystem verwendet, stellen Sie also
+ sicher, dass sie die für Ihr Betriebssystem nötigen
+ Änderungen vornehmen.
+ </para>
+ <para>
+ Das Beispiel geht davon aus, dass '/php/includes' in Ihrem
+ PHP-'include_path' liegt. Konsultieren Sie das PHP-Manual
+ für weiterführende Informationen hierzu.
+ </para>
+ </note>
+ <para>
+ Installieren Sie als erstes die Smarty-Library Dateien. Diese
+ Dateien sollten von Ihnen NICHT editiert und von allen
+ Applikationen verwendet werden. Sie werden nur erneuert, wenn Sie
+ eine neue Version von Smarty installieren.
+ </para>
+ <note>
+ <title>Technische Bemerkung</title>
+ <para>
+
+ Wir empfehlen keine Änderungen an den Smarty-Library Dateien
+ vorzunehmen. Dies macht ein mögliches Upgrade wesentlich
+ einfacher. Sie müssen diese Dateien auch nicht anpassen, um
+ Smarty zu konfigurieren! Benutzen Sie für diesen Zwecke eine
+ Instanz der Smarty-Klasse.
+ </para>
+ </note>
+ <para>
+ Folgende Library Dateien werden mit Smarty geliefert und werden benötigt:
+ </para>
+ <example>
+ <title>Benötigte Smarty-Library Dateien</title>
+ <screen>
+<![CDATA[
Smarty.class.php
Smarty_Compiler.class.php
Config_File.class.php
debug.tpl
/internals/*.php (alle)
-/plugins/*.php (alle)</screen>
- </example>
-
- <para>
- Sie können diese Dateien entweder in Ihrem PHP-'include_path' oder
- auch in irgend einem anderen Verzeichnis ablegen, solange die Konstante
- <link linkend="constant.smarty.dir">SMARTY_DIR</link> auf den korrekten
- Pfad zeigt. Im Folgenden werden Beispiele für beide Fälle aufgezeigt.
- </para>
- <para>
- So erzeugt man eine Instanz der Smarty-Klasse im PHP-Skript:
- </para>
-
- <example>
- <title>Smarty Instanz erstellen:</title>
- <screen>
+/plugins/*.php (alle)
+]]>
+ </screen>
+ </example>
+ <para>
+ Sie können diese Dateien entweder in Ihrem PHP-'include_path'
+ oder auch in irgend einem anderen Verzeichnis ablegen, solange die
+ Konstante <link linkend="constant.smarty.dir">SMARTY_DIR</link>
+ auf den korrekten Pfad zeigt. Im Folgenden werden Beispiele
+ für beide Fälle aufgezeigt.
+ </para>
+ <para>
+ So erzeugt man eine Instanz der Smarty-Klasse im PHP-Skript:
+ </para>
+ <example>
+ <title>Smarty Instanz erstellen:</title>
+ <programlisting role="php">
+<![CDATA[
+<?php
require('Smarty.class.php');
-$smarty = new Smarty;</screen>
- </example>
+$smarty = new Smarty;
+?>
+]]>
+ </programlisting>
+ </example>
+
+ <para>
+ Versuchen Sie das Skript auszuführen. Wenn Sie eine
+ Fehlermeldung erhalten dass <filename>Smarty.class.php</filename>
+ nicht gefunden werden konnte, versuchen Sie folgendes:
+ </para>
- <para>
- Versuchen Sie das Skript auszuführen. Wenn Sie eine Fehlermeldung erhalten dass
- <filename>Smarty.class.php</filename> nicht gefunden werden konnte, versuchen Sie folgendes:
- </para>
-
- <example>
- <title>Absoluter Pfad übergeben</title>
- <screen>
+ <example>
+ <title>Absoluter Pfad übergeben</title>
+ <programlisting role="php">
+<![CDATA[
+<?php
require('/usr/local/lib/php/Smarty/Smarty.class.php');
$smarty = new Smarty;</screen>
- </example>
+?>
+]]>
+ </programlisting>
+ </example>
- <example>
- <title>Library Verzeichnis dem Include-Pfad hinzufügen</title>
- <screen>
+ <example>
+ <title>Library Verzeichnis dem Include-Pfad hinzufügen</title>
+ <programlisting role="php">
+<![CDATA[
+<?php
// editieren Sie php.ini, fügen Sie das Smarty
// Verzeichnis Ihrem include_path hinzu, und starten Sie den Webserver neu
// Danach sollte folgendes Funktionieren.
require('Smarty.class.php');
-$smarty = new Smarty;</screen>
- </example>
+$smarty = new Smarty;
- <example>
- <title>SMARTY_DIR manuell setzen</title>
- <screen>
+?>
+]]>
+ </programlisting>
+ </example>
+ <example>
+ <title>SMARTY_DIR manuell setzen</title>
+ <programlisting role="php">
+<![CDATA[
+<?php
define('SMARTY_DIR','/usr/local/lib/php/Smarty/');
require(SMARTY_DIR.'Smarty.class.php');
-$smarty = new Smarty;</screen>
- </example>
+$smarty = new Smarty;
+]]>
+ </programlisting>
+ </example>
+ <para>
+ Jetzt, wo die Library Dateien an ihrem Platz sind, wird es Zeit,
+ die Smarty Verzeichnisse zu erstellen.
+ </para>
+ <para>
+ Für unser Beispiel werden wir die Smarty Umgebung für
+ eine Gästebuch-Applikation konfigurieren. Wir verwenden den
+ Applikationsnamen nur, um die Verzeichnis-Struktur zu
+ verdeutlichen. Sie können die selbe Umgebung für alle
+ Ihre Applikationen verwenden indem Sie 'guestbook' durch dem Namen
+ Ihrer Applikation ersetzen.
+ </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 <link
+ linkend="variable.template.dir">$template_dir</link>, <link
+ linkend="variable.compile.dir">$compile_dir</link>, <link
+ linkend="variable.config.dir">$config_dir</link> und <link
+ linkend="variable.cache.dir">$cache_dir</link> definiert. Die
+ Standardwerte sind: <filename
+ class="directory">templates</filename>, <filename
+ class="directory">templates_c</filename>, <filename
+ class="directory">configs</filename> und <filename
+ class="directory">cache</filename>. Für unser Beispiel legen
+ wir alle diese Verzeichnisse unter <filename
+ class="directory">/web/www.domain.com/smarty/guestbook/</filename>
+ an.
+ </para>
+ <note>
+ <title>Technische Bemerkung</title>
+ <para>
+ Wir empfehlen, diese Verzeichnisse ausserhalb der DocumentRoot
+ anzulegen, um mögliche Direktzugriffe zu verhindern.
+ </para>
+ </note>
+ <para>
+ In Ihrer DocumentRoot muss mindestens eine Datei liegen, die
+ für Browser zugänglich ist. Wir nennen dieses Skript
+ <filename>index.php</filename>, und legen es in das Verzeichnis
+ <filename class="directory">/guestbook/</filename> in unserer
+ DocumentRoot.
+ </para>
- <para>
- Jetzt, wo die Library Dateien an ihrem Platz sind, wird es
- Zeit, die Smarty Verzeichnisse zu erstellen.
- </para>
- <para>
- Für unser Beispiel werden wir die Smarty Umgebung für eine
- Gästebuch-Applikation konfigurieren. Wir verwenden den Applikationsnamen
- nur, um die Verzeichnis-Struktur zu verdeutlichen. Sie können die selbe
- Umgebung für alle Ihre Applikationen verwenden indem Sie 'guestbook'
- durch dem Namen Ihrer Applikation ersetzen.
- </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 <link linkend="variable.template.dir">$template_dir</link>,
- <link linkend="variable.compile.dir">$compile_dir</link>, <link linkend="variable.config.dir">$config_dir</link> und <link linkend="variable.cache.dir">$cache_dir</link> definiert. Die Standardwerte sind:
- <filename class="directory">templates</filename>, <filename class="directory">templates_c</filename>, <filename class="directory">configs</filename> und <filename class="directory">cache</filename>. Für unser Beispiel
- legen wir alle diese Verzeichnisse unter <filename class="directory">/web/www.domain.com/smarty/guestbook/</filename> an.
- </para>
-
- <note>
- <title>Technische Bemerkung</title>
- <para>
- Wir empfehlen, diese Verzeichnisse ausserhalb der DocumentRoot anzulegen,
- um mögliche Direktzugriffe zu verhindern.
- </para>
- </note>
-
- <para>
- In Ihrer DocumentRoot muss mindestens eine Datei liegen, die für Browser
- zugänglich ist. Wir nennen dieses Skript <filename>index.php</filename>, und legen
- es in das Verzeichnis <filename class="directory">/guestbook/</filename> in unserer DocumentRoot.
- </para>
-
- <note>
- <title>Technische Bemerkung</title>
- <para>
- Bequem ist es, den Webserver so zu konfigurieren, dass <filename>index.php</filename> als
- Standard-Verzeichnis-Index verwendet wird. Somit kann man das Skript
- direkt mit 'http://www.domain.com/guestbook/' aufrufen. Falls Sie Apache
- verwenden, lässt sich dies konfigurieren indem Sie <filename>index.php</filename>
- als letzten Eintrag für <emphasis>DirectoryIndex</emphasis> verwenden. (Jeder Eintrag muss
- mit einem Leerzeichen abgetrennt werden).
- </para>
- </note>
-
- <para>
- Die Dateistruktur bis jetzt:
- </para>
-
- <example>
- <title>Beispiel der Dateistruktur</title>
- <screen>
+ <note>
+ <title>Technische Bemerkung</title>
+ <para>
+ Bequem ist es, den Webserver so zu konfigurieren, dass
+ <filename>index.php</filename> als Standard-Verzeichnis-Index
+ verwendet wird. Somit kann man das Skript direkt mit
+ 'http://www.domain.com/guestbook/' aufrufen. Falls Sie Apache
+ verwenden, lässt sich dies konfigurieren indem Sie
+ <filename>index.php</filename> als letzten Eintrag für
+ <emphasis>DirectoryIndex</emphasis> verwenden. (Jeder Eintrag
+ muss mit einem Leerzeichen abgetrennt werden).
+ </para>
+ </note>
+
+ <para>
+ Die Dateistruktur bis jetzt:
+ </para>
+
+ <example>
+ <title>Beispiel der Dateistruktur</title>
+ <screen>
+<![CDATA[
/usr/local/lib/php/Smarty/Smarty.class.php
/usr/local/lib/php/Smarty/Smarty_Compiler.class.php
/usr/local/lib/php/Smarty/Config_File.class.php
@@ -228,82 +341,102 @@
/web/www.example.com/smarty/guestbook/configs/
/web/www.example.com/smarty/guestbook/cache/
-/web/www.example.com/docs/guestbook/index.php</screen>
- </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>
- Smarty benötigt <emphasis role="bold">Schreibzugriff</emphasis> auf die Verzeichnisse <link linkend="variable.compile.dir">$compile_dir</link> und <link linkend="variable.cache.dir">$cache_dir</link>.
- Stellen Sie also sicher, dass der Webserver-Benutzer (normalerweise Benutzer 'nobody' und Gruppe 'nogroup')
- in diese Verzeichnisse schreiben kann. (In OS X lautet der Benutzer normalerweise 'www' und
- ist in der Gruppe 'www'). Wenn Sie Apache verwenden, können Sie in der httpd.conf (gewöhnlich in '/usr/local/apache/conf/')
- nachsehen, unter welchem Benutzer Ihr Server läuft.
- </para>
-
- <example>
- <title>Dateirechte einrichten</title>
- <screen>
+/web/www.example.com/docs/guestbook/index.php
+]]>
+ </screen>
+ </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>
+ Smarty benötigt <emphasis
+ role="bold">Schreibzugriff</emphasis> auf die Verzeichnisse <link
+ linkend="variable.compile.dir">$compile_dir</link> und <link
+ linkend="variable.cache.dir">$cache_dir</link>. Stellen Sie also
+ sicher, dass der Webserver-Benutzer (normalerweise Benutzer
+ 'nobody' und Gruppe 'nogroup') in diese Verzeichnisse schreiben
+ kann. (In OS X lautet der Benutzer normalerweise 'www' und ist in
+ der Gruppe 'www'). Wenn Sie Apache verwenden, können Sie in
+ der httpd.conf (gewöhnlich in '/usr/local/apache/conf/')
+ nachsehen, unter welchem Benutzer Ihr Server läuft.
+ </para>
+ <example>
+ <title>Dateirechte einrichten</title>
+ <programlisting role="shell">
+<![CDATA[
chown nobody:nobody /web/www.example.com/smarty/guestbook/templates_c/
chmod 770 /web/www.example.com/smarty/guestbook/templates_c/
chown nobody:nobody /web/www.example.com/smarty/guestbook/cache/
chmod 770 /web/www.example.com/smarty/guestbook/cache/</screen>
- </example>
+ ]]>
+ </programlisting>
+ </example>
+
+ <note>
+ <title>Technische Bemerkung</title>
+ <para>
+ 'chmod 770' setzt ziemlich strenge Rechte und erlaubt nur dem
+ Benutzer 'nobody' und der Gruppe 'nobody' Lese-/Schreibzugriff
+ auf diese Verzeichnisse. Falls Sie die Rechte so setzen
+ möchten, dass auch andere Benutzer die Dateien lesen
+ können (vor allem für Ihren eigenen Komfort), so
+ erreichen Sie dies mit 775.
+ </para>
+ </note>
+
+ <para>
+ Nun müssen wir die <filename>index.tpl</filename> Datei
+ erstellen, welche Smarty laden soll. Die Datei wird in Ihrem
+ <link linkend="variable.template.dir">$template_dir</link>
+ abgelegt.
+ </para>
- <note>
- <title>Technische Bemerkung</title>
- <para>
- 'chmod 770' setzt ziemlich strenge Rechte und erlaubt nur dem Benutzer 'nobody'
- und der Gruppe 'nobody' Lese-/Schreibzugriff auf diese Verzeichnisse. Falls Sie
- die Rechte so setzen möchten, dass auch andere Benutzer die Dateien lesen
- können (vor allem für Ihren eigenen Komfort), so erreichen Sie dies mit 775.
- </para>
- </note>
-
- <para>
- Nun müssen wir die <filename>index.tpl</filename> Datei erstellen, welche Smarty laden soll.
- Die Datei wird in Ihrem <link linkend="variable.template.dir">$template_dir</link> abgelegt.
- </para>
-
- <example>
- <title>Editieren von /web/www.example.com/smarty/guestbook/templates/index.tpl</title>
- <screen>
+ <example>
+ <title>Editieren von /web/www.example.com/smarty/guestbook/templates/index.tpl</title>
+ <screen>
+<![CDATA[
{* Smarty *}
-Hallo, {$name}!</screen>
- </example>
+Hallo, {$name}!
+]]>
+ </screen>
+ </example>
+
+ <note>
+ <title>Technische Bemerkung</title>
+ <para>
+ {* Smarty *} ist ein <link
+ linkend="language.syntax.comments">Template-Kommentar</link>. Der
+ wird zwar nicht benötigt, es ist jedoch eine gute Idee jedes
+ Template mit einem Kommentar zu versehen. Dies erleichtert die
+ Erkennbarkeit des Templates, unabhängig von der verwendeten
+ Dateierweiterung. (Zum Beispiel für Editoren die
+ Syntax-Highlighting unterstützen.)
+ </para>
+ </note>
+ <para>
+ Als nächstes editieren wir die Datei
+ <filename>index.php</filename>. Wir erzeugen eine Smarty-Instanz,
+ weisen dem Template eine Variable zu und geben
+ <filename>index.tpl</filename> aus.
+ </para>
- <note>
- <title>Technische Bemerkung</title>
- <para>
- {* Smarty *} ist ein <link linkend="language.syntax.comments">Template-Kommentar</link>. Der wird zwar nicht benötigt,
- es ist jedoch eine gute Idee jedes Template mit einem Kommentar zu versehen.
- Dies erleichtert die Erkennbarkeit des Templates, unabhängig von der
- verwendeten Dateierweiterung. (Zum Beispiel für Editoren die Syntax-Highlighting
- unterstützen.)
- </para>
- </note>
-
- <para>
- Als nächstes editieren wir die Datei <filename>index.php</filename>. Wir erzeugen eine
- Smarty-Instanz, weisen dem Template eine Variable zu und geben <filename>index.tpl</filename> aus.
- </para>
-
- <example>
- <title>Editieren von /web/www.example.com/docs/guestbook/index.php</title>
- <screen>
+ <example>
+ <title>Editieren von /web/www.example.com/docs/guestbook/index.php</title>
+ <programlisting role="php">
+<![CDATA[
+<?php
define('SMARTY_DIR','/usr/local/lib/php/Smarty/');
require(SMARTY_DIR.'Smarty.class.php');
@@ -318,44 +451,56 @@
$smarty->assign('name','Ned');
$smarty->display('index.tpl');</screen>
- </example>
+?>
+]]>
+ </programlisting>
+ </example>
+
+ <note>
+ <title>Technische Bemerkung</title>
+ <para>
+ In unserem Beispiel verwenden wir durchwegs absolute Pfadnamen zu
+ den Smarty-Verzeichnissen. Falls <filename
+ class="directory">/web/www.example.com/smarty/guestbook/</filename>
+ in Ihrem PHP-'include_path' liegt, wäre dies nicht
+ nötig. Es ist jedoch effizienter und weniger
+ fehleranfällig die Pfade absolut zu setzen. Und es
+ garantiert, dass Smarty die Templates aus dem geplanten
+ Verzeichnis lädt.
+ </para>
+ </note>
- <note>
- <title>Technische Bemerkung</title>
- <para>
- In unserem Beispiel verwenden wir durchwegs absolute Pfadnamen zu den
- Smarty-Verzeichnissen. Falls <filename class="directory">/web/www.example.com/smarty/guestbook/</filename> in
- Ihrem PHP-'include_path' liegt, wäre dies nicht nötig. Es ist jedoch
- effizienter und weniger fehleranfällig die Pfade absolut zu setzen.
- Und es garantiert, dass Smarty die Templates aus dem geplanten Verzeichnis lädt.
- </para>
- </note>
-
- <para>
- Wenn Sie <filename>index.php</filename> nun in Ihrem Webbrowser öffnen, sollte 'Hallo, Ned!' ausgegeben werden.
- </para>
- <para>
- Die Basis-Installation von Smarty wäre somit beendet.
- </para>
- </sect1>
- <sect1 id="installing.smarty.extended">
+ <para>
+ Wenn Sie <filename>index.php</filename> nun in Ihrem Webbrowser
+ öffnen, sollte 'Hallo, Ned!' ausgegeben werden.
+ </para>
+ <para>
+ Die Basis-Installation von Smarty wäre somit beendet.
+ </para>
+ </sect1>
+ <sect1 id="installing.smarty.extended">
<title>Erweiterte Konfiguration</title>
<para>
-
- Dies ist eine Weiterführung der <link linkend="installing.smarty.basic">Basis Installation</link>, bitte lesen Sie diese zuerst!
+ Dies ist eine Weiterführung der <link
+ linkend="installing.smarty.basic">Basis Installation</link>, bitte
+ lesen Sie diese zuerst!
</para>
<para>
- Ein flexiblerer Weg um Smarty aufzusetzen ist, die Klasse zu erweitern und
- eine eigene Smarty-Umgebung zu initialisieren. Anstatt immer wieder
- 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/'
- erstellen und eine Datei namens 'setup.php' darin anlegen.
+ Ein flexiblerer Weg um Smarty aufzusetzen ist, die Klasse zu
+ erweitern und eine eigene Smarty-Umgebung zu
+ initialisieren. Anstatt immer wieder 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/' erstellen und eine Datei namens
+ 'setup.php' darin anlegen.
</para>
<example>
<title>Editieren von /php/includes/guestbook/setup.php</title>
- <screen>
+ <programlisting role="php">
+<![CDATA[
+<?php
// Smarty Library Dateien laden
define('SMARTY_DIR','/usr/local/lib/php/Smarty/');
@@ -368,41 +513,45 @@
function Smarty_GuestBook()
{
- // Konstruktor. Diese Werte werden für jede Instanz automatisch gesetzt
+ // Konstruktor. Diese Werte werden für jede Instanz automatisch gesetzt
- $this->Smarty();
+ $this->Smarty();
- $this->template_dir = '/web/www.example.com/smarty/guestbook/templates/';
- $this->compile_dir = '/web/www.example.com/smarty/guestbook/templates_c/';
- $this->config_dir = '/web/www.example.com/smarty/guestbook/configs/';
- $this->cache_dir = '/web/www.example.com/smarty/guestbook/cache/';
-
- $this->caching = true;
- $this->assign('app_name','Guest Book');
+ $this->template_dir = '/web/www.example.com/smarty/guestbook/templates/';
+ $this->compile_dir = '/web/www.example.com/smarty/guestbook/templates_c/';
+ $this->config_dir = '/web/www.example.com/smarty/guestbook/configs/';
+ $this->cache_dir = '/web/www.example.com/smarty/guestbook/cache/';
+
+ $this->caching = true;
+ $this->assign('app_name','Guest Book');
}
-}</screen>
+}
+ </programlisting>
</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>
+ <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>
- Nun passen wir <filename>index.php</filename> an, um 'setup.php' zu verwenden:
- </para>
+ <para>
+ Nun passen wir <filename>index.php</filename> an, um 'setup.php'
+ zu verwenden:
+ </para>
<example>
<title>Editieren von /web/www.example.com/docs/guestbook/index.php</title>
- <screen>
+ <programlisting role="php">
+<![CDATA[
+<?php
require('guestbook/setup.php');
@@ -410,12 +559,14 @@
$smarty->assign('name','Ned');
-$smarty->display('index.tpl');</screen>
- </example>
-
+$smarty->display('index.tpl');
+]]>
+ </programlisting>
+ </example>
<para>
- Wie Sie sehen können, ist es sehr einfach eine Instanz von Smarty zu erstellen.
- Mit Hilfe von Smarty_GuestBook werden alle Variablen automatisch initialisiert.
+ Wie Sie sehen können, ist es sehr einfach eine Instanz von
+ Smarty zu erstellen. Mit Hilfe von Smarty_GuestBook werden alle
+ Variablen automatisch initialisiert.
</para>
</sect1>