使ecshop模板中可引用常量的实现方法
使ecshop模板中可引用常量的实现方法
发布时间:2016-12-29 来源:查字典编辑
摘要:比如$smarty.const.'常量',这个就不能用。其实模板引擎原理上并不复杂,只是把一些模板标签替换为php中的函数,变量,语法结构罢...

比如$smarty.const.'常量',这个就不能用。

其实模板引擎原理上并不复杂,只是把一些模板标签替换为php中的函数,变量,语法结构罢了。

这次要在ecshop模板中加入引用常量的功能,只需在函数make_var()中加入两行代码

复制代码 代码如下:

function make_var($val)

{

if (strrpos($val, '.') === false)

{

if (isset($this->_var[$val]) && isset($this->_patchstack[$val]))

{

$val = $this->_patchstack[$val];

}

$p = '$this->_var['' . $val . '']';

}

else

{

$t = explode('.', $val);

$_var_name = array_shift($t);

if (isset($this->_var[$_var_name]) && isset($this->_patchstack[$_var_name]))

{

$_var_name = $this->_patchstack[$_var_name];

}

if ($_var_name == 'smarty')

{

if($t[0] == 'const'){

return strtoupper($t[1]);

}

$p = $this->_compile_smarty_ref($t);

}

else

{

$p = '$this->_var['' . $_var_name . '']';

}

foreach ($t AS $val)

{

$p.= '['' . $val . '']';

}

}

return $p;

}

其中21-23行是新加的,这让就可在模板文件中通过 {$smarty.const.常量}来引用php中定义的常量了

复制代码 代码如下:

21 if($t[0] == 'const'){

22 return strtoupper($t[1]);

23 }

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新php教程学习
热门php教程学习
编程开发子分类