专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »PHP教程 » phpsmarty:php的Smarty中实现模板嵌套 »正文

phpsmarty:php的Smarty中实现模板嵌套

来源: 发布时间:星期一, 2009年1月12日 浏览:7次 评论:0
  以前用习惯了fasttemplate,突然接触smarty,

  竟然找不到模板嵌套思路方法

  于是尝试着看了下smarty源码,发现其实很好办

  在Smarty..php中有这样个思路方法 fetch

  function fetch($resource_name, $cache_id = null, $compile_id = null, $display = false)

  他作用是得到模板文件最终显示在浏览器上html代码

  再看assign思路方法代码

function assign($tpl_var, $value = null)
{
(is_.gif' />($tpl_var)){
foreach ($tpl_var as $key => $val) {
($key != '') {
$this->_tpl_vars[$key] = $val;
}
}
} {
($tpl_var != '')
$this->_tpl_vars[$tpl_var] = $value;
}
}


  从代码中可以看出,它将每个smarty标签值都存在了$this->_tpl_vars这样中,

  于是仿照的,自己添加这样个思路方法

/**
* 模板嵌套思路方法
*
* @param unknown_type $tpl_var
* @param unknown_type $resource_name
* @author VioletElegy
*/
function parse($tpl_var, $resource_name) {
$this->_tpl_vars[$tpl_var] = $this->fetch($resource_name);
}


  这个parse思路方法使用时候只需象如下这样

  $smarrty->parse("index","qiantao.tpl");

  这样,原来模板文件中{$index}标签就被qiantao.tpl模板代替了,

  注意,qiantao.tpl文件中标签必须在parse思路方法的前赋值

  最后display思路方法时候就全显示出来了

  这样就在smarty中很轻松实现象fasttemplate嵌套

  令我不解是,smarty机制允许模板嵌套但是它只是没有提供这样个接口

  于是我就很困惑是我看教材,看代码不够仔细, 还是受到fasttemplate,以及其他模板解决方案影响过重而没有理解smarty思想, 还是确是开发人员疏忽

0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: