Arrays und Schleifen in Smarty Templates

Arrays im Smarty Template

In einem Smarty Template kann man auf Arrays zugreifen indem man den Punkt "." verwendet.

Angewendet auf unser erstes Beispiel sehe die Templatedatei "two.tpl" folgendermassen aus:

 

<html>
  <head>
    <title>{$page.title}</title>
  </head>
  <body>
    {$page.content}
  </body>
</html>

 

Der PHP Code hätte mit Array folgenden Aufbau:

 

 

<?php
require_once('Smarty-2.6.18/libs/Smarty.class.php');
$smarty = new Smarty();
$smarty->template_dir  = 'data/templates';
$smarty->compile_dir  = 'data/templates_c';
$smarty->cache_dir  = 'data/cache';
$smarty->config_dir  = 'data/configs';





$page = array('title' => 'Hi', 'content' => 'Noch ein Test');


$smarty->assign("page", $page);

$smarty->display("two.tpl");

?>

 

 

Foreach Schleife im Smarty Template

Smarty bietet die Möglichkeit in den Templates zur Steuerung der Anzeigelogik Schleifen zu verweden. Dadurch ist es z.b. möglich einen übergebenen Array zu durchlaufen und anzuzeigen. Angewendet auf unser Beispiel hat das Smarty Template "three.tpl" folgenden Aufbau:

<html> 
  <head>
    <title></title>
  </head>
  <body>
    {foreach key=index item=language from=$languages}
      {$index}: {$language} <br />
    {/foreach}
  </body>
</html>

Das PHP Skript zum zuweisen des Language Arrays hätte folgenden Aufbau:

 

  <?php 
require_once('Smarty-2.6.18/libs/Smarty.class.php');

$smarty = new Smarty();
$smarty->template_dir = 'data/templates';
$smarty->compile_dir = 'data/templates_c';
$smarty->cache_dir = 'data/cache';
$smarty->config_dir = 'data/configs';

$lang[] = 'C++';
$lang[] = 'PHP';
$lang[] = 'Java';
$lang[] = 'Delphi';
$lang[] = 'Pascal';

$smarty->assign("languages", $lang);
$smarty->display("three.tpl"); ?>

Navigation