{include_php}
Notes techniques :
{include_php} est presque obsolète dans Smarty.
Vous pouvez obtenir des résultats équivalents en utilisant les fonctions utilisateur.
La seule raison qui peut vous pousser à utiliser {include_php}
est que vous avez besoin de mettre une de vos fonction en quarantaine vis à vis du
répertoire plugins/
ou de votre application. Reportez-vous à l'exemple des
templates composants
pour plus de détails.
Les balises {include_php} sont utilisées pour inclure directement
un script PHP dans vos templates. Si
$security est activé,
alors le script à exécuter doit être placé dans le chemin
$trusted_dir. La balise
{include_php} attends l'attribut file,
qui contient le chemin du fichier PHP à inclure, relatif à
$trusted_dir, ou absolu.
Par défaut, les fichiers PHP ne sont inclus qu'une seule fois, même si
la demande d'inclusion survient plusieurs fois dans le template.
Vous pouvez demander à ce que ce fichier soit inclus à chaque demande
grâce à l'attribut once. Mettre l'attribut once à
FALSE aura pour effet d'inclure le script PHP à chaque fois que demandé
dans le template.
Vous pouvez donner une valeur à l'attribut optionnel
assign, pour demander à la fonction
{include_php} d'assigner la sortie du script PHP
à la variable spécifiée plutôt que d'en afficher directement le résultat.
L'objet Smarty est disponible en tant que $this dans le script PHP inclus.
Exemple 7-21. Fonction {include_php} Le fichier load_nav.php
<?php
// charge des variables depuis une base de données mysql et les assigne au template. require_once('MySQL.class.php'); $sql = new MySQL; $sql->query('select * from site_nav_sections order by name',SQL_ALL); $this->assign('sections',$sql->record);
?>
|
Où le template est :
{* chemin absolu, ou relatif à $trusted_dir *}
{include_php file='/chemin/vers/load_nav.php'}
{foreach item='nav' from=$navigation}
<a href="{$nav.url}">{$nav.name}</a><br />
{/foreach} |
|
Voir aussi
{include},
$security,
$trusted_dir,
{php},
{capture}, les
ressources de template et les
composants de templates.