我在Prestashop中使用此代码
{if (strpos($product.name, 'TVNUMBER1') !== false)}
THIS PRODUCT IS IN SALE
{/if}
因此,每当要显示某些产品正在销售时,我都必须一行一行地指定相同的产品,即“ TVNUMBER1”。 我希望能够编写一个数组,详细说明我销售的所有产品“ TV1,TV2,TV3”,并获得如下代码:
{if (strpos($product.name, '$array') !== false)}
THIS PRODUCT IS IN SALE
{/if}
我已经尝试过在这里找到类似的示例,但是无论是在Prestashop还是在线的PHP测试人员中,我都无法使它们工作。看起来超级简单,但我无法解决。
答案 0 :(得分:0)
似乎您正在使用Smarty作为模板引擎。因此,您可以执行以下操作(来自the doc)。
在控制器中
//Give it to the view
$arr = array('TVNUMBER1', 'TVNUMBER2');
$smarty->assign('myArray', $arr);
在视图中
//In the view, loop over the array
{foreach from=$myArray item=productName}
//If your product is among the in-sale ones, show the message
{if (strpos($product.name, productName) !== false)}
THIS PRODUCT IS IN SALE
{/if}
{/foreach}
答案 1 :(得分:0)
我认为您想要的是in_array
php函数,该函数检查给定的$ needle是否在数组中。
所以您应该做的是:
{if (in_array($product.name, '$array') !== false)}
THIS PRODUCT IS IN SALE
{/if}
然后在控制器中,您可以将数组分配给smarty:
$arr = array('TVNUMBER1', 'TVNUMBER2', 'TVNUMBER3');
$smarty->assign('myArray', $arr);