ホームページ  >  記事  >  バックエンド開発  >  ecshop テンプレート:ecshop テンプレートで定数を参照可能にする方法

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

WBOY
WBOYオリジナル
2016-07-29 08:45:181462ブラウズ

たとえば、$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['' .
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 == 'スマート')
{
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]); 以上、ecshopテンプレート内で定数を参照可能にする実装方法をecshopテンプレートの内容も含めて紹介しましたので、PHPチュートリアルに興味のある友人の参考になれば幸いです。


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