【问题标题】:Using a PHP function in Twig在 Twig 中使用 PHP 函数
【发布时间】:2021-06-21 00:43:15
【问题描述】:

我有一个 PHP 代码可以在我的公共控制器中为我的 Twig 模板添加一个新类:“opencart\htdocs\catalog\controller\common\cart.php”

代码应检查设备是否为移动设备。

function onStart()
{
    // Anonymous Class only working on PHP7
    $this['code'] = new class {
       
       public function MobileDetect() {

    return preg_match("/(android|avantgo|blackberry|bolt|boost|cricket|docomo
|fone|hiptop|mini|mobi|palm|phone|pie|tablet|up\.browser|up\.link|webos|wos)/i"

, $_SERVER["HTTP_USER_AGENT"]);

}

    };

}

但现在我不知道如何从我的树枝方面正确解决该功能:

opencart\htdocs\catalog\view\theme\default\template\common\cart.twig

我尝试了类似的方法,但它似乎不起作用:

{% if code.MobileDetect() is defined %}

如果设备是移动设备,我想使用完全不同的 HTML 结构。

【问题讨论】:

标签: php twig


【解决方案1】:

您需要做的是创建自己的 Twig 函数: https://twig.symfony.com/doc/3.x/advanced.html#functions

所以使用他们的例子你应该能够做类似的事情

$function = new \Twig\TwigFunction('MobileDetect', function () {
    return preg_match("/(android|avantgo|blackberry|bolt|boost|cricket|docomo
    |fone|hiptop|mini|mobi|palm|phone|pie|tablet|up\.browser|up\.link|webos|wos)/i"
    , $_SERVER["HTTP_USER_AGENT"]);
});
$twig->addFunction($filter);

然后这样称呼它

{% if MobileDetect() %}

【讨论】:

    猜你喜欢
    • 2012-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多