2011-12-19 2 views
0

수식 출력 : 내가 가진캐싱 유식 값이 아닌 페이지가 캐시되지 않은 경우 난 단지 데이타베이스로부터 꺼낼 것이다 캐싱 내 유식 활성화하고 그 아래로 날짜와 시간을 할당 한

$smarty->assign('added_timestamp', $added_timestamp); 

(5 초 전 20 분)와 같은 상대적 기간을 생성하는 사용자 정의 변경자

{$added_timestamp|relative_time} 

지금은, '$의 added_timestamp'의 값이 {$added_timestamp|relative_time}의 출력을 캐시해서는 안하지만 캐시되어야한다 필요.

{nocache}{$added_timestamp|relative_time}{/nocache}으로 시도했지만 작동하지 않습니다.

제안 사항?

답변

1

함수 플러그인에서 relative_time 수정자를 래핑해야합니다. 해당 함수 플러그인을 nocache 플래그로 등록 할 수 있습니다 (한정자는 사용할 수 없음).

$smarty->registerPlugin('function', 'relative_time' 'smarty_function_relative_time', false, array('time')); 
function smarty_function_relative_time(array $params, Smarty_Internal_Template $template) { 
    $template->smarty->loadPlugin('smarty_modifier_relative_time'); 
    return smarty_modifier_relative_time($params[time]); 
} 

{relative_time time=$added_timestamp} 

(Smarty3 구문)