使ecshop模板中可引用常量的实现方法

教程大全 2026-01-08 18:26:28 浏览

使ecshop模板中可引用常量的实现方法 比如$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 }

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。

发表评论

热门推荐