たとえば、$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
true
http://www.bkjia.com/PHPjc/323423.html
技術記事たとえば、$smarty.const.'constant' は使用できません。 実際、テンプレート エンジンは原理的には複雑ではなく、一部のテンプレート タグを PHP の関数、変数、および文法構造に置き換えるだけです。 これは…