传递给主题.tpl文件的Prestashop自定义模块变量。

问题描述 投票:1回答:1

我试图从模块中传递我自己的变量到模板文件.tpl中。

我有这样的代码,用于在eshop中显示可用性。产品.tpl

                            {if $product.availability == 'available'}
                                {if $product.quantity <= 0  && $product.allow_oosp}
                                    {if isset($product.available_date) && $product.available_date != '0000-00-00'}
                                        <i class="fa fa-truck rtl-no-flip" aria-hidden="true"></i>
                                        {$product.availability_message} 
                                        ({if $product.available_date|strtotime > $smarty.now}<span class="available-date">{l s='naskladnění' d='Shop.Theme.Catalog'} {$product.available_date|date_format:"%d.%m.%Y"}</span>{/if})
                                    {/if}
{/if}{/if}

然后,我有自己的模块,在那里,我分配值给smarty的。Mymodule.php

    $in_stock = 1;
    $this->context->smarty->assign("is_in_stock", $in_stock);

我的问题是,如果有什么方法可以 直接从主题tpl访问我的smarty变量。? 我需要用该变量设置另一个{if else},但无法访问它。

当我将变量添加到自定义钩子时,我也无法访问它。也许我不知道怎么做。我试着 创建前控制器 但什么都没有发生。

类似于...

{if isset($product.available_date) && $mymodule.is_in_stock = 1 && $product.available_date != '0000-00-00'}
php prestashop
1个回答
0
投票

你可以在.tpl文件中的任何地方访问你的模块的功能,方法是

{YourModule::yourFunction()}。

并设定如果喜欢

{if YourModule::yourFunction() !=1}Hello{if}。

© www.soinside.com 2019 - 2024. All rights reserved.