Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Help needed on position of Sub Category


ck1liang

Recommended Posts

Hi to all,

I have installed a free template from the template monster but there is a problem with the Sub Category positioning.

Below is what my eshop shown to the public.

 

Category 1

- Sub Category 2

- Sub Category 2

- Sub Category 3

- Sub Category 3

- Sub Category 2

Category 1

Category 1

 

I would like my eshop to show as follows:

 

Category 1

- Sub Category 2

- Sub Category 2

--- Sub Category 3

--- Sub Category 3

- Sub Category 2

Category 1

Category 1

 

Can anyone guide me on how to find the location and what kinds of coding I should modify to get the position of the sub Category 3?

 

Thanks a lot in advance

Link to comment
Share on other sites

Hi, I have narrow the coding to the following in \includes\boxes\categories.php

 

The following is the codes which uses CSS to position the wordings:

<?php
 function tep_show_category($counter, $count) {
      global $tree, $categories_string, $cPath_array, $ii;

if ($count == 0 ) $kk=' class="bg_list"'; else $kk=' class="bg_list"'; 

$count++;

if(!$tree[$counter]['level']){ 
$categories_string .= $categories_string ? '' : ''; 
$categories_string .= '<li'.$kk.'><a href=';

if (SHOW_COUNTS == 'true') {
     $products_in_category = tep_count_products_in_category($counter);
     if ($products_in_category > 0) {
       $num_prod =  ' ('.$products_in_category.')';

     }
   }

if ($tree[$counter]['parent'] == 0) {
$cPath_new = 'cPath=' . $counter;
} else {
$cPath_new = 'cPath=' . $tree[$counter]['path'];
}
$categories_string .= tep_href_link('index.php', $cPath_new) . '>';

// display categry name
   $categories_string .= $tree[$counter]['name'];
   $categories_string .= $num_prod.'</a></li>';

  }else{

    // SUBCATEGORY
if (SHOW_COUNTS == 'true') {
     $products_in_category = tep_count_products_in_category($counter);
     if ($products_in_category > 0) {
       $num_prod =  ' ('.$products_in_category.')';
     }
   }	 
   $count = 2;
   $categories_string .= '';

   for($i=0;$i<$tree[$counter]['le vel'];$i++)
    $categories_string .= '';
  [b][color="#FF0000"] $categories_string .= '<li class="bg_list_sub"><a href=';   [/color][/b]

   if ($tree[$counter]['parent'] == 0) {
     $cPath_new = 'cPath=' . $counter;
   } else {
     $cPath_new = 'cPath=' . $tree[$counter]['path'];
   }
   $categories_string .= tep_href_link('index.php', $cPath_new) . '>';
// display category name
   $categories_string .= $tree[$counter]['name'];
   $categories_string .= $num_prod.'</a></li>';
    }



   if ($tree[$counter]['next_id'] != false) {
     tep_show_category($tree[$counter]['next_id'], $count);
   }  
 }
?>
<!-- categories //-->
         <tr>
           <td>
<?php
 $info_box_contents = array();
 $info_box_contents[] = array('text' => BOX_HEADING_CATEGORIES);

 new infoBoxHeading($info_box_contents, true, false);

 $categories_string = '<ul>';
 $tree = array();

 $categories_query = tep_db_query("select c.categories_id, cd.categories_name, c.parent_id from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.parent_id = '0' and c.categories_id = cd.categories_id and cd.language_id='" . (int)$languages_id ."' order by sort_order, cd.categories_name");
 while ($categories = tep_db_fetch_array($categories_query))  {
   $tree[$categories['categories_id']] = array('name' => $categories['categories_name'],
                                               'parent' => $categories['parent_id'],
                                               'level' => 0,
                                               'path' => $categories['categories_id'],
                                               'next_id' => false);

   if (isset($parent_id)) {
     $tree[$parent_id]['next_id'] = $categories['categories_id'];
   }

   $parent_id = $categories['categories_id'];

   if (!isset($first_element)) {
     $first_element = $categories['categories_id'];
   }
 }

 //------------------------
 if (tep_not_null($cPath)) {
   $new_path = '';
   reset($cPath_array);
   while (list($key, $value) = each($cPath_array)) {
     unset($parent_id);
     unset($first_id);
     $categories_query = tep_db_query("select c.categories_id, cd.categories_name, c.parent_id from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.parent_id = '" . (int)$value . "' and c.categories_id = cd.categories_id and cd.language_id='" . (int)$languages_id ."' order by sort_order, cd.categories_name");
     if (tep_db_num_rows($categories_query)) {
       $new_path .= $value;
       while ($row = tep_db_fetch_array($categories_query)) {
         $tree[$row['categories_id']] = array('name' => $row['categories_name'],
                                              'parent' => $row['parent_id'],
                                              'level' => $key+1,
                                              'path' => $new_path . '_' . $row['categories_id'],
                                              'next_id' => false);

         if (isset($parent_id)) {
           $tree[$parent_id]['next_id'] = $row['categories_id'];
         }

         $parent_id = $row['categories_id'];

         if (!isset($first_id)) {
           $first_id = $row['categories_id'];
         }

         $last_id = $row['categories_id'];
       }
       $tree[$last_id]['next_id'] = $tree[$value]['next_id'];
       $tree[$value]['next_id'] = $first_id;
       $new_path .= '_';
     } else {
       break;
     }
   }
 }
 $count = 0;
 tep_show_category($first_element, $count); 
 $categories_string .='</ul>';
 $info_box_contents = array();
 $info_box_contents[] = array('text' => $categories_string);

 new infoBox1($info_box_contents);
?>
           </td>
         </tr>
<!-- categories_eof //-->

 

The one highlighted in bold is the place where the CSS position the sub menu and I have thought of a if else statement to solve this problem:

 
//Start of changes of coding to suit sub category
 if ([b][color="#FF0000"]?????????[/color][/b]) {
 $categories_string .= '<li class="bg_list_sub"><a href=';   
 } else {
    $categories_string .= '<li class="bg_list_sub2"><a href=';  
   }

//End of changes of coding to suit sub category

 

The problem is I do not know what code inside the IF statement so the web will know if it is a 2 level sub menu, it will use class "bg_list_sub" otherwise, use class "bg_list_sub2"

 

Hope some expert and seniors here can guide me on this.

Link to comment
Share on other sites

 

Already dig on that thread, but the solution for what i want to do it's not there! At least I didn't manage to get anything related with my problem.

I can edit sub-categories, move them, do whatever I want. But the problem is with the SUB-sub-categories.

 

The changes I do in sub-categories also affect the sub-sub-categories and I don't want that to happen!

 

Help anyone!

 

Thank's

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...