在opencart中显示基于Category的标签

时间:2015-01-09 19:03:21

标签: php opencart

我正在尝试根据特殊条件在产品列表页面上添加标签。我买了一送一的免费促销,所以当用户访问买1送1类别时,他应该能够看到产品上的标签(在我的情况下,我有bogo.png图片)。我做的修改一切正常,直到我在商店前面搜索产品,我得到未定义的变量错误。

2015-01-09 18:26:58 - PHP Notice:  Undefined index: bogo in catalog/view/theme/YourTheme/template/product/product_collection.tpl on line 26

我确实谷歌搜索了这个问题并浏览了opencart论坛几天没有任何运气。所以这就是我到现在所做的。在目录/控制器文件中的Category.php上,我在此数组下添加了

$this->data['products'][]= array(
'bogo'         => $bogo,

并在getProducts下添加了此条件,指定类别ID是否为买1送1类别设置bogo为true的类别ID。

$results = $this->model_catalog_product->getProducts($data);
                                if($category_id==977){
                                    $bogo = true;
                                    }
                                    else{
                                    $bogo = false;
                                    }

并在product_collection.tpl文件中,我做了这个更改。

<pre><code>
<?php if( $product['bogo'] ) {   ?>         
                            <span class="product-label-bogo2"><img src='bogo.png'></span>
                        <?php } else if ($product['special']) { ?>  
                            <span class="product-label-special"><span><?php echo $this->language->get( 'text_sale' ); ?></span></span>
                        <?php } ?>
</code></pre>

一切都很好,如果我去那个类别它完全显示标签,问题是我只有当我在商店前面搜索任何东西时才会出现上述错误。 请注意,在对问题进行评价之前,我对php并不熟悉,我在研究中花了好几个小时来解决这个问题。

1 个答案:

答案 0 :(得分:2)

你需要添加那段代码 if($category_id==977){$bogo = true;}else{$bogo = false;} $this->data['products'][]= array('bogo' => $bogo,
controller / product / search.php =&gt; ControllerProductSearch @索引

BTW:您需要在每个使用 product / product_collection.tpl

的控制器文件中添加上述代码