ホームページ  >  記事  >  バックエンド開発  >  ECSHOP テンプレートで定数を参照可能にする方法_PHP チュートリアル

ECSHOP テンプレートで定数を参照可能にする方法_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:29:36867ブラウズ

たとえば、$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]);

http://www.bkjia.com/PHPjc/323423.html

www.bkjia.com
tru​​e

http://www.bkjia.com/PHPjc/323423.html

たとえば、$smarty.const.'constant' は使用できません。 実際、テンプレート エンジンは原理的には複雑ではなく、一部のテンプレート タグを PHP の関数、変数、および文法構造に置き換えるだけです。 これは…
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。