如何在 TPL 文件中的 prestashop 1.7 中检测 smarty 中的设备?

How to detect device in smarty in prestashop 1.7 in a TPL file?

我想要以下内容:

& 我知道我必须从 PrestaShop 的 context.php 获取代码,但我似乎出错了。 Alinkgetcontext如下:(检测移动设备的代码在这里) https://github.com/PrestaShop/PrestaShop/blob/develop/classes/Context.php

{if isset($products) AND $products}
             {$tabname=rand()+count($products)}
            {if isset($display_mode) && $display_mode == 'carousel'}
                {include file="{$items_owl_carousel_tpl}" items=$products image_size=$image_size}
            {else}
                {if device is MOBILE} /* Correct Code Needed */
                    {include file="{$items_normal_tpl}" items=$products image_size="homepage_default"}
                {else device is NOT MOBILE} /* Correct Code Needed */
                    {include file="{$items_normal_tpl}" items=$products image_size="home_default"}
                {/if}
            {/if}
        {/if}

我应该在 IF 条件中输入什么代码以确保它检测到移动而不是移动。

还有if条件写的对吗,这段代码改什么?

这是 .TPL 文件。

试试 :

{if Context::getContext()->isMobile() == 1}
    {if Context::getContext()->getDevice() != 2}
        // TABLETTE
    {else}
        // MOBILE
    {/if}
{else}
    // PC
{/if}

此致

在 Prestashop 1.7.8.2 中它是这样工作的 -->

{assign var="dispositivo" value="desktop"}

{if Context::getContext()->isMobile()}

    {assign var="dispositivo" value="mobile"}

{else if  Context::getContext()->isTablet()}

    {assign var="dispositivo" value="tablet"}

{else}

    {assign var="dispositivo" value="desktop"}

{/if}