Arbeiten mit dem Template System Smarty
Hier ist mal eine Erklärung wie man Smarty installiert und mit dem Template System arbeitet.
Installation
Als erstes muss du Smarty herunterladen und erfolgreich auf deinem Server oder "Home" Server (xampp) laden können.
Die Aktuelle Version kannst du hier herunterladen.
http://smarty.php.net/download.php
Wenn du Smarty heruntergeladen hast entpakst du alles und kopierst den Ordner "Libs" in irgend ein Verzeichniss von deinem Webspace oder deinem localhost. Wichtig ist das du den "kompletten" Pfad kennst. Diesen kannst du rausfinden in dem du eine Datei namens "path.php" machst und folgenden Code in ihr einfügst.
- <?php
- echo $_server['script_filename'];
- ?>
Nun lädst du die Datei in den Ordner Libs und öffnest sie im Browser. Nun hast du wenn du "path.php" wegnimmst den kompletten Pfad.
Bei mir sieht dieser Pfad z.b. so aus (auf dem localhost)
C:/Programme/xampp/htdocs/libs/
Mit Smarty Arbeiten
Wenn du bis hier hin alles hast kannst du mal einen Ordner erstellen. Wir nennen ihn nun mal "Smarty_test" und tun diesen ins root Verzeichniss des localhost/Servers. In diesem Ordner erstellen wir nun einen Ordner Namens "templates" und einen Namens "templates_c". Wenn du das auf deinem Server machst, musst du dem Ordner templates_c Rechte per CHMOD geben. Stelle diese auf 777. Auf dem localhost sind die rechte automatisch da!
Das ganze sollte dann so aussehen.
- Smarty_test
--templates
--templates_c
Nun erstellen wir eine Datei Namens "index.php" und fügen ihn ihr folgenden Code ein.
- <?php
-
-
-
-
-
-
- include('c:/programme/xampp/htdocs/libs/smarty.class.php');
-
- $template = new smarty;
- $template->template_dir = 'C:/Programme/xampp/htdocs/Smarty_test/templates/';
- $template->compile_dir = 'C:/Programme/xampp/htdocs/Smarty_test/templates_c/';
- $template->assign('TITLE', 'Smarty Test');
- $template->display('index_body.tpl');
- ?>
Wie man sieht sind hier die direkten Pfäde angegeben. Das ist vor allem dann wichtig wenn Smarty nicht im gleichen Ordner liegt.
Erklärungen
Mit $template->assign(); definieren wir eine Variable diese dann im Template mit {$VARIABLE} aufgerufen werden kann.
Das $template->display(); ruft die Template Datei auf mit dieser gearbeitet werden soll. In diesem Fall habe ich sie "index_body.tpl" genannt. Erstelle diese Datei auch und füge in ihr folgenden Code ein.
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <title>{$TITLE}</title>
- <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
- </head>
- <body>
- <h1>{$TITLE}</h1>
- </body>
- </html>
Wie man sieht findet man hier unsere assign Variable TITLE wieder. Sie gibt hier das aus was in der PHP Datei zwischen den ' ' steht. Die Datei index_body.tpl sollte in den Ordner templates sein.
Resultate angucken.
Nun kannst du in deinem Browser http://localhost/Smarty_test/ aufrufen und solltest keine Fehlermeldung bekommen. Es sollte "Smarty Test" angezeigt werden. Wenn das so ist hast du alles richtig gemacht.
Nun gibt es natürlich noch mehrere möglichkeiten die Variablen ins Template zu übertragen wie z.b. in einem Array. Aber das hier recht für den Anfang erstmal. Weiteres hierzu gibt es bald in der Doku.