smarty template engine
Monday, September 08, 2008  
download | documentation | faq | forum | mailing lists | changelog | contribs 


search for in the  


Templates composants

Traditionnellemnt, la programmation avec des templates dans les applications se déroule de la façon suivante : d'abord vous récupérez vos variables dans l'application PHP (peut-être avec des requêtes en base de données), puis vous instanciez votre objet Smarty, assign() les variables et display() le template. Disons par exemple que nous avons un téléscripteur dans notre template. Nous récupérerions les données dans notre application, puis les assignerions ensuite pour les afficher. Mais ne serait-ce pas mieux de pouvoir ajouter ce téléscripteur à n'importe quelle application en incluant directement le template sans avoir à se soucier de la récupération des données ?

Vous pouvez réaliser celà en écrivant un plugin personnalisé pour récupérer le contenu et l'assigner à une variable du template.

Exemple 18-7. Template composant

function.load_ticker.php - Efface le fichier du répertoire des $plugins

<?php

// notre fonction pour récupérer les données
function fetch_ticker($symbol,&amp;$ticker_name,&amp;$ticker_price
{
   
// du traitement qui récupère $ticker_name
   // depuis la ressource ticker
   
return $ticker_info;
}

function 
smarty_function_load_ticker($params, &$smarty
{
   
// appel de la fonction
   
$ticker_info fetch_ticker($params['symbol']);

   
// assignation de la variable de template
   
$smarty->assign($params['assign'], $ticker_info);
}
?>

index.tpl

{load_ticker symbol='SMARTY' assign="ticker"}

Stock Name: {$ticker.name} Stock Price: {$ticker.price}

Voir aussi {include_php}, {include} et {php}.




 

credits 

Smarty Copyright © 2002-2008
New Digital Group, Inc.

All rights reserved.