スマートな値はキャッシュしますが、修飾子の出力はキャッシュしません

私はスマートにキャッシュを有効にして、ページがキャッシュされていない場合にのみデータベースからフェッチされる以下の日付と時刻を割り当てました。

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

私は、(20分5秒前に)相対的な期間を生成するカスタムスマイリーモディファイアを持っています。

{$added_timestamp|relative_time}

{$ added_timestamp | relative_time} の出力をキャッシュしてはいけませんが、 '$ added_timestamp'の値をキャッシュする必要があります。

私は {nocache} {$ added_timestamp | relative_time} {/ nocache} で試してみましたが動作しません。

助言がありますか?

0

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構文)

1
追加された