检查产品是否在Prestashop 1.6.1.4中有特定标签

时间:2017-07-20 19:38:35

标签: php caching smarty prestashop

我想检查产品是否有某个标签。如果是的话,我想显示一些文字。以下是我所做的样本。有用。唯一的问题是我得到了错误。

<select ng-size="{{size}}" multiple="multiple" id="selectMultiple" style="margin: 5px 0px; width:50%">
     <option ng-repeat="value in scope.Names">{{value.Name}}</option>
</select>

错误日志包含以下条目:

警告:in_array()期望参数2为数组,在第330行的/cache/smarty/compile/94/4d/52/944d5284e871d0de7a0c6b84ebb2089ad579ed8b.file.product.tpl.php中给出为null

缓存中的第330行如下所示:

 {if in_array('rent', $product->tags.1)}
      <img id="turnKeyimg" alt="TurnKey Rental Option" src="{$tpl_uri}img/key.png"/>
      <h3>TurnKey Rental Option</h3>
      <p>Also available for immediate rental.<br />Request a quote today</p>
 {/if}

导致这些错误我做错了什么?

2 个答案:

答案 0 :(得分:0)

  

警告:in_array()期望参数2为数组,在......

中给出null

简单,in_array()函数期望第二个参数是一个数组,但是你将NULL作为第二个参数传递。

您必须首先检查$_smarty_tpl->tpl_vars['product']->value->tags[1]是否为数组,然后执行in_array(...)操作。

<?php if (is_array($_smarty_tpl->tpl_vars['product']->value->tags[1]) && in_array('rent',$_smarty_tpl->tpl_vars['product']->value->tags[1])) {?> 
     <img id="turnKeyimg" alt="TurnKey Rental Option" 
     src="<?php echo $_smarty_tpl->tpl_vars['tpl_uri']->value;
?>

答案 1 :(得分:0)

要修复错误消息,我添加了一个数组是否存在的检查。没有更多的错误。

 {if (isset($product->tags) && $product->tags)}
    {if in_array('rent', $product->tags.1)}
      <img id="turnKeyimg" alt="TurnKey Rental Option" src="{$tpl_uri}img/key.png"/>
      <h3>TurnKey Rental Option</h3>
      <p>Also available for immediate rental.<br />Request a quote today</p>
    {/if}
{/if}