Smarty Icon

You may use the Smarty logo according to the trademark notice.

Smarty Template Engine Smarty Template Engine

For sponsorship, advertising, news or other inquiries, contact us at:

Sites Using Smarty

Advertisement

{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.

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.