Get Smarty

Donate

Paypal

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

{insert}

Les balises {insert} fonctionnent à peu près comme les balises {include}, à l'exception que leur sortie n'est PAS placée en cache lorsque le cache du template est activé. Les balises {insert} seront exécutées à chaque appel du template.

Nom attribut Type Requis Defaut Description
name chaîne de caractères Oui n/a le nom de la fonction insert (insert_name)
assign chaîne de caractère Non n/a Le nom de la variable qui recevra la sortie
script chaîne de caractères Non n/a Le nom du script PHP inclus avant que la fonction insert ne soit appelée.
[var ...] [var type] Non n/a Variable à passer à la fonction insert

Supposons que vous avez un template avec un emplacement pour un bandeau publicitaire en haut de page. Ce bandeau publicitaire peut contenir toutes sortes de contenus HTML, images, flash, etc. Nous ne pouvons pas placer du contenu statique à cet endroit. Nous ne voulons pas non plus que ce contenu fasse partie du cache. Arrive alors la balise {insert}. Le template connais #emplacement_bandeau# et #id_site# (récupérés depuis un fichier de configuration), et à besoin d'un appel de fonction pour récupérer le contenu du bandeau.

Example 7.22. Fonction {insert}

{* exemple de récupération d'un bandeau publicitaire *}
{insert name="getBanner" lid=#emplacement_bandeau# sid=#id_site#}
  

Dans cet exemple, nous utilisons le nom getBanner et lui passons les paramètres #emplacement_bandeau# et #id_site#. Smarty va rechercher une fonction appelée insert_getBanner () dans votre application PHP, et lui passer les valeurs #banner_location_id# et #site_id# comme premier paramètre, dans un tableau associatif. Tous les noms des fonctions {insert} de votre application doivent être prefixées de "insert_" pour remédier à d'éventuels conflits de nommage. Votre fonction insert_getBanner () est supposée traiter les valeurs passées et retourner un résultat. Ces résultats sont affichés dans le template en lieu et place de la balise. Dans cet exemple, Smarty appellera cette fonction insert_getBanner(array("lid" => "12345","sid" => "67890")); et affichera le résultat retourné à la place de la balise {insert}.

  • Si vous donnez une valeur à l'attribut assign, la sortie de la balise {insert} sera assigné à une variable de template de ce nom au lieu d'être affichée directement.

    Note

    Assigner la sortie à une variable n'est pas très utile lorsque le cache est activé.

  • Si vous donnez une valeur à l'attribut script, ce script PHP sera inclus (une seule fois) avant l'exécution de la fonction {insert}. Le cas peut survenir lorsque la fonction {insert} n'existe pas encore, et que le script PHP chargé de sa définission doit être inclus.

    Le chemin doit être absolu ou relatif à $trusted_dir. Lorsque $security est actif, le script doit être situé dans $trusted_dir.

L'objet Smarty est passé comme second argument. De cette façon, vous pouvez utiliser ou modifier des informations sur l'objet Smarty, directement depuis votre fonction {insert}.

Note technique

Il est possible d'avoir des portions de template qui ne soient pas gérables par le cache. Même si vous avez activé l'option caching, les balises {insert} ne feront pas partie du cache. Elles retourneront un contenu dynamique à chaque invocation de la page. Cette méthode est très pratique pour des éléments tels que les bandeaux publicitaires, les enquêtes, la météo, les résultats de recherche, retours utilisateurs, etc.

Voir aussi {include}

Comments
No comments for this page.

Advertisement

Sponsors [info]

Sponsors