2017-07-20 99 views
0

我想檢查產品是否有特定標籤。如果是這樣,我想顯示一些文字。以下是我所做的一些示例。有用。唯一的問題是我得到錯誤。檢查產品是否在Prestashop中有特定標籤1.6.1.4

{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} 

錯誤日誌有這樣的條目:

警告:in_array()預計參數2爲陣列,在/cache/smarty/compile/94/4d/52/944d5284e871d0de7a0c6b84ebb2089ad579ed8b.file空給出.product.tpl.php在高速緩存行330

線330看起來是這樣的:

<?php if (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; 
?> 

我做了什麼錯了導致這些錯誤?

回答

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} 
0

警告:in_array()預計參數2是陣列,在...

簡單空給出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; 
?> 
+0

這個用smarty怎麼看?我不能使用<?php。 我試過了:{if(is_array($ _ smarty_tpl-> tpl_vars ['product'] - > value-> tags [1])&& in_array('rent',$ _ smarty_tpl-> tpl_vars ['product'] - > value - > tags [1]))}但該檢查不再有效。我查看了一個標籤出租的產品,我想要顯示的文本沒有顯示。 – N13Design

+0

@ N13Design我不是Smarty模板的專家,但是您是否嘗試了這種方法,[https://pastebin.com/ZBy4eNJe](https://pastebin.com/ZBy4eNJe)? –

+0

Prestashop裏面有些東西不喜歡。它打破了頁面。 – N13Design

相關問題