Erste Schritte mit Smarty

  • Download unter smarty.php.net.
  • Auspacken der Datein in das libs/-Verzeichnis des PHP include_path oder setzen der SMARTY_DIR Konstante auf das Smarty Verzeichnis.
  • Jede Applikation, die Smarty verwendet, benötigt die Verzeichnisse templates, configs und templates_c.
    • install -d -m 777 templates_c 1)
    • mkdir -p {templates,configs,cache} 2)
    • Falls kein Zugriff auf die php.ini besteht, so können die “non-server-settings” 3) mit dem ini_set()-Befehl gesetzt werden. (z.B. ini_set(”include_path”,”.:/usr/local/lib/php”);).

Hello World!

smarty-test.php

<?php
require_once("path/to/Smarty.class.php");
$smarty = new Smarty();
if(isset($_SESSION['username'])) {
   $smarty->assign("logged_in_as", "You are logged in as " . $_SESSION['username']);
}
if(isset($_POST['id'])) {
   $results = database_query("SELECT * FROM userdata WHERE id = ?", Array($_POST['id']));
   $smarty->assign("results", $results);
}
$smarty->display("smarty-page.tpl");
?>

smarty-page.tpl

{include file='header.php'}
<p>Welcome to the application</p>

{if isset $logged_in_as}
    <p>{$logged_in_as}</p>
{/if}

{if sizeof($results > 0)}
    <ul>
    {foreach from=$results item=i}
       <li>{$i}</li>
    {/foreach}
    </ul>
{/if}
<p>Please enter an ID to search for</p>
<form method='post'>
  <input type='text' name='id' value=''>
  <input type='submit'>
</form>
{include file='footer.php'}

Sicherheit

Mit Smarty kann man safe-HTML-Code erzeugen, indem man durch $smarty→default_modifiers = array(’escape:”htmlall”‘) setzt, oder in PHP5 das Smarty Objekt mit $smarty→assign() beeinflußt.

Debugging

Wenn Smarty-Infos erwünscht sind, so kann man den debug Modus einschalten, der die Ergebnisse in einem Popup-Fenster zeigt, während die Seite aufgebaut (gerendert) wird.

smarty-debugging

$smarty = new Smarty();
$smarty->debugging = true;
....
$smarty->display("mytemplate.tpl");
1) ggf. auch 700 aus Sicherheitsgründen bei Multi-User Systemen, aber schreibbar für den webserver
2) cache ist für das Smarty interne Caching.
3) include_path etc.
 
wissen/gpl/php/first-steps-with-smarty-php-template-system.txt · Zuletzt geändert: 05.09.2010 20:31
 
Recent changes RSS feed Donate Valid XHTML 1.0 Valid CSS Recent cached RSS feed cacert-signed web site: inhalt.serviert.de