Skip to content

Doc smarty

KoernerWS edited this page Sep 2, 2011 · 1 revision

Einführung

Mit ilch 1.2 wird die Möglichkeit geboten außer der ilch eigenen Template Klasse (tpl) auch [Smarty] (http://www.smarty.net/) in Version 3 zu verwenden. Wenn du dich mit Smarty nicht auskennst, kannst du dich in der Dokumentation auf der Smartyseite einlesen.

Einbindung von Smarty innerhalb von ilch

Die Einbindung erfolgt über eine Klasse die von smarty erbt, namens iSmarty, deshalb sollte es auch möglich sein, die Smarty Version im include/includes/libs/smarty Ordner zu aktualisieren, falls eine neuere Version vorhanden sein sollte, ohne die Funktionalität für ilch zu verlieren. Zur Verwendung von Smarty innerhalb von ilch sollte nur diese Klasse genutzt werden, da sie Optionen setzt und einige Methoden überschreibt, die die Verwendung mit ilch erleichtern. Diese Klasse wird nicht automatisch geladen, da ja nicht permanent 2 verschiedene Templateenginnes geladen sein müssen, zur Verwendung also die include/includes/libs/smarty/Smarty.class.php includen. Für Templates der tpl Klasse wurde eigentlich immer die Endung htm verwendet, um eine schnelle Unterscheidung der Templates zu ermöglichen, sollten Smarty-Templates die Endung tpl erhalten. Smarty Templates werden an den gleichen Stellen wie normale Templates gesucht, also:

  • beim Aufruf über die index.php
    • zuerst in einem include/designs/**NAME**/templates Ordner im Verzeichnis des aktiven Designs
    • ansonsten im include/templates Ordner
  • beim Aufruf über die admin.php
    • nur im include/admin/templates Ordner

Die Delimiter sind auf { und } eingestellt, siehe Verwendung im Beispiel. Ansonsten ist bei der Verwendung von Smarty eigentlich nichts weiter zu beachten.

Ein Beispiel zur Verwendung

Hier ein einfaches Beispiel, um die Funktionsweise zu sehen, mehr sollte dann auf http://www.smarty.net/ nachgeschlagen werden.

Hier ein Beispieltemplate mit einer {$variable}.<br />

require 'include/includes/class/iSmarty.php';
$smarty = new iSmarty();
$smarty->assign('variable', 'Überraschung');
$smarty->display('templatename.tpl');