fonction include_php
include_php :
include_php est un bon moyen de résoudre le problème de la composantisation du modèle, qui sépare le code php du fichier modèle
Par exemple : Supposons qu'il existe une base de données qui récupère dynamiquement les données. Modèle utilisé pour afficher la navigation sur le site, vous pouvez obtenir le contenu des données en php La partie logique est séparée et enregistrée dans un dossier séparé,
et le script php est inclus au début du modèle. Vous pouvez ensuite inclure ce modèle n'importe où sans vous soucier de savoir si les informations de la base de données ont été supprimées par le programme auparavant.
Même si les fichiers php sont appelés plusieurs fois dans le modèle, ils ne sont inclus qu'une seule fois par défaut. Vous pouvez définir l'attribut once pour indiquer que le fichier est réinclus à chaque appel
Si le fichier est réinclus à chaque appel. une fois l'attribut défini sur false, le fichier sera réinclus à chaque appel.
Si l'attribut assign est défini, le nom de la variable correspondant à cet attribut est utilisé pour enregistrer la sortie du fichier php à définir. inclus, afin que la sortie du fichier php à inclure ne soit pas affichée directement.
L'objet smarty est accessible via $this dans le fichier php à inclure.
load_nav.php:
<?php // load in variables from a mysql db and assign them to the template // 从mysql数据库中取得数据,将数据赋给模板变量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);
index.tpl:
{* absolute path, or relative to $trusted_dir *} {* 绝对路径或 $trusted_dir 的相对路径 *} {include_php file="/path/to/load_nav.php"} {foreach item="curr_section" from=$sections} <a href="{$curr_section.url}">{$curr_section.name}</a><br> {/foreach}