ホームページ >php教程 >php手册 >ECSHOP テンプレートで定数を参照可能にする方法

ECSHOP テンプレートで定数を参照可能にする方法

WBOY
WBOYオリジナル
2016-06-13 12:09:321144ブラウズ

たとえば、$smarty.const.'constant' は使用できません。
実際、テンプレート エンジンは原理的には複雑ではなく、一部のテンプレート タグを PHP の関数、変数、および文法構造に置き換えるだけです。
今回、ecshop テンプレートに参照定数の関数を追加するには、関数 make_var() に 2 行のコードを追加するだけです

コードをコピーしますコードは次のとおりです:


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 = 爆発('.', $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 == 'スマート')
{
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.= '['' . '']'
}
}


21-23 行が新たに追加され、テンプレート ファイルの {$smarty.const.const} を通じて PHP で定義された定数を参照できるようになります


コードをコピー

コードは次のとおりです。 21 if($t[0] == 'const'){ 22 return strtoupper($t[1]); >23 }


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。