Eigene Smarty-Funktionen erstellen
Gelegentlich werden in Templates eigene Smarty-Funktionen benötigt, die in der gewünschten Form nicht verfügbar sind.
Eigene Smarty-Funktionen können Verzeichnis /site/IhrMandant/plugins/smarty/ jeweils als function.meineFunktion.php definiert werden (wobei meineFunktion für den Namen der Funktion steht).
Beispiel 1
QuelltextPHP Code:// benötigtes Skript einbinden
require_once('smarty/plugins/arg_smarty_functions.php');
// neue Funktion definieren
function smarty_function_meineFunktion($params, &$smarty)
{
if(!$param['timestamp']) // wenn der Parameter 'timestamp' nicht gesetzt wurde
{
$param['timestamp'] =
time();
// die aktuelle Zeit verwenden
}
$result =
date("d.m.Y",
$param['timestamp']);
// am Ende des Skripts wird an die var-Variable das Ergebnis übergeben
$smarty->assign($params['var'], $result');
}
// benötigtes Skript einbinden
require_once('smarty/plugins/arg_smarty_functions.php');
// neue Funktion definieren
function smarty_function_meineFunktion($params, &$smarty)
{
if(!$param['timestamp']) // wenn der Parameter 'timestamp' nicht gesetzt wurde
{
$param['timestamp'] = time(); // die aktuelle Zeit verwenden
}
$result = date("d.m.Y",$param['timestamp']);
// am Ende des Skripts wird an die var-Variable das Ergebnis übergeben
$smarty->assign($params['var'], $result');
}
Alle an die Smarty-Funktion übergebenen Parameter können innerhalb der Funktion über das Array $param verwenden werden. Die Beispiel-Funktion gibt ein formatiertes Datum aus. Als Parameter kann ein gewünschter Unix-Zeitstempel angegeben werden.
QuelltextSmarty Code:{* Aufruf der Funktion *}
{meineFunktion timestamp=1261132764 var="datum_formatiert"}
{* Verwenden des Ergebnisses *}
Die Funktion gab als Ergebnis das Datum {$datum_formatiert} zurück.
{* Aufruf der Funktion *}
{meineFunktion timestamp=1261132764 var="datum_formatiert"}
{* Verwenden des Ergebnisses *}
Die Funktion gab als Ergebnis das Datum {$datum_formatiert} zurück.
Beispiel 2
QuelltextPHP Code:/**
* Smarty Plugin für Ausgabe von News-Einträgen
*
* Datei: site/Mandant/plugins/smarty/function.get_news.php
*
* Gibt alle Unterseite vom Typ "news/entry" aus.
* Beispiel: {get_news var=VARNAME page=PAGE-Object anzahl=ANZAHL}
*/
require_once('smarty/plugins/arg_smarty_functions.php');
function smarty_function_get_news($params, &$smarty)
{
// Ist Anzahl angegeben?
$params['anzahl'] ? $params['anzahl'] : 10; // Standard = 10
// Kinder-Seiten auslesen
$kinder =
$params['page']->getChildren
(array('where' =>
"type='news/entry'",
array('limit' =>
$params['anzahl'])));
// Ergebnis an entsprechende Var-Variable übergeben
$smarty->assign($params['var'], $kinder);
}
/**
* Smarty Plugin für Ausgabe von News-Einträgen
*
* Datei: site/Mandant/plugins/smarty/function.get_news.php
*
* Gibt alle Unterseite vom Typ "news/entry" aus.
* Beispiel: {get_news var=VARNAME page=PAGE-Object anzahl=ANZAHL}
*/
require_once('smarty/plugins/arg_smarty_functions.php');
function smarty_function_get_news($params, &$smarty)
{
// Ist Anzahl angegeben?
$params['anzahl'] ? $params['anzahl'] : 10; // Standard = 10
// Kinder-Seiten auslesen
$kinder = $params['page']->getChildren(array('where' => "type='news/entry'",array('limit' => $params['anzahl'])));
// Ergebnis an entsprechende Var-Variable übergeben
$smarty->assign($params['var'], $kinder);
}
QuelltextSmarty Code:{* Funktionsaufruf im Template *}
{get_news page=$page anzahl=5 var="news_eintraege"}
{* Ausgabe der News *}
{foreach from=$news_eintraege
item=
"news"} {$news->field.name} <br />
Leider existieren zur Zeit keine News
{/foreach}
{* Funktionsaufruf im Template *}
{get_news page=$page anzahl=5 var="news_eintraege"}
{* Ausgabe der News *}
{foreach from=$news_eintraege item="news"}
{$news->field.name} <br />
{foreachelse}
Leider existieren zur Zeit keine News
{/foreach}
Tel: +49 (0)6261 / 6743-0 Fax: +49 (0)6261 / 6743-29
E-Mail: info@egotec.com
|
EGOTEC GmbH Hauptstraße 130
D-74821 Mosbach
|
|
Erstellt mit EGOTEC® Internet: www.egotec.com © EGOTEC GmbH
|