include_php 함수:
include_php는 템플릿 파일에서 PHP 코드를 분리하는 템플릿 구성 요소화 문제를 해결하는 좋은 방법입니다.
예를 들어, 데이터를 동적으로 검색하는 데이터베이스가 있다고 가정합니다. 사이트 탐색을 표시하는 데 사용되는 템플릿으로, PHP로 데이터 콘텐츠를 가져올 수 있습니다. 논리적 부분은 분리되어 별도의 폴더인
에 저장되며, 템플릿 시작 부분에 PHP 스크립트가 포함되어 있습니다. 그러면 이전에 프로그램에서 데이터베이스 정보를 가져갔는지 걱정하지 않고도 이 템플릿을 어디에나 포함시킬 수 있습니다.
php 파일이 템플릿에서 여러 번 호출되더라도 기본적으로 한 번만 포함됩니다. 각 호출마다 파일이 다시 포함된다는 것을 나타낼 수 있습니다. 속성이 false로 설정되면 파일이 호출될 때마다 파일이 다시 포함됩니다.
할당 속성이 설정되면 이 속성에 해당하는 변수 이름을 사용하여 PHP 파일의 출력을 저장합니다. 포함할 PHP 파일의 출력이 직접 표시되지 않도록 합니다.
포함할 PHP 파일에서 $this를 통해 smarty 객체에 접근할 수 있습니다.
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}