I want to add unique style to products of a certain category in opencart 2.3.0.2.
If you want to change style of Particular Category including HTML then first
open
catalog/controller/extension/module/category.php
At the end of file you will find line:
return $this->load->view('extension/module/category', $data);
Here you can add your if else
condition for particular category ID like:
if ($data['category_id'] == 25){
return $this->load->view('extension/module/categorycustom', $data);
} else {
return $this->load->view('extension/module/category', $data);
}
Add new file at:
catalog/view/theme/default/template/extension/module/categorycustom.tpl
and copy content from
catalog/view/theme/default/template/extension/module/category.tpl
This will change content of left side filter data.
if you want to change main content at right side then open:
catalog/controller/product/category.php
Find line around 377
$this->response->setOutput($this->load->view('product/category', $data));
Add your if else
condition here to change the main content of the page. Like:
if ($category_info['category_id'] == 28){
$this->response->setOutput($this->load->view('product/categorynew', $data));
} else {
$this->response->setOutput($this->load->view('product/category', $data));
}
Now add new file at:
catalog/view/theme/default/template/product/categorynew.tpl
Copy content from:
catalog/view/theme/default/template/product/category.tpl
This way you can completely change the layout of particular category page.
In Opencart 2.x, body
has different classes for every different pages, for example in a category its like: <body class="product-category-59">
for another category: <body class="product-category-70">
You can use these class for your styles, for example:
.product-category-59 a {
color: red;
}
.product-category-70 a {
color: green;
}