Php 基于类别在opencart中显示标签

Php 基于类别在opencart中显示标签,php,opencart,Php,Opencart,我试图添加标签上的产品列表页的基础上的特殊条件。我有buy-one get-one free sale,所以当用户访问buy-one get-1 free类别时,他应该能够看到产品上的标签(在我的例子中,我有bogo.png图像)。我做了一些修改,一切都很好,直到我在商店前面搜索一个产品,我得到了未定义的变量错误 2015-01-09 18:26:58 - PHP Notice: Undefined index: bogo in catalog/view/theme/YourTheme/tem

我试图添加标签上的产品列表页的基础上的特殊条件。我有buy-one get-one free sale,所以当用户访问buy-one get-1 free类别时,他应该能够看到产品上的标签(在我的例子中,我有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
<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>
我在谷歌上搜索这个问题,在opencart论坛上浏览了好几天,却没有任何运气。这就是我到现在为止所做的。在catalog/controller文件中的Category.php上,我在这个数组下添加了

$this->data['products'][]= array(
'bogo'         => $bogo,
并在getProducts下添加了此条件,指定类别id是否为buy 1 get 1 free类别的类别id,并将bogo设置为true

$results = $this->model_catalog_product->getProducts($data);
                                if($category_id==977){
                                    $bogo = true;
                                    }
                                    else{
                                    $bogo = false;
                                    }
在product_collection.tpl文件中,我做了这个更改


一切都很好,如果我去的类别,它显示的标签完美,问题是我得到上述错误,只有当我在商店前面搜索任何东西。
请注意,在对问题进行负面评价之前,我对php一点也不熟悉,为了解决这个问题,我花了好几个小时进行了研究

您需要添加这段代码
if($category_id==977){$bogo=true;}else{$bogo=false;}
$this->data['products'][]=array('bogo'=>$bogo,

到controller/product/search.php=>ControllerProductSearch@index


顺便说一句:您需要在每个使用product/product_collection.tpl的控制器文件中添加上述代码。当我将其添加到search.php中进行搜索时,我会收到相同的错误。搜索页面的路径名称是什么?路径=product/search,这是我进行更改的地方。没有“product/product_collection.tpl”在1.5.6.1默认主题中,您确定它是没有扩展名的普通版本吗?不幸的是,我无法检查该文件,因为它是一个非免费主题,无论如何,您需要执行以下操作:(1)在视图文件中,获取包含$product的数组的名称(很可能会有这样的foreach[foreach($theu name\u我们想要作为$product)])(2)在控制器文件(product/search.php)中,搜索$this->data['您搜索的上述名称'][]=array(…(3)确保$bojo列在该数组中,这是根据您的错误和半年开发开放式购物车插件所知的最远的数组:D,GL!