What is Smarty?
Why use it?
Use Cases and Work Flow
Syntax Comparison
Template Inheritance
Best Practices
Crash Course
You may use the Smarty logo according to the trademark notice.
For sponsorship, advertising, news or other inquiries, contact us at:
{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.
Nom attribut | Type | Requis | Défaut | Description |
---|---|---|---|---|
file | chaîne de caractère | oui | n/a | Le nom du fichier PHP à inclure |
once | boléen | Non | TRUE |
Inclure plusieurs fois ou non le fichier PHP si plusieurs demandes d'inclusions sont faîtes. |
assign | chaîne de caractère | Non | n/a | le nom de la variable PHP dans laquelle la sortie sera assignée plutôt que directement affichée. |
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.
Example 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.