>  기사  >  백엔드 개발  >  ecshop 템플릿: ecshop 템플릿에서 상수를 참조 가능하게 만드는 방법

ecshop 템플릿: ecshop 템플릿에서 상수를 참조 가능하게 만드는 방법

WBOY
WBOY원래의
2016-07-29 08:45:181459검색

예를 들어 $smarty.const.'constant'는 사용할 수 없습니다.
사실 템플릿 엔진은 원칙적으로 복잡하지 않습니다. 단지 일부 템플릿 태그를 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 = 폭발 ('.', $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; >where 21-23 템플릿 파일의 {$smarty.const.const}를 통해 PHP에 정의된 상수를 참조할 수 있는 라인이 새로 추가되었습니다.



코드 복사


코드는 다음과 같습니다.

21 if($t[0] == 'const'){ 22 return strtoupper($t[1]) 23 }

위에서는 ecshop 템플릿의 내용을 포함하여 ecshop 템플릿에서 상수를 참조 가능하게 만드는 구현 방법을 소개합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되길 바랍니다.


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.