| 
									
										
										
										
											2004-07-16 08:17:51 +00:00
										 |  |  |  | <?xml version="1.0" encoding="iso-8859-1"?> | 
					
						
							| 
									
										
										
										
											2004-03-28 15:20:08 +00:00
										 |  |  |  | <!-- $Revision$ --> | 
					
						
							| 
									
										
										
										
											2005-06-09 09:57:02 +00:00
										 |  |  |  | <!-- EN-Revision: 1.10 Maintainer: andreas Status: ready --> | 
					
						
							| 
									
										
										
										
											2004-03-28 15:20:08 +00:00
										 |  |  |  | <part id="getting.started"> | 
					
						
							|  |  |  |  |  <title>Erste Schritte</title> | 
					
						
							|  |  |  |  |  <chapter id="what.is.smarty"> | 
					
						
							| 
									
										
										
										
											2005-06-09 09:57:02 +00:00
										 |  |  |  |   <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<69>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<64>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> | 
					
						
							| 
									
										
										
										
											2004-03-28 15:20:08 +00:00
										 |  |  |  |  </chapter> | 
					
						
							|  |  |  |  |  <chapter id="installation"> | 
					
						
							|  |  |  |  |   <title>Installation</title> | 
					
						
							|  |  |  |  |   <sect1 id="installation.requirements"> | 
					
						
							|  |  |  |  |    <title>Anforderungen</title> | 
					
						
							|  |  |  |  |    <para> | 
					
						
							| 
									
										
										
										
											2005-06-09 09:57:02 +00:00
										 |  |  |  |     Smarty benötigt einen Webserver mit PHP >=4.0.6. | 
					
						
							| 
									
										
										
										
											2004-03-28 15:20:08 +00:00
										 |  |  |  |    </para> | 
					
						
							|  |  |  |  |   </sect1> | 
					
						
							|  |  |  |  |   <sect1 id="installing.smarty.basic"> | 
					
						
							| 
									
										
										
										
											2005-06-09 09:57:02 +00:00
										 |  |  |  |    <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<EFBFBD>tigte Smarty-Library Dateien</title> | 
					
						
							|  |  |  |  |     <screen> | 
					
						
							|  |  |  |  | <![CDATA[ | 
					
						
							| 
									
										
										
										
											2004-03-28 15:20:08 +00:00
										 |  |  |  | Smarty.class.php | 
					
						
							|  |  |  |  | Smarty_Compiler.class.php | 
					
						
							|  |  |  |  | Config_File.class.php | 
					
						
							|  |  |  |  | debug.tpl | 
					
						
							| 
									
										
										
										
											2005-06-09 09:18:24 +00:00
										 |  |  |  | /internals/*.php (alle) | 
					
						
							| 
									
										
										
										
											2005-06-09 09:57:02 +00:00
										 |  |  |  | /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 | 
					
						
							| 
									
										
										
										
											2004-03-28 15:20:08 +00:00
										 |  |  |  | require('Smarty.class.php'); | 
					
						
							| 
									
										
										
										
											2005-06-09 09:57:02 +00:00
										 |  |  |  | $smarty = new Smarty; | 
					
						
							|  |  |  |  | ?> | 
					
						
							|  |  |  |  | ]]> | 
					
						
							|  |  |  |  |     </programlisting> | 
					
						
							|  |  |  |  |    </example> | 
					
						
							| 
									
										
										
										
											2004-03-28 15:20:08 +00:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-06-09 09:57:02 +00:00
										 |  |  |  |    <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> | 
					
						
							| 
									
										
										
										
											2004-03-28 15:20:08 +00:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-06-09 09:57:02 +00:00
										 |  |  |  |    <example> | 
					
						
							|  |  |  |  |     <title>Absoluter Pfad übergeben</title> | 
					
						
							|  |  |  |  |     <programlisting role="php"> | 
					
						
							|  |  |  |  | <![CDATA[ | 
					
						
							|  |  |  |  | <?php | 
					
						
							| 
									
										
										
										
											2004-03-28 15:20:08 +00:00
										 |  |  |  | require('/usr/local/lib/php/Smarty/Smarty.class.php'); | 
					
						
							| 
									
										
										
										
											2005-09-16 09:42:51 +00:00
										 |  |  |  | $smarty = new Smarty; | 
					
						
							| 
									
										
										
										
											2005-06-09 09:57:02 +00:00
										 |  |  |  | ?> | 
					
						
							|  |  |  |  | ]]> | 
					
						
							|  |  |  |  |     </programlisting> | 
					
						
							|  |  |  |  |    </example> | 
					
						
							| 
									
										
										
										
											2004-03-28 15:20:08 +00:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-06-09 09:57:02 +00:00
										 |  |  |  |    <example> | 
					
						
							|  |  |  |  |     <title>Library Verzeichnis dem Include-Pfad hinzufügen</title> | 
					
						
							|  |  |  |  |     <programlisting role="php"> | 
					
						
							|  |  |  |  | <![CDATA[ | 
					
						
							|  |  |  |  | <?php | 
					
						
							| 
									
										
										
										
											2004-03-28 15:20:08 +00:00
										 |  |  |  | // 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'); | 
					
						
							| 
									
										
										
										
											2005-06-09 09:57:02 +00:00
										 |  |  |  | $smarty = new Smarty; | 
					
						
							| 
									
										
										
										
											2004-03-28 15:20:08 +00:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-06-09 09:57:02 +00:00
										 |  |  |  | ?> | 
					
						
							|  |  |  |  | ]]> | 
					
						
							|  |  |  |  |     </programlisting> | 
					
						
							|  |  |  |  |    </example> | 
					
						
							|  |  |  |  |    <example> | 
					
						
							|  |  |  |  |     <title>SMARTY_DIR manuell setzen</title> | 
					
						
							|  |  |  |  |     <programlisting role="php"> | 
					
						
							|  |  |  |  | <![CDATA[ | 
					
						
							|  |  |  |  | <?php | 
					
						
							| 
									
										
										
										
											2004-03-28 15:20:08 +00:00
										 |  |  |  | define('SMARTY_DIR','/usr/local/lib/php/Smarty/'); | 
					
						
							|  |  |  |  | require(SMARTY_DIR.'Smarty.class.php'); | 
					
						
							| 
									
										
										
										
											2005-06-09 09:57:02 +00:00
										 |  |  |  | $smarty = new Smarty; | 
					
						
							| 
									
										
										
										
											2005-09-16 09:40:46 +00:00
										 |  |  |  | ?> | 
					
						
							| 
									
										
										
										
											2005-06-09 09:57:02 +00:00
										 |  |  |  | ]]> | 
					
						
							|  |  |  |  |     </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. | 
					
						
							| 
									
										
										
										
											2004-03-28 15:20:08 +00:00
										 |  |  |  |     </para> | 
					
						
							| 
									
										
										
										
											2005-06-09 09:57:02 +00:00
										 |  |  |  |    </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> | 
					
						
							|  |  |  |  | <![CDATA[ | 
					
						
							| 
									
										
										
										
											2004-03-28 15:20:08 +00:00
										 |  |  |  | /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 | 
					
						
							|  |  |  |  | /usr/local/lib/php/Smarty/debug.tpl | 
					
						
							|  |  |  |  | /usr/local/lib/php/Smarty/plugins/*.php | 
					
						
							|  |  |  |  | /usr/local/lib/php/Smarty/core/*.php | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-06-09 09:18:24 +00:00
										 |  |  |  | /web/www.example.com/smarty/guestbook/templates/ | 
					
						
							|  |  |  |  | /web/www.example.com/smarty/guestbook/templates_c/ | 
					
						
							|  |  |  |  | /web/www.example.com/smarty/guestbook/configs/ | 
					
						
							|  |  |  |  | /web/www.example.com/smarty/guestbook/cache/ | 
					
						
							| 
									
										
										
										
											2004-03-28 15:20:08 +00:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-06-09 09:57:02 +00:00
										 |  |  |  | /web/www.example.com/docs/guestbook/index.php | 
					
						
							|  |  |  |  | ]]> | 
					
						
							|  |  |  |  |     </screen> | 
					
						
							|  |  |  |  |    </example> | 
					
						
							| 
									
										
										
										
											2004-03-28 15:20:08 +00:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-06-09 09:57:02 +00:00
										 |  |  |  |    <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<65>hnlich in '/usr/local/apache/conf/') | 
					
						
							|  |  |  |  |     nachsehen, unter welchem Benutzer Ihr Server läuft. | 
					
						
							|  |  |  |  |    </para> | 
					
						
							|  |  |  |  |    <example> | 
					
						
							|  |  |  |  |     <title>Dateirechte einrichten</title> | 
					
						
							|  |  |  |  |     <programlisting role="shell"> | 
					
						
							|  |  |  |  | <![CDATA[ | 
					
						
							| 
									
										
										
										
											2005-06-09 09:18:24 +00:00
										 |  |  |  | chown nobody:nobody /web/www.example.com/smarty/guestbook/templates_c/ | 
					
						
							|  |  |  |  | chmod 770 /web/www.example.com/smarty/guestbook/templates_c/ | 
					
						
							| 
									
										
										
										
											2004-03-28 15:20:08 +00:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-06-09 09:18:24 +00:00
										 |  |  |  | chown nobody:nobody /web/www.example.com/smarty/guestbook/cache/ | 
					
						
							| 
									
										
										
										
											2005-09-16 09:42:51 +00:00
										 |  |  |  | chmod 770 /web/www.example.com/smarty/guestbook/cache/ | 
					
						
							| 
									
										
										
										
											2005-09-16 09:40:46 +00:00
										 |  |  |  | ]]> | 
					
						
							| 
									
										
										
										
											2005-06-09 09:57:02 +00:00
										 |  |  |  |     </programlisting> | 
					
						
							|  |  |  |  |    </example> | 
					
						
							| 
									
										
										
										
											2004-03-28 15:20:08 +00:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-06-09 09:57:02 +00:00
										 |  |  |  |    <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> | 
					
						
							| 
									
										
										
										
											2004-03-28 15:20:08 +00:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-06-09 09:57:02 +00:00
										 |  |  |  |    <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> | 
					
						
							| 
									
										
										
										
											2004-03-28 15:20:08 +00:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-06-09 09:57:02 +00:00
										 |  |  |  |    <example> | 
					
						
							|  |  |  |  |     <title>Editieren von /web/www.example.com/smarty/guestbook/templates/index.tpl</title> | 
					
						
							|  |  |  |  |     <screen> | 
					
						
							|  |  |  |  | <![CDATA[ | 
					
						
							| 
									
										
										
										
											2004-03-28 15:20:08 +00:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-06-09 09:57:02 +00:00
										 |  |  |  | {* Smarty *} | 
					
						
							| 
									
										
										
										
											2004-03-28 15:20:08 +00:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-06-09 09:57:02 +00:00
										 |  |  |  | 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> | 
					
						
							| 
									
										
										
										
											2004-03-28 15:20:08 +00:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-06-09 09:57:02 +00:00
										 |  |  |  |    <example> | 
					
						
							|  |  |  |  |     <title>Editieren von /web/www.example.com/docs/guestbook/index.php</title> | 
					
						
							|  |  |  |  |     <programlisting role="php"> | 
					
						
							|  |  |  |  | <![CDATA[ | 
					
						
							|  |  |  |  | <?php | 
					
						
							| 
									
										
										
										
											2004-03-28 15:20:08 +00:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | define('SMARTY_DIR','/usr/local/lib/php/Smarty/'); | 
					
						
							|  |  |  |  | require(SMARTY_DIR.'Smarty.class.php'); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | $smarty = new Smarty; | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-06-09 09:18:24 +00:00
										 |  |  |  | $smarty->template_dir = '/web/www.example.com/smarty/guestbook/templates/'; | 
					
						
							|  |  |  |  | $smarty->compile_dir = '/web/www.example.com/smarty/guestbook/templates_c/'; | 
					
						
							|  |  |  |  | $smarty->config_dir = '/web/www.example.com/smarty/guestbook/configs/'; | 
					
						
							|  |  |  |  | $smarty->cache_dir = '/web/www.example.com/smarty/guestbook/cache/'; | 
					
						
							| 
									
										
										
										
											2004-03-28 15:20:08 +00:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | $smarty->assign('name','Ned'); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-09-16 09:40:46 +00:00
										 |  |  |  | $smarty->display('index.tpl'); | 
					
						
							| 
									
										
										
										
											2005-06-09 09:57:02 +00:00
										 |  |  |  | ?> | 
					
						
							|  |  |  |  | ]]> | 
					
						
							|  |  |  |  |     </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> | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |    <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"> | 
					
						
							| 
									
										
										
										
											2004-03-28 15:20:08 +00:00
										 |  |  |  |    <title>Erweiterte Konfiguration</title> | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |    <para> | 
					
						
							| 
									
										
										
										
											2005-06-09 09:57:02 +00:00
										 |  |  |  |     Dies ist eine Weiterführung der <link | 
					
						
							|  |  |  |  |     linkend="installing.smarty.basic">Basis Installation</link>, bitte | 
					
						
							|  |  |  |  |     lesen Sie diese zuerst! | 
					
						
							| 
									
										
										
										
											2004-03-28 15:20:08 +00:00
										 |  |  |  |    </para> | 
					
						
							|  |  |  |  |    <para> | 
					
						
							| 
									
										
										
										
											2005-06-09 09:57:02 +00:00
										 |  |  |  |     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. | 
					
						
							| 
									
										
										
										
											2004-03-28 15:20:08 +00:00
										 |  |  |  |    </para> | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |    <example> | 
					
						
							|  |  |  |  |     <title>Editieren von /php/includes/guestbook/setup.php</title> | 
					
						
							| 
									
										
										
										
											2005-06-09 09:57:02 +00:00
										 |  |  |  |     <programlisting role="php"> | 
					
						
							|  |  |  |  | <![CDATA[ | 
					
						
							|  |  |  |  | <?php | 
					
						
							| 
									
										
										
										
											2004-03-28 15:20:08 +00:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | // Smarty Library Dateien laden | 
					
						
							|  |  |  |  | define('SMARTY_DIR','/usr/local/lib/php/Smarty/'); | 
					
						
							|  |  |  |  | require(SMARTY_DIR.'Smarty.class.php'); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | // ein guter Platz um Applikations spezifische Libraries zu laden | 
					
						
							|  |  |  |  | // require('guestbook/guestbook.lib.php'); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | class Smarty_GuestBook extends Smarty { | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2004-07-16 08:17:51 +00:00
										 |  |  |  |    function Smarty_GuestBook() | 
					
						
							|  |  |  |  |    { | 
					
						
							| 
									
										
										
										
											2005-06-09 09:57:02 +00:00
										 |  |  |  |   // Konstruktor. Diese Werte werden für jede Instanz automatisch gesetzt | 
					
						
							| 
									
										
										
										
											2004-03-28 15:20:08 +00:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-06-09 09:57:02 +00:00
										 |  |  |  |   $this->Smarty(); | 
					
						
							| 
									
										
										
										
											2004-03-28 15:20:08 +00:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-06-09 09:57:02 +00:00
										 |  |  |  |   $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'); | 
					
						
							| 
									
										
										
										
											2004-03-28 15:20:08 +00:00
										 |  |  |  |    } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-06-09 09:57:02 +00:00
										 |  |  |  | } | 
					
						
							| 
									
										
										
										
											2005-09-16 09:40:46 +00:00
										 |  |  |  | ?> | 
					
						
							|  |  |  |  | ]]> | 
					
						
							| 
									
										
										
										
											2005-06-09 09:57:02 +00:00
										 |  |  |  |     </programlisting> | 
					
						
							| 
									
										
										
										
											2004-03-28 15:20:08 +00:00
										 |  |  |  |    </example> | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |    <note> | 
					
						
							| 
									
										
										
										
											2005-06-09 09:57:02 +00:00
										 |  |  |  |     <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> | 
					
						
							| 
									
										
										
										
											2004-03-28 15:20:08 +00:00
										 |  |  |  |    </note> | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-06-09 09:57:02 +00:00
										 |  |  |  |    <para> | 
					
						
							|  |  |  |  |     Nun passen wir <filename>index.php</filename> an, um 'setup.php' | 
					
						
							|  |  |  |  |     zu verwenden: | 
					
						
							|  |  |  |  |    </para> | 
					
						
							| 
									
										
										
										
											2004-03-28 15:20:08 +00:00
										 |  |  |  |     | 
					
						
							|  |  |  |  |    <example> | 
					
						
							| 
									
										
										
										
											2005-06-09 09:18:24 +00:00
										 |  |  |  |     <title>Editieren von /web/www.example.com/docs/guestbook/index.php</title> | 
					
						
							| 
									
										
										
										
											2005-06-09 09:57:02 +00:00
										 |  |  |  |    <programlisting role="php"> | 
					
						
							|  |  |  |  | <![CDATA[ | 
					
						
							|  |  |  |  | <?php | 
					
						
							| 
									
										
										
										
											2004-03-28 15:20:08 +00:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | require('guestbook/setup.php'); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | $smarty = new Smarty_GuestBook; | 
					
						
							|  |  |  |  | $smarty->assign('name','Ned'); | 
					
						
							| 
									
										
										
										
											2005-06-09 09:57:02 +00:00
										 |  |  |  | $smarty->display('index.tpl'); | 
					
						
							| 
									
										
										
										
											2005-09-16 09:40:46 +00:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | ?> | 
					
						
							| 
									
										
										
										
											2005-06-09 09:57:02 +00:00
										 |  |  |  | ]]> | 
					
						
							|  |  |  |  |    </programlisting> | 
					
						
							|  |  |  |  |   </example> | 
					
						
							| 
									
										
										
										
											2004-03-28 15:20:08 +00:00
										 |  |  |  |   <para> | 
					
						
							| 
									
										
										
										
											2005-06-09 09:57:02 +00:00
										 |  |  |  |    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. | 
					
						
							| 
									
										
										
										
											2004-03-28 15:20:08 +00:00
										 |  |  |  |   </para> | 
					
						
							|  |  |  |  |     | 
					
						
							|  |  |  |  |   </sect1> | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |  </chapter> | 
					
						
							|  |  |  |  | </part> | 
					
						
							| 
									
										
										
										
											2004-07-16 14:32:31 +00:00
										 |  |  |  | <!-- Keep this comment at the end of the file
 | 
					
						
							|  |  |  |  | Local variables: | 
					
						
							|  |  |  |  | mode: sgml | 
					
						
							|  |  |  |  | sgml-omittag:t | 
					
						
							|  |  |  |  | sgml-shorttag:t | 
					
						
							|  |  |  |  | sgml-minimize-attributes:nil | 
					
						
							|  |  |  |  | sgml-always-quote-attributes:t | 
					
						
							|  |  |  |  | sgml-indent-step:1 | 
					
						
							|  |  |  |  | sgml-indent-data:t | 
					
						
							|  |  |  |  | indent-tabs-mode:nil | 
					
						
							|  |  |  |  | sgml-parent-document:nil | 
					
						
							|  |  |  |  | sgml-default-dtd-file:"../../../../manual.ced" | 
					
						
							|  |  |  |  | sgml-exposed-tags:nil | 
					
						
							|  |  |  |  | sgml-local-catalogs:nil | 
					
						
							|  |  |  |  | sgml-local-ecat-files:nil | 
					
						
							|  |  |  |  | End: | 
					
						
							|  |  |  |  | vim600: syn=xml fen fdm=syntax fdl=2 si | 
					
						
							|  |  |  |  | vim: et tw=78 syn=sgml | 
					
						
							|  |  |  |  | vi: ts=1 sw=1 | 
					
						
							|  |  |  |  | --> |