Smarty - Zugriff auf Php-Arrays und -Objekte
03. September 2008
Nachfolgend werden ein paar kleine Anwendungsbeispiele gegeben, die den Umgang mit PHP-Arrays bzw. PHP-Objekten in Verbindung mit der Template-Engine Smarty zeigen.
Als erstes Beispiel dient ein einfaches Array (PHP-Datei ). Dieses wird der jeweiligen Template-Variable zuweisen (per assign):
Der Zugriff im Template-File erfolgt wahlweise mittels foreach-Schleife:
oder per Index:
Ein assoziatives Array dient als zweites Beispiel. Auch dies muss der entsprechenden Template-Variable zugewiesen werden.
Der Zugriff auf die jeweiligen Elemente erfolgt hierbei in der Template-Datei mittels des Schlüssels (Key):
Als letztes Beispiel dient ein (mittels stdClass erzeugtes anonymes) Objekt. Dies wird mit Beispiel-Werten befüllt. Anschließend wird es - wie gehabt - einer Template-Variablen zugewiesen:
Der Zugriff auf die Objekt-Eigenschaften erfolgt (im Template) per Pfeil-Operator und den Eigenschaftsbezeichnern:
Als erstes Beispiel dient ein einfaches Array (PHP-Datei ). Dieses wird der jeweiligen Template-Variable zuweisen (per assign):
/*** PHP-Datei - Bsp.1 ***/
$ary = array("Hallo", "Wie", "geht's?");
$smarty->assign('ary', $ary);
Der Zugriff im Template-File erfolgt wahlweise mittels foreach-Schleife:
{* Template-Datei - Bsp.1 *}
{foreach key=idx item=element from=$ary}
<div>{$idx} = {$element}</div>
{/foreach}
oder per Index:
{* Template-Datei - Bsp.1 *}
<div>
erstes Element = {$ary[0]},
zweites Element = {$ary[1]},
drittes Element = {$ary[2]}
</div>
Ein assoziatives Array dient als zweites Beispiel. Auch dies muss der entsprechenden Template-Variable zugewiesen werden.
/*** PHP-Datei - Bsp.2 ***/
$ary = array(
'name' => 'Name',
'str' => 'Strasse',
'tel' => array(
'priv' => '12345',
'gesch' => '54321'
)
);
$smarty->assign('ary', $ary);
Der Zugriff auf die jeweiligen Elemente erfolgt hierbei in der Template-Datei mittels des Schlüssels (Key):
{* Template-Datei - Bsp.2 *}
<div>
Name = {$ary.name},
Strasse = {$ary.str},
Tel.(privat) = {$ary.tel.priv}
</div>
Als letztes Beispiel dient ein (mittels stdClass erzeugtes anonymes) Objekt. Dies wird mit Beispiel-Werten befüllt. Anschließend wird es - wie gehabt - einer Template-Variablen zugewiesen:
/*** PHP-Datei - Bsp.3 ***/
$obj = new stdClass();
$obj->name = 'Schmitt';
$obj->geb = '1965';
$obj->tel = new stdClass();
$obj->tel->priv = '12345';
$obj->tel->gesch = '54321';
$smarty->assign('obj', $obj);
Der Zugriff auf die Objekt-Eigenschaften erfolgt (im Template) per Pfeil-Operator und den Eigenschaftsbezeichnern:
{* Template-Datei - Bsp.3 *}
<div>
Name = {$obj->name},
Geburtsjahr = {$obj->geb},
Tel.(privat)= {$obj->tel->priv}
</div>
Immer noch kein Kommentar. Jetzt wird's aber mal Zeit!
HILFE
Code-Beispiele werden mit den BBCodes [code][/code] dargestellt.
Jedes Tag muss eine Zeile für sich allein haben, d.h der Beispiel-Code
muss wirklich ZWISCHEN den Tags stehen. Beispiel:
Alles was zwischen den beiden Tags [register] und [/register] eingetragen wird, ist nur für registrierte (und eingeloggte) User sichtbar.
[code] ACHTUNG! HIER UMBRUCH WICHTIG. TAG [code] MUSS ALLEIN STEHEN
#include <stdio.h>
int main( void ){
return 0;
} ACHTUNG! HIER UMBRUCH WICHTIG. NACHFOLGENDES TAG [/code] MUSS ALLEIN STEHEN
[/code]Alles was zwischen den beiden Tags [register] und [/register] eingetragen wird, ist nur für registrierte (und eingeloggte) User sichtbar.
Dein Name *
Deine Email
Deine Website
Vorschau