2015-01-09 76 views
0

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

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是否为buy 1 get 1 free category set 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并不熟悉,并且为了解决这个问题,我花了数小时的时间研究了我的最佳成果。

回答

2

你需要添加一段代码
if($category_id==977){$bogo = true;}else{$bogo = false;} $this->data['products'][]= array('bogo' => $bogo,
控制器/产品/ search.php中 =>ControllerProductSearch @索引

顺便说一句:你将需要添加上述代码在每个使用产品的控制器文件中产品/ product_collection.tpl

+0

我在搜索时将相同的错误添加到search.php。 – 2015-01-09 20:35:54

+0

搜索页面的路由名称是什么? – 2015-01-09 20:38:46

+0

route =产品/搜索这是我做出改变的地方。 – 2015-01-09 20:40:48

相关问题