2012-11-24 53 views
0

我是opencart的新手。默認情況下,Opencart特色產品顯示產品說明和價格,但現在我希望特色產品部分的產品優惠價格,所以我更改了特色產品代碼並添加了代碼以顯示折扣價格。下面是特色產品在featured.tpl的時候,當我用爲什麼Opencart沒有將變量從模塊傳遞到查看文件?

<?php foreach ($discounts as $discount) { ?> 
    <span class="discount-price"> 
    <?php echo sprintf($text_discount, $discount['quantity'], $discount['price']); ?> 
    </span> 
    <?php } ?> 

是表示不確定變量$discounts完整的代碼現在

<?php 
class ControllerModuleFeatured extends Controller { 
    protected function index($setting) { 
    $this->language->load('module/featured'); 
    $this->data['heading_title'] = $this->language->get('heading_title'); 
    $this->data['button_cart'] = $this->language->get('button_cart'); 
    $this->data['text_discount'] = $this->language->get('text_discount'); 
    $this->load->model('catalog/product'); 

    $this->load->model('tool/image'); 

    $this->data['products'] = array(); 

    $products = explode(',', $this->config->get('featured_product'));  

    if (empty($setting['limit'])) { 
     $setting['limit'] = 5; 
    } 

    $products = array_slice($products, 0, (int)$setting['limit']); 

    foreach ($products as $product_id) { 
     $product_info = $this->model_catalog_product->getProduct($product_id); 
     $discounts = $this->model_catalog_product->getProductDiscounts($product_id); 
     $product_discounts[] = array(); 
     foreach ($discounts as $discount) { 
     $product_discounts[] = array(
     'quantity' => $discount['quantity'], 
     'price' => $this->currency->format($this->tax->calculate($discount['price'], $product_info['tax_class_id'], $this->config->get('config_tax'))) 
    ); 
     } 

     if ($product_info) { 
     if ($product_info['image']) { 
      $image = $this->model_tool_image->resize($product_info['image'], $setting['image_width'], $setting['image_height']); 
     } else { 
      $image = false; 
     } 

     if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) { 
      $price = $this->currency->format($this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax'))); 
     } else { 
      $price = false; 
     } 

     if ((float)$product_info['special']) { 
      $special = $this->currency->format($this->tax->calculate($product_info['special'], $product_info['tax_class_id'], $this->config->get('config_tax'))); 
     } else { 
      $special = false; 
     } 

     if ($this->config->get('config_review_status')) { 
      $rating = $product_info['rating']; 
     } else { 
      $rating = false; 
     } 


     $this->data['products'][] = array(
      'product_id' => $product_info['product_id'], 
      'thumb'  => $image, 
      'name'  => $product_info['name'], 
      'description'=> $product_info['description'], 
      'price'  => $price, 
      'special' => $special, 
      'rating'  => $rating, 
      'reviews' => sprintf($this->language->get('text_reviews'), (int)$product_info['reviews']), 
      'href'  => $this->url->link('product/product', 'product_id=' . $product_info['product_id']), 
      'discounts' => $product_discounts, 
     ); 
     } 

    } 
    if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/module/featured.tpl')) { 
     $this->template = $this->config->get('config_template') . '/template/module/featured.tpl'; 
    } else { 
     $this->template = 'default/template/module/featured.tpl'; 
    } 

    $this->render(); 
    } 
} 
?> 

。但是,如果我在模塊文件中使用print_r($discounts),它會在那裏顯示折扣價格。我真的堅持這一點。爲什麼模塊沒有將值傳遞給視圖文件?有人可以幫我弄這個嗎?任何幫助和建議將是可觀的。

回答

3

你應該在foreach使用$product['discounts']$discounts

+0

感謝,真正爲我工作;) – NewUser

相關問題