2012-08-15 119 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

相关问题