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:
Les balises {include}
sont utilisées pour inclure des templates à
l'intérieur d'autres templates. Toutes les variables disponibles
dans le template réalisant l'inclusion sont disponibles dans le
template inclus.
La balise {include}
doit contenir l'attribut
file
qui contient le chemin vers la ressource de
template.
La définition de l'attribut optionnel assign
spécifie la variable de template assignée à la sortie de
{include}
au lieu d'être affichée. Similaire à
{assign}
.
Les variables peuvent être passées à des templates inclus comme attributs. Toutes les variables explicitement passées à un template inclus ne sont disponibles que dans le contexte du fichier inclus. Les attributs de variables écrasent les variables courantes de template, dans le cas où les noms sont les mêmes.
Toutes les valeurs de variables assignées sont restaurées une fois le contexte
du template inclus refermés. Ceci signifie que vous pouvez utiliser toutes les
variables depuis un template inclus dans le template inclus. Mais les modifications
faites aux variables dans le template inclus ne sont pas visibles dans le template
incluant, parès l'instruction {include}
statement.
Utilisez la synthaxe pour les
ressources de template aux fichiers
{include}
en dehors du dossier
$template_dir
.
Nom attribut | Type | Requis | Defaut | Description |
---|---|---|---|---|
file | chaîne de caractères | Oui | n/a | Le nom du template à inclure |
assign | chaîne de caractères | Non | n/a | Le nom de la variable dans laquelle sera assignée la sortie de include |
[var ...] | [type de variable] | Non | n/a | Variables à passer au template |
Example 7.17. Exemple avec {include}
<html> <head> <title>{$title}</title> </head> <body> {include file='page_header.tpl'} {* Le corps du template va ici, la variable $tpl_name est remplacé par une valeur, e.g.'contact.pl' *} {include file='$tpl_name.tpl'} {include file='page_footer.tpl'} </body> </html>
Example 7.18. Fonction {include}, passage de variables
{include file='links.tpl' title='Newest links' links=$link_array} {* body of template goes here *} {include file='footer.tpl' foo='bar'}
Le template ci-dessus inclut l'exemple links.tpl
<div id="box"> <h3>{$title}{/h3> <ul> {foreach from=$links item=l} .. faites quelques choses ici ... </foreach} </ul> </div>
Example 7.19. {include} et assignement à une variable
Cet exemple assigne le contenu de nav.tpl
à la variable
$navbar
, qui est alors affichée en haut et en bas de la page.
<body> {include file='nav.tpl' assign=navbar} {include file='header.tpl' title='Smarty is cool'} {$navbar} {* le corps du template va ici *} {$navbar} {include file='footer.tpl'} </body>
Example 7.20. Divers {include}, exemple de ressource template
{* chemin absolu *} {include file='/usr/local/include/templates/header.tpl'} {* chemin absolu (même chose) *} {include file='file:/usr/local/include/templates/header.tpl'} {* chemin absolu windows (DOIT utiliser le préfixe "file:") *} {include file='file:C:/www/pub/templates/header.tpl'} {* inclusion d'une ressource template "db" *} {include file='db:header.tpl'} {* inclusion d'un template $variable - eg $module = 'contacts' *} {include file="$module.tpl"} {* ne fonctionne pas avec des simples guillemets ie aucun substitution de variables *} {include file='$module.tpl'} {* include a multi $variable template - eg amber/links.view.tpl *} {include file="$style_dir/$module.$view.tpl"}
Voir aussi
{include_php}
,
{insert}
,
{php}
,
les ressources de template et
les templates composants.