#1 jake

本文介绍如何在smarty模板中包含其他文件——包括模板文件和PHP文件,和包含文件中的一些限制。
本文主要是介绍smarty 3以上版本的include和include_php函数,smarty2 不一定可以支持。如果需要smarty 3版本,请下载speedphp 3.1(或以上)或从SVN中下载speedphp最新版本。

在Smarty模板中,通常使用include来包含其他模板。

请注意,模板务必要位于配置:'view' -> 'config' -> 'template_dir' 的路径内,在其他路径中,模板将不能被读取。

配置:'view' -> 'config' -> 'template_dir' 的路径被成为“模板根目录”。
<{include file="footer.html"}>
include包含的模板,可以使用相对路径
<{include file="dis/footer.html"}>
包含的模板可以进行局部缓存,也就是包含进来的模板文件将被缓存。
<{include file="footer.html" caching=3600}>
<{**缓存1小时**}>
当页面本身被缓存的时候,包含的模板可以不被缓存,也就是局部更新。
<{include file="footer.html" nocache}>
模板引擎缓存的相关介绍,可以参考本手册其他文章。
可以给包含的模板赋值,这点很重要,通常应用在网站主菜单的“当前链接”的效果中。
<{include file="header.html" now_position="首页"}>
<{**在header.html中,可以使用$now_position变量**}>

包含PHP文件,include_php

include_php可以包含PHP文件,并执行其中代码。和include一样,include_php包含的文件也必须在“模板根目录”下面。

包含的PHP文件,代码将受到模板引擎配置的限制,限制和{php}{/php}标签一样。简单来说:


  • 不能执行任何输出语句,如echo之类的都会被屏蔽输出。
  • 相当于在函数内执行代码,所以非全局变量不能使用。
  • 建议不要转向到其他程序中。

通常而言,在模板中的PHP代码(包括包含的PHP文件代码)只作为调整显示的辅助代码,建议不要加入太多的逻辑处理。



2012-08-04 15:02:53