0

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

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

(20分5秒前)のような相対的な期間を生成するカスタムのsmarty修飾子があります

{$added_timestamp|relative_time}

ここで必要なのは、「$ added_timestamp」の値をキャッシュする必要がありますが、からの出力は{$added_timestamp|relative_time}キャッシュしないでください。

試してみまし{nocache}{$added_timestamp|relative_time}{/nocache}たが、うまくいきません。

助言がありますか?

4

1 に答える 1

1

相対時間修飾子を関数プラグインでラップする必要があります。その関数プラグインは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構文)

于 2011-12-19T07:51:17.370 に答える