标签: smarty-plugins

Smarty registerPlugin函数作为参数

在Smarty中,可以通过这种方式注册插件:

$smarty->registerPlugin("function","date_now", "print_current_date");

function print_current_date($params, $smarty)
{
  if(empty($params["format"])) {
    $format = "%b %e, %Y";
  } else {
    $format = $params["format"];
  }
  return strftime($format,time());
}
Run Code Online (Sandbox Code Playgroud)

参考:https://www.smarty.net/docs/en/api.register.plugin.tpl

但我正在寻找一种方法,我可以直接传递函数作为参数.我怎么能在PHP/Smarty中做到这一点?

例如:

$smarty->registerPlugin("function","date_now", function ($params, $smarty) {
  if(empty($params["format"])) {
    $format = "%b %e, %Y";
  } else {
    $format = $params["format"];
  }
  return strftime($format,time());
});
Run Code Online (Sandbox Code Playgroud)

php smarty smarty3 smarty-plugins

8
推荐指数
1
解决办法
229
查看次数

在 PrestaShop 中在哪里注册全局 smarty 修改器?

我正在创建一个基于 PrestaShop (v 1.6) 的商店,我想注册我的自定义修饰符插件,以便可以从任何模板(包括前台和后台模板)访问。

问题是注册码放在哪里

现在我使用工具覆盖来添加函数来处理修饰符(这是在商店特定功能的情况下可以接受的做法,afaik),并使用smarty.config.inc.php来注册插件(因为所有 PrestaShop 插件都在这里注册),但是这个文件包含一个关于“不要直接修改文件”的警告,据我所知,当我升级 PrestaShop 时会被覆盖。

所以,问题是在哪里注册我的插件以确保我的代码不会被覆盖?

提前致谢。

prestashop prestashop-1.6 smarty-plugins

4
推荐指数
1
解决办法
1818
查看次数