douji8549 2015-01-09 19:03
浏览 41
已采纳

在opencart中显示基于Category的标签

I am trying to add labels on product list page based on special conditions. I have buy one get one free sale, so When user visits buy 1 get 1 free category, he should be able to see the label on the products(in my case, I have bogo.png image). Everything worked fine with the modifications I did until I searched on the store front for a product, I get undefined variable error.

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

I did google search for the problem and browsed opencart forums for days without any luck. So here is what I did until now. On Category.php in catalog/controller file, I added under this array

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

And added this condition under getProducts specifying if the category id is the category id for the buy 1 get 1 free category set bogo to true.

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

and on product_collection.tpl file, I did this change.

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

Everything is fine if I go to that category it displays the label perfectly, the problem is I get that above error only when I search for anything on store front. Please note that before rating the question negatively, I am not familiar at all with php and I did my best with research for hours to solve this.

  • 写回答

1条回答 默认 最新

  • doujia1904 2015-01-09 19:59
    关注

    you need to add that piece of code
    if($category_id==977){$bogo = true;}else{$bogo = false;} $this->data['products'][]= array('bogo' => $bogo,
    to controller/product/search.php => ControllerProductSearch@index

    BTW: you will need the add the above code in every controller file that makes use of product/product_collection.tpl

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 矩阵加法的规则是两个矩阵中对应位置的数的绝对值进行加和
  • ¥15 活动选择题。最多可以参加几个项目?
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题
  • ¥20 云服务Linux系统TCP-MSS值修改?
  • ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)
  • ¥20 怎么在stm32门禁成品上增加查询记录功能
  • ¥15 Source insight编写代码后使用CCS5.2版本import之后,代码跳到注释行里面
  • ¥50 NT4.0系统 STOP:0X0000007B
  • ¥15 想问一下stata17中这段代码哪里有问题呀