请选择 进入手机版 | 继续访问电脑版

SpeedPHP框架

 找回密码
 注册成为新用户

QQ登录

只需一步,快速开始

查看: 6757|回复: 0

[模板引擎] 模板包含文件

[复制链接]
发表于 2012-8-4 15:02:53 | 显示全部楼层 |阅读模式
本文介绍如何在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' 的路径被成为“模板根目录”。
  1. <{include file="footer.html"}>
复制代码
include包含的模板,可以使用相对路径
  1. <{include file="dis/footer.html"}>
复制代码
包含的模板可以进行局部缓存,也就是包含进来的模板文件将被缓存。
  1. <{include file="footer.html" caching=3600}>
  2. <{**缓存1小时**}>
复制代码
当页面本身被缓存的时候,包含的模板可以不被缓存,也就是局部更新。
  1. <{include file="footer.html" nocache}>
复制代码
模板引擎缓存的相关介绍,可以参考本手册其他文章。
可以给包含的模板赋值,这点很重要,通常应用在网站主菜单的“当前链接”的效果中。
  1. <{include file="header.html" now_position="首页"}>
  2. <{**在header.html中,可以使用$now_position变量**}>
复制代码

包含PHP文件,include_php

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

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

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

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



您需要登录后才可以回帖 登录 | 注册成为新用户

本版积分规则

手机浏览|简版|中文PHP框架|开源协议|SpeedPHP.com ( 粤ICP备08008671号

GMT+8, 2020-7-7 02:19

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表