缓存 smarty 值,但不缓存修饰符输出

发布于 2024-12-21 21:05:22 字数 458 浏览 1 评论 0原文

我在我的 smarty 中启用了缓存,并指定了一个日期和时间,如下所示,如果页面未缓存,则只会从数据库中获取:

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

我有一个自定义 smarty 修饰符,它生成一个相对周期,例如(20 分钟 5 秒前)

{$added_timestamp|relative_time}

现在我需要的是,必须缓存“$added_timestamp”的值,但是不应缓存 {$added_timestamp|relative_time} 的输出。

我尝试使用 {nocache}{$added_timestamp|relative_time}{/nocache} 但它不起作用。

有什么建议吗?

I have caching enabled in my smarty and have assigned a date and time as below that will only be fetched from database if the page is not cached:

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

I have a custom smarty modifier that generate a relative period like (20 minutes 5 seconds ago)

{$added_timestamp|relative_time}

now what I need is, the value for '$added_timestamp' must be cached however the output from {$added_timestamp|relative_time} should not be cached.

I tried with {nocache}{$added_timestamp|relative_time}{/nocache} but it doesn't work.

any suggestions?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

花海 2024-12-28 21:05:22

您需要将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 语法)

you will need to wrap your relative_time modifier in a function plugin. that function plugin can be registered with the nocache flag (modifiers can't).

$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]);
}

and

{relative_time time=$added_timestamp}

(Smarty3 syntax)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文