CMS - Workbench | DE


Templating and Coding for CMS (WordPress, Bludit, Automad, Typesetter, GetSimple, Pico and more)


Smarty 3 Template

Ein kleiner Smarty-Template Bau-Workshop für die Erstellung eines eigenen Parsers mit Smarty.

Teil 3 - des Template-Workshops in dem Sie ein erstes Template anlegen und Daten anzeigen lassen können - die erste Webseite zeigt sich.

Nachdem Sie die Template Engine Smarty heruntergeladen und installiert haben, wird es Zeit ein erstes Template zu erstellen. Legen Sie als erstes eine neue leere Datei mit dem Namen index.php in der root an, diese wird zukünftig als Einsprung für Ihre Damain dienen bzw. wird ausgeführt, um die Template Engine zu starten.

+-- radelle.de
       |
       +-- libs
       |
       +-- templates
       |      |
       |      artikel.tpl
       |
       +-- templates_c
       |
       index.php

Im Ordner templates legen Sie bitte eine Datei vorlage.tpl an. Diese Datei wird das HTML-Template aufnehmen das Smarty zur Laufzeit läd und befüllt.

index.php

Öffnen Sie die Datei index.php mit einem Editor Ihrer wahl und legen Sie die folgenden Programmzeilen an oder kopieren sie heraus:

01  <?php
02    require_once('libs/Smarty.class.php');
03    $smarty = new Smarty();
04
05    $smarty->assign('titel_tmpl',   'Titel der Webseite');
06    $smarty->assign('inhalt_tmpl',  'Der Beitragstext der Seite muss hier hin');
07    $smarty->assign('autor_tmpl',   'Oliver Lohse');
08    $smarty->assign('footer_tmpl',  'Impressum - Datenschutz - Copyright');
09  
10    $smarty->display('artikel.tpl');
11  ?>

Zeile 02 läd die Smarty Engine in das Index-Script und ist pflicht, ohne läuft es nicht. In Zeile 03 erzeugen Sie eine Instance bzw. ein neues Smarty-Objekt das Sie fortan nutzen können um Ihre Templateoperation darauf ausführen zu können.

Zeile 05 erzeugen Sie einen Platzhalter mit dem Namen titel_tmpl, dem Sie den Inhalt Titel der Webseite zuweisen (dazu später mehr). Die darauffolgenden Zeilen machen genau das gleiche, lediglich mit anderen Variablen und anderen Inhalten.

Das Laden des Templates artikel.tpl erfolgt am Ende des Scripts in Zeile 10. Da Smarty das Verzeichnis templates als Default kennt, ist es nicht nötig ihm dies vorher zu deklarieren, Smarty sucht automatisch in diesem Verzeichnis nach dem angegebenen Template.

Am Beginn und am Ende des Scriptes befinden sich die öffnenden und schließenden PHP-Statements <?php ... ?> die dem Browser signalisieren, das es sich um PHP-Code handelt.

artikel.tpl

Die Magie des Templatings passiert in der Datei artikel.tpl die Sie zuvor dort leer angelegt haben und auf die Sie im index.php Script referenzieren. Öffnen Sie diese Datei und fügen die folgenden Zeilen ein:

01  <html>
02    <head>
03
04      <title> {$titel_tmpl} </title>
05
06    </head>
07
08    <body>
09            
10      <h1> {$titel_tmpl}  </h1>
11      <p>  {$autor_tmpl}  </p>
12      <p>  {$inhalt_tmpl} </p>
13      <p>  {$footer_tmpl} </p>
14
15    </body>
16  </html>

Die Templatevariablen (rot) dürften Ihnen bereits aus der index.php Datei bekannt vorkommen, jetzt haben sie jedoch noch das typische Dollarzeichen vorangestellt, um als echte PHP-Variablen von Smarty interpretiert werden zu können. Führen Sie nun das Script aus indem Sie einfach Ihre Domain im Browser aufrufen z.B.: http://Radelle.de.

Der Browser zeigt Ihnen eine Webseite mit dem Inhalt aus der index.php an.

Zugegeben, interessantes Templating ist das noch nicht aber Sie haben eine rudimentäre HTML-Vorlage erzeugt welches von der Template Engine Smarty mit realen Werten zur Laufzeit geladen wird. Wenn der grundlegende Wirkmechanismus klar ist, dann können Sie sich daran setzen komplexe Templates und interessante CSS-Layouts zu kreieren.

Zwar schreibt das Smarty-Projekt die Extension TPL für seine Templates vor, ich würde jedoch TXT empfehlen. Durch die Änderung auf TXT kann Ihr Host-Editor die Dateien besser erkennen und ggf. zur Bearbeitung öffnen.

22.11.2020 • Smarty •


Oliver Lohse - Ich bin diplomierter Wirtschafts-Informatiker und Organisations-Programmierer in verschiedenen Sprachen bzw. Markup-Dialekten, z.B.: Java, JEE, COBOL, PHP, Python, MySQL, HTML, CSS, ANSI C, Lisp, Rexx, JavaScript, Scheme, ActionScript 2.0, Maschinensprache, Assembler und JCL. Seit mehr als 22 Jahren arbeite ich in einem grossen Softwareunternehmen in Niedersachsen. Sie sehen auf dieser Seite mein eigens für Bludit CMS entwickeltes Theme "Reaktor-Block IV".

Kontakt: Κontakt@Οliver-Lohse.de



CMS Workbench

Hilfreiche Tipps, Tricks, Codings und Codeschnipsel, die im Rahmen der Entwicklung, Weiterentwicklung und Templatings zum Thema CMS immer wieder benötigt werden - aus verschiedenen Sprachdialekten wie Java, JavaScript, PHP, Python und anderen.