2012-08-15 116 views
1

我有Opencart的1.5.1.3,並修改元標題顯示「產品名稱 - 產品類別」Opencart的 - 顯示兩種產品的

$產品的詳細信息[「名」]。 ' - '。 $ category_info ['name']

問題是當某些產品屬於兩個或多個類別時。如何讓開放式購物車使用任何一種產品的類別?我不在乎哪一個:)

$this->language->load('product/product'); 

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

    $this->data['breadcrumbs'][] = array(
     'text'  => $this->language->get('text_home'), 
     'href'  => $this->url->link('common/home'),   
     'separator' => false 
    ); 

    $this->load->model('catalog/category'); 
    $this->request->get['path'] = (isset($this->request->get['path']))? $this->request->get['path'] : $this->model_catalog_category->getCategoryPath($this->request->get['product_id']); 

    if (isset($this->request->get['path'])) { 
     $path = ''; 

     foreach (explode('_', $this->request->get['path']) as $path_id) { 
      if (!$path) { 
       $path = $path_id; 
      } else { 
       $path .= '_' . $path_id; 
      } 

      $category_info = $this->model_catalog_category->getCategory($path_id); 

      if ($category_info) { 
       $this->data['breadcrumbs'][] = array(
        'text'  => $category_info['name'], 
        'href'  => $this->url->link('product/category', 'path=' . $path), 
        'separator' => $this->language->get('text_separator') 
       ); 
      } 
     } 
    } 
+1

這真的取決於你如何選擇類別信息。請將您的代碼發送至 – 2012-08-15 13:57:29

+0

將代碼添加到我的問題中 – Aaviya 2012-08-15 14:24:46

回答

1

上面的代碼假設您通過類別獲得產品,但事實上並非總是如此。相反,你要做到以下幾點

查找/catalog/controller/product/product.php

$this->document->setTitle($product_info['name']); 

這符合下列

 $result = $this->db->query(" 
      SELECT `cd`.`name` 
      FROM `" . DB_PREFIX . "product_to_category` `p2c` 
      LEFT JOIN `" . DB_PREFIX . "category_description` `cd` 
      ON `cd`.`category_id` = `p2c`.`category_id` 
      WHERE `p2c`.`product_id` = '" . (int) $product_id . "' 
      AND `cd`.`language_id` = '" . $this->confing->get('config_language_id') . "' 
      ORDER BY `cd`.`category_id` DESC 
      LIMIT 1 
     "); 

     $category_name = $result->num_rows ? $result->row['name']: ''; 
     $this->document->setTitle($product_info['name'] . (empty($category_name) ? '' : ' - ' . $category_name)); 

這將始終顯示爲分配給該類別中創建的最後一類替換它產品。它也不會顯示一個類別,如果沒有分配給它(並隱藏 - )

+0

非常感謝。很棒! – Aaviya 2012-08-16 07:11:05

相關問題