我搜索并找到了结果,模块和解决方案,但所有都是开放式购物车1,我想要开放式购物车2.
在product.tpl
中 <ul class="list-unstyled">
<?php if ($manufacturer) { ?>
<li><?php echo $text_manufacturer; ?> <a href="<?php echo $manufacturers; ?>"><?php echo $manufacturer; ?></a></li>
<?php } ?>
<li><?php echo $text_model; ?> <?php echo $model; ?></li>
<?php if ($reward) { ?>
<li><?php echo $text_reward; ?> <?php echo $reward; ?></li>
<?php } ?>
<li><?php echo $text_stock; ?> <?php echo $stock; ?></li>
</ul>
我想在此列表中显示类别标题。我在管理面板中找不到此选项,然后我决定手动执行此操作。我知道必须在product.php中做一些事情,但不知道如何获得产品名称
$data['category_title'] = $this->request->get['category_title'];
提前致谢
答案 0 :(得分:0)
佩德拉姆,您的网站网址应为
$Categories = $this->model_catalog_category->getCategoryName($this->request->get['product_id']);
在这里 path = 20→category_id
但您的网址没有路径变量,因为您直接在搜索页面或主页产品列表中搜索。如果您想获得类别标题,那么您希望通过product_id开发代码。
以下是获取类别标题的代码
product.php→控制器文件
public function getCategoryName($product_id) {
$query = $this->db->query("SELECT DISTINCT(cd.name),p2c.product_id,cd.category_id FROM " . DB_PREFIX . "product_to_category p2c, " . DB_PREFIX . "category_description cd WHERE p2c.product_id = '".$product_id."' AND cd.category_id = p2c.category_id AND cd.category_id != 1");
return $query->rows;
}
category.php→模型文件
$(function () {
var $fields = $('.wql');
$fields.on("keypress",function (e) {
console.log(e.which,$(this).next('.wql').attr("id"));
if (e.which === 13 && this.id ="submit_btn") {
e.preventDefault();
var idx = $fields.index(this);
$fields.eq(idx+1).focus();
}
});
});
如果您的产品在多个类别下选择,那么它将给出结果数组,否则它将给出一个结果。
答案 1 :(得分:0)
Pedram, 如果您不想将产品选择为多个类别,请更改以下代码。
product.php(控制器)
$data['category_title'] = $this->model_catalog_category->getCategoryName($this->request->get['product_id']);
category.php(型号)
public function getCategoryName($product_id) {
$query = $this-db-query("SELECT DISTINCT(cd.name),p2c.product_id,cd.category_id FROM " . DB_PREFIX . "product_to_category p2c, " . DB_PREFIX . "category_description cd WHERE p2c.product_id = '".$product_id."' AND cd.category_id = p2c.category_id AND cd.category_id != 1");
return $query-row;}
product.tpl(查看)
<?php echo $category_title;?>
答案 2 :(得分:0)
我知道很晚才回答,但我可能会帮助别人。在Opencart 2.3.0.2中测试
在产品页面中显示类别。
您必须编辑一些opencart文件。 转到Controllors&gt;产品&gt; product.php
找到以下行
$ product_info = $ this-&gt; model_catalog_product-&gt; getProduct($ product_id);
由于我们需要产品清单的类别,我们需要列表中每种产品的product_id
$this->load->model('catalog/category');
$categories = $this->model_catalog_category->getCategoryName($this->request->get['product_id']); if ($categories)
{
$categories_info= $this->model_catalog_category->getCategory($categories[0]['category_id']);
$data['category_title'] = $categories_info['name'];
$data['category_text'] = "Category : ";
//print_r($categories_info['name']);
// $this->data['category_title'] = $categories_info['name'];
}
现在转到模型&gt;目录&gt;类别,您需要创建一个新功能 我们在控制器中使用的getCategoryName
public function getCategoryName($product_id) {
$query = $this->db->query("SELECT DISTINCT(cd.name),p2c.product_id,cd.category_id FROM " . DB_PREFIX . "product_to_category p2c, " . DB_PREFIX . "category_description cd WHERE p2c.product_id = '".$product_id."' AND cd.category_id = p2c.category_id AND cd.category_id != 1");
return $query->rows;
}
现在转到View&gt;主题&gt; themename&gt;模板&gt;产品&gt; product.tpl并在要显示类别
的位置添加以下行<?php echo $category_text; ?><?php echo $category_title; ?>
答案 3 :(得分:0)
我做这样的事情。如果您不想将产品选择为多个类别,请更改以下代码。
(catalog / controller / product / product.php)-控制器文件的路径 (system / storage / modification / catalog / controller / product / product.php)-opencart控制器文件的路径
将此代码粘贴到我们的控制器的两个文件中。我在此行之前经过:$product_info = $this->model_catalog_product->getProduct($product_id);
因为我们已经在变量中包含了我们的产品ID:
$category_information = $this->model_catalog_category->getCategoryName($product_id);
if ($category_information) {
$data['category_name'] = $category_information['name'];
}
(catalog / model / catalog / category.php)-模型文件的路径
在最后一个关闭符号“}”之前粘贴此代码。您可以在我们的模型类中创建新函数:
public function getCategoryName($product_id) {
$query = $this->db->query("SELECT DISTINCT(cd.name),p2c.product_id,cd.category_id FROM " . DB_PREFIX . "product_to_category p2c, " . DB_PREFIX . "category_description cd WHERE p2c.product_id = '".$product_id."' AND cd.category_id = p2c.category_id AND cd.category_id != 1");
return $query->row;
}
(目录/视图/主题/名称为主题/模板/product/product.tpl)
并将此代码粘贴到产品tpl上的任何位置。我经过<ul class="breadcrumb">...</ul>
之后:
<?php if(isset($category_name)){ ?>
<div class="heading-title">
<h1><?=$category_name;?></h1>
</div>
<?php } ?>
这就是所有人。
P.S。 OpenCart版本2.3.0.2