Page 2 of 4
Re: [SOLVED][1.5] one more level of sub category!
Posted: Sat Nov 19, 2011 6:39 pm
by sashun
hi, romeo2k
how did you made it
maincat
- subcat1
- - subsubcat1
- - - subsubsubcat1
plz. help me!!!!
Re: [SOLVED][1.5] one more level of sub category!
Posted: Sat Nov 19, 2011 6:48 pm
by romeo2k
i find one menu on forums, and it is great
http://forum.opencart.com/viewtopic.php ... u&start=20
just modifying colors now, its easy
regards
Re: [SOLVED][1.5] one more level of sub category!
Posted: Tue Nov 22, 2011 6:22 pm
by sashun
hello everybody
I have a problem. I need your help. Can you help me.
i need to add one more level.
I need to add one more level (4th level) sub-category.
Category
-child
--sister
----brother
PLZ help me!
Re: [SOLVED][1.5] one more level of sub category!
Posted: Tue Nov 22, 2011 8:17 pm
by fred123
Hi I am using version 1.5.1.3 and want to add a sister level, will the above work? I kind of need it in simple terms !
Re: [SOLVED][1.5] one more level of sub category!
Posted: Sat Nov 26, 2011 4:14 am
by Xciso
Use the guide in the link above.
Works like a dream with 1.5.1.3

Re: [SOLVED][1.5] one more level of sub category!
Posted: Tue Nov 29, 2011 3:53 am
by fred123
I would if I could read it!
Re: [SOLVED][1.5] one more level of sub category!
Posted: Tue Nov 29, 2011 4:13 am
by fred123
I am sooo confused!
I have changed the files as per instructions and now have an error..
Parse error: syntax error, unexpected $end in /var/www/vhosts/xxxxxx.co.uk/httpdocs/catalog/controller/module/category.php on line 109
can someone please put all this into a simple instruction guide for an old dummie like me please.
Many thanks.
chokoret wrote:FIGURED OUT!!!!!! LET ME CLEAN THIS UP FOR THOSE WHO NEED THIS!! :^D
THANKX A MILLION ROGER!!
1. Open catalog/controller/module/category.php to edit , and
find this part
Code: Select all
if (isset($parts[1])) {
$this->data['child_id'] = $parts[1];
} else {
$this->data['child_id'] = 0;
}
2. and after ,
ADD this
Code: Select all
if (isset($parts[2])) {
$this->data['sisters_id'] = $parts[2];
} else {
$this->data['sisters_id'] = 0;
}
3.
Find this part
Code: Select all
foreach ($categories as $category) {
$children_data = array();
$children = $this->model_catalog_category->getCategories($category['category_id']);
foreach ($children as $child) {
$data = array(
'filter_category_id' => $child['category_id'],
'filter_sub_category' => true
);
$product_total = $this->model_catalog_product->getTotalProducts($data);
$children_data[] = array(
'category_id' => $child['category_id'],
'name' => $child['name'] . ' (' . $product_total . ')',
'href' => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id'])
);
}
$data = array(
'filter_category_id' => $category['category_id'],
'filter_sub_category' => true
);
$product_total = $this->model_catalog_product->getTotalProducts($data);
$this->data['categories'][] = array(
'category_id' => $category['category_id'],
'name' => $category['name'] . ' (' . $product_total . ')',
'children' => $children_data,
'href' => $this->url->link('product/category', 'path=' . $category['category_id'])
);
}
(this is below $categories = $this->model_catalog_category->getCategories(0);
and above if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/module/category.tpl')) { )
4. and
REPLACE that with this ::
Code: Select all
foreach ($categories as $category) {
$children_data = array();
$children = $this->model_catalog_category->getCategories($category['category_id']);
foreach ($children as $child) {
$sister_data = array();
$sisters = $this->model_catalog_category->getCategories($child['category_id']);
if(count($sisters) > 1) {
foreach ($sisters as $sisterMember) {
$sister_data[] = array(
'category_id' =>$sisterMember['category_id'],
'name' => $sisterMember['name'],
'href' => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id']. '_' . $sisterMember['category_id'])
);
}
$children_data[] = array(
'category_id' => $child['category_id'],
'sister_id' => $sister_data,
'name' => $child['name'],
'href' => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id'])
);
}else{
$children_data[] = array(
'category_id' => $child['category_id'],
'sister_id' =>'',
'name' => $child['name'],
'href' => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id'])
);
}
}
$data = array(
'filter_category_id' => $category['category_id'],
'filter_sub_category' => true
);
$product_total = $this->model_catalog_product->getTotalProducts($data);
$this->data['categories'][] = array(
'category_id' => $category['category_id'],
'name' => $category['name'],
'children' => $children_data,
'sister' => $sister_data,
'href' => $this->url->link('product/category', 'path=' . $category['category_id'])
);
}
5. Now save. and open cataloge/view/theme/*yourtheme*/template/module/category.tpl ,
FINDCode: Select all
<?php foreach ($category['children'] as $child) { ?>
<li>
<?php if ($child['category_id'] == $child_id) { ?>
<a href="<?php echo $child['href']; ?>" class="active"> - <?php echo $child['name']; ?></a>
<?php } else { ?>
<a href="<?php echo $child['href']; ?>"> - <?php echo $child['name']; ?></a>
<?php } ?>
6. and under that,
ADDCode: Select all
<?php if($child['sister_id']){ ?>
<ul>
<?php foreach($child['sister_id'] as $sisters) { ?>
<li>
<?php if ($sisters['category_id'] == $sisters_id) { ?>
<a href="<?php echo $sisters['href']; ?>" class="active"> - <?php echo $sisters['name']; ?></a>
<?php } else { ?>
<a href="<?php echo $sisters['href']; ?>"> - <?php echo $sisters['name']; ?></a>
<?php } ?>
</li>
<?php } ?>
</ul>
<?php } ?>
7. Now save, and go open catalog/view/theme/*yourtheme/stylesheet/stylesheet.css
FINDCode: Select all
.box-category > ul > li ul > li > a.active + ul {
display: block;
}
8. and under that,
ADDCode: Select all
.box-category > ul > li ul > li ul > li a.active {
font-weight: bold;
color: #06bcc3;
}
.box-category > ul > li ul > li ul > li a.active + ul {
display: block;
}
( #06bcc3 is color code, you might want to change it to the color you want)
8. Now Save, and test the view! :^D !!
Re: [SOLVED][1.5] one more level of sub category!
Posted: Wed Nov 30, 2011 3:38 am
by Xciso
fred123 wrote:I would if I could read it!
Why cant you read it?
Re: [SOLVED][1.5] one more level of sub category!
Posted: Fri Dec 02, 2011 11:55 pm
by The Alchemist
Xciso wrote:fred123 wrote:I would if I could read it!
Why cant you read it?
Its in spanish, and I am having a similar issue with the install. I can upload the mod, but I dont know how to use it properly.
The file didnt overwrite anything
Re: [SOLVED][1.5] one more level of sub category!
Posted: Mon Dec 05, 2011 9:35 pm
by fred123
its in spanish so cant read it...
REALLY need to get this sorted asap...
Re: [SOLVED][1.5] one more level of sub category!
Posted: Tue Dec 06, 2011 3:44 am
by fred123
The Alchemist wrote:Xciso wrote:fred123 wrote:I would if I could read it!
Why cant you read it?
Its in spanish, and I am having a similar issue with the install. I can upload the mod, but I dont know how to use it properly.
The file didnt overwrite anything
Have you got any further with it?
Re: [SOLVED][1.5] one more level of sub category!
Posted: Fri Dec 09, 2011 12:04 am
by The Alchemist
Yes I got it to work.
Its very nice, but I still have the categories displayed in the header bar, which is where I wanted them to create the drop downs. But this is good enough for now.
Re: [SOLVED][1.5] one more level of sub category!
Posted: Wed Dec 14, 2011 6:04 pm
by fred123
I cant figure it out, can you point me in the right direction?
Re: [SOLVED][1.5] one more level of sub category!
Posted: Fri Dec 16, 2011 5:13 pm
by fred123
The Alchemist wrote:Yes I got it to work.
Its very nice, but I still have the categories displayed in the header bar, which is where I wanted them to create the drop downs. But this is good enough for now.
Are you usin the module?
Re: [SOLVED][1.5] one more level of sub category!
Posted: Wed Dec 28, 2011 4:23 am
by jty
wend wrote:I may write some jquery code, Change the css style of sub-categories.
Add these code to the end of Your_Template/template/header.tpl
Code: Select all
<script type="text/javascript">
$(document).ready(function(){
$('.box-category ul li ul').css("display","block");
//$('.box-category ul li ul li ul').css("display","block"); //this may display sub sub categories.
});
</script>
Thank-you. This works for the 1st sub category level in 1.5.1.3 but the sub sub categories, the second level, didn't work for me.
Re: [SOLVED][1.5] one more level of sub category!
Posted: Sat Feb 04, 2012 3:17 am
by avriukas
DAMN... it is required simple thing -
dir
sub dir
sub sub dir
and not working on opencart.. 1.5.1.3
I'm so so sad...
too many code chahnges and after problems in previouse posts to try make all these changes

Re: [SOLVED][1.5] one more level of sub category!
Posted: Sat Feb 25, 2012 1:05 am
by Voomer
Hi!
any ideas why are the special characters ($,euro and other language characters) messed up?
Re: [SOLVED][1.5] one more level of sub category!
Posted: Sat Feb 25, 2012 1:11 am
by Voomer
got it! FIXED!
Re: [SOLVED][1.5] one more level of sub category!
Posted: Tue Feb 28, 2012 9:54 pm
by perfectshoppe
I have been able to show sub categories under categories following step no 1 to step 8 mentioned above but my problem is that it is not now showing the number of products on left hand side either in category or in sub categories. Any help?
Also by pressing main category link , a refine search page gets opened with only sub categories mentioned there which look very odd. Please solve the problem.
Re: [SOLVED][1.5] one more level of sub category!
Posted: Sun Mar 11, 2012 1:58 am
by pxdva
Credit to the original poster chokoret for this post.
For 1.5.1.3 use the following:
STEP 1 Use this for catalog/controller/module/category.php:
Code: Select all
<?php
class ControllerModuleCategory extends Controller {
protected function index() {
$this->language->load('module/category');
$this->data['heading_title'] = $this->language->get('heading_title');
if (isset($this->request->get['path'])) {
$parts = explode('_', (string)$this->request->get['path']);
} else {
$parts = array();
}
if (isset($parts[0])) {
$this->data['category_id'] = $parts[0];
} else {
$this->data['category_id'] = 0;
}
if (isset($parts[1])) {
$this->data['child_id'] = $parts[1];
} else {
$this->data['child_id'] = 0;
}
if (isset($parts[2])) {
$this->data['sisters_id'] = $parts[2];
} else {
$this->data['sisters_id'] = 0;
}
$this->load->model('catalog/category');
$this->load->model('catalog/product');
$this->data['categories'] = array();
$categories = $this->model_catalog_category->getCategories(0);
foreach ($categories as $category) {
$children_data = array();
$sister_data = array();
$children = $this->model_catalog_category->getCategories($category['category_id']);
foreach ($children as $child) {
$sister_data = array();
$sisters = $this->model_catalog_category->getCategories($child['category_id']);
if($sisters) {
foreach ($sisters as $sisterMember) {
$sister_data[] = array(
'category_id' =>$sisterMember['category_id'],
'name' => $sisterMember['name'],
'href' => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id']. '_' . $sisterMember['category_id'])
);
}
$children_data[] = array(
'category_id' => $child['category_id'],
'sister_id' => $sister_data,
'name' => $child['name'],
'href' => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id'])
);
}else{
$children_data[] = array(
'category_id' => $child['category_id'],
'sister_id' =>'',
'name' => $child['name'],
'href' => $this->url->link('product/category', 'path=' . $category['category_id'] . '_' . $child['category_id'])
);
}
}
$data = array(
'filter_category_id' => $category['category_id'],
'filter_sub_category' => true
);
$product_total = $this->model_catalog_product->getTotalProducts($data);
$this->data['categories'][] = array(
'category_id' => $category['category_id'],
'name' => $category['name'],
'children' => $children_data,
'sister' => $sister_data,
'href' => $this->url->link('product/category', 'path=' . $category['category_id'])
);
}
if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/module/category.tpl')) {
$this->template = $this->config->get('config_template') . '/template/module/category.tpl';
} else {
$this->template = 'default/template/module/category.tpl';
}
$this->render();
}
}
?>
STEP 2: Use this for catalog/view/theme/default/template/module/category.tpl:
Code: Select all
<div class="box">
<div class="box-heading"><?php echo $heading_title; ?></div>
<div class="box-content">
<div class="box-category">
<ul>
<?php foreach ($categories as $category) { ?>
<li>
<?php if ($category['category_id'] == $category_id) { ?>
<a href="<?php echo $category['href']; ?>" class="active"><?php echo $category['name']; ?></a>
<?php } else { ?>
<a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a>
<?php } ?>
<?php if ($category['children']) { ?>
<ul>
<?php foreach ($category['children'] as $child) { ?>
<li>
<?php if ($child['category_id'] == $child_id) { ?>
<a href="<?php echo $child['href']; ?>" class="active"> - <?php echo $child['name']; ?></a>
<?php } else { ?>
<a href="<?php echo $child['href']; ?>"> - <?php echo $child['name']; ?></a>
<?php } ?>
<?php if($child['sister_id']){ ?>
<ul>
<?php foreach($child['sister_id'] as $sisters) { ?>
<li>
<?php if ($sisters['category_id'] == $sisters_id) { ?>
<a href="<?php echo $sisters['href']; ?>" class="active"> - <?php echo $sisters['name']; ?></a>
<?php } else { ?>
<a href="<?php echo $sisters['href']; ?>"> - <?php echo $sisters['name']; ?></a>
<?php } ?>
</li>
<?php } ?>
</ul>
<?php } ?>
</li>
<?php } ?>
</ul>
<?php } ?>
</li>
<?php } ?>
</ul>
</div>
</div>
</div>
STEP 3:
FIND in catalog/view/theme/default/stylesheet/stylesheet.css
Code: Select all
.box-category > ul > li ul > li > a.active + ul {
display: block;
}
and UNDER THAT, ADD:
Code: Select all
.box-category > ul > li ul > li ul > li a.active {
font-weight: bold;
color: #06bcc3;
}
.box-category > ul > li ul > li ul > li a.active + ul {
display: block;
}
That worked for me using the default Opencart template.