Php Opencart-显示两种产品之一';s类

Php Opencart-显示两种产品之一';s类,php,opencart,Php,Opencart,我有Opencart 1.5.1.3,并修改了元标题以显示“产品名称-产品类别” $product_info['name'].-'$类别信息[“名称”] 问题是当一些产品属于两个或更多类别时。如何告诉OpenCart使用任何一种产品类别?我真的不在乎哪一个:) 上面的代码假设您通过类别访问产品,而事实上,这并不总是发生。相反,您希望执行以下操作 $result = $this->db->query(" SELECT `cd`.`name`

我有Opencart 1.5.1.3,并修改了元标题以显示“产品名称-产品类别”

$product_info['name'].-'$类别信息[“名称”]

问题是当一些产品属于两个或更多类别时。如何告诉OpenCart使用任何一种产品类别?我真的不在乎哪一个:)


上面的代码假设您通过类别访问产品,而事实上,这并不总是发生。相反,您希望执行以下操作

        $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));
/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));

这将始终显示作为分配给产品的类别创建的最后一个类别。如果没有指定类别,它也不会显示类别(并隐藏-

您上面的代码假设您通过类别访问产品,但事实上并非总是这样。相反,您希望执行以下操作

        $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));
/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));

这将始终显示作为分配给产品的类别创建的最后一个类别。如果没有指定类别,它也不会显示类别(并隐藏-

,这取决于您选择类别信息的方式)。请发布您的代码这实际上取决于您选择类别信息的方式。发布你的代码,非常感谢。很好!非常感谢你。很好!