Community Forums

[SOLVED][1.5] one more level of sub category!

Template support & advice for OpenCart v1.x

Re: [SOLVED][1.5] one more level of sub category!

Postby sashun » Sat Nov 19, 2011 10:39 am

hi, romeo2k


how did you made it

maincat
- subcat1
- - subsubcat1
- - - subsubsubcat1

plz. help me!!!!
sashun
 
Posts: 7
Joined: Mon Nov 07, 2011 4:48 pm

Re: [SOLVED][1.5] one more level of sub category!

Postby romeo2k » Sat Nov 19, 2011 10:48 am

i find one menu on forums, and it is great :)

viewtopic.php?f=98&t=36498&hilit=more+sub+menu&start=20

just modifying colors now, its easy :D

regards
romeo2k
 
Posts: 8
Joined: Wed Nov 16, 2011 12:57 pm

Re: [SOLVED][1.5] one more level of sub category!

Postby sashun » Tue Nov 22, 2011 10:22 am

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!
sashun
 
Posts: 7
Joined: Mon Nov 07, 2011 4:48 pm

Re: [SOLVED][1.5] one more level of sub category!

Postby fred123 » Tue Nov 22, 2011 12:17 pm

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 !
fred123
 
Posts: 89
Joined: Fri Aug 26, 2011 7:13 am

Re: [SOLVED][1.5] one more level of sub category!

Postby Xciso » Fri Nov 25, 2011 8:14 pm

Use the guide in the link above.
Works like a dream with 1.5.1.3 :D
Xciso
 
Posts: 136
Joined: Thu Jul 14, 2011 9:20 pm

Re: [SOLVED][1.5] one more level of sub category!

Postby fred123 » Mon Nov 28, 2011 7:53 pm

I would if I could read it!
fred123
 
Posts: 89
Joined: Fri Aug 26, 2011 7:13 am

Re: [SOLVED][1.5] one more level of sub category!

Postby fred123 » Mon Nov 28, 2011 8:13 pm

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 , FIND
Code: 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, ADD
Code: 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
FIND
Code: Select all
.box-category > ul > li ul > li > a.active + ul {
display: block;
}


8. 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;
}

( #06bcc3 is color code, you might want to change it to the color you want)

8. Now Save, and test the view! :^D !!
fred123
 
Posts: 89
Joined: Fri Aug 26, 2011 7:13 am

Re: [SOLVED][1.5] one more level of sub category!

Postby Xciso » Tue Nov 29, 2011 7:38 pm

fred123 wrote:I would if I could read it!


Why cant you read it?
Xciso
 
Posts: 136
Joined: Thu Jul 14, 2011 9:20 pm

Re: [SOLVED][1.5] one more level of sub category!

Postby The Alchemist » Fri Dec 02, 2011 3:55 pm

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
User avatar
The Alchemist
 
Posts: 300
Joined: Sun Nov 22, 2009 3:04 am

Re: [SOLVED][1.5] one more level of sub category!

Postby fred123 » Mon Dec 05, 2011 1:35 pm

its in spanish so cant read it...

REALLY need to get this sorted asap...
fred123
 
Posts: 89
Joined: Fri Aug 26, 2011 7:13 am

Re: [SOLVED][1.5] one more level of sub category!

Postby fred123 » Mon Dec 05, 2011 7:44 pm

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?
fred123
 
Posts: 89
Joined: Fri Aug 26, 2011 7:13 am

Re: [SOLVED][1.5] one more level of sub category!

Postby The Alchemist » Thu Dec 08, 2011 4:04 pm

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.
User avatar
The Alchemist
 
Posts: 300
Joined: Sun Nov 22, 2009 3:04 am

Re: [SOLVED][1.5] one more level of sub category!

Postby fred123 » Wed Dec 14, 2011 10:04 am

I cant figure it out, can you point me in the right direction?
fred123
 
Posts: 89
Joined: Fri Aug 26, 2011 7:13 am

Re: [SOLVED][1.5] one more level of sub category!

Postby fred123 » Fri Dec 16, 2011 9:13 am

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?
fred123
 
Posts: 89
Joined: Fri Aug 26, 2011 7:13 am

Re: [SOLVED][1.5] one more level of sub category!

Postby jty » Tue Dec 27, 2011 8:23 pm

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.
jty
 
Posts: 1163
Joined: Sat Aug 30, 2008 12:19 am

Re: [SOLVED][1.5] one more level of sub category!

Postby avriukas » Fri Feb 03, 2012 7:17 pm

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 :( :(
User avatar
avriukas
 
Posts: 20
Joined: Wed Feb 01, 2012 1:45 pm

Re: [SOLVED][1.5] one more level of sub category!

Postby Voomer » Fri Feb 24, 2012 5:05 pm

Hi!

any ideas why are the special characters ($,euro and other language characters) messed up?
Voomer
 
Posts: 4
Joined: Fri Feb 24, 2012 5:03 pm

Re: [SOLVED][1.5] one more level of sub category!

Postby Voomer » Fri Feb 24, 2012 5:11 pm

got it! FIXED!
Voomer
 
Posts: 4
Joined: Fri Feb 24, 2012 5:03 pm

Re: [SOLVED][1.5] one more level of sub category!

Postby perfectshoppe » Tue Feb 28, 2012 1:54 pm

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.
perfectshoppe
 
Posts: 1
Joined: Sun Feb 12, 2012 8:45 am

Re: [SOLVED][1.5] one more level of sub category!

Postby pxdva » Sat Mar 10, 2012 5:58 pm

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.
pxdva
 
Posts: 9
Joined: Wed Aug 03, 2011 10:20 pm

PreviousNext

Return to Template Support

Who is online

Users browsing this forum: No registered users and 32 guests

Hosted by Arvixe Web Hosting