Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

I would suspect this is an easy one... indent question


jeebus

Recommended Posts

I just installed a new template and I'm trying to change the subcategories so they show indented once the main category is clicked on.

 

example

 

Before you click on the main category it looks like this:

 

Fitness->

Football

Heart Rate Monitors

 

 

Once the Fitness category is clicked the subcategories are displayed like this:

 

Fitness->

first sub

second sub

Football

Heart Rate Monitors

 

 

What I'm looking for is the subcategories to be indented like this:

 

Fitness->

- first sub

- second sub

Football

Heart Rate Monitors

 

I do not know where to change this. Any help would be much appreciated.

 

Thanks

Link to comment
Share on other sites

That's the way the categories are usually displayed. But apparently your template has overwritten the categories box somehow, so it doesn't do it anymore. Since I don't know how your categories.php looks like I can't show you the way it could be done.

Link to comment
Share on other sites

Here you are... I messed with this for hours yesterday and I couldn't get it too work.... however I don't have many skills when it comes to this.

 

Thanks for your help.

 

 

<?php
/*
 $Id: categories.php,v 1.25 2003/07/09 01:13:58 hpdl Exp $

 osCommerce, Open Source E-Commerce Solutions
 http://www.oscommerce.com

 Copyright (c) 2003 osCommerce

 Released under the GNU General Public License
*/

 function tep_show_category($counter) {
global $tree, $categories_string, $cPath_array;

for ($i=0; $i<$tree[$counter]['level']; $i++) {
  $categories_string .= "";
}

$categories_string .= '<tr><TD valign="middle" height="20" align="left" style="padding-left:10px;"><img src="images/marker_cat.gif" width="3" height="5" alt="" style="margin-right:5px;" /><a class="categories" href="';

if ($tree[$counter]['parent'] == 0) {
  $cPath_new = 'cPath=' . $counter;
} else {
  $cPath_new = 'cPath=' . $tree[$counter]['path'];
}

$categories_string .= tep_href_link(FILENAME_DEFAULT, $cPath_new) . '">';

if (isset($cPath_array) && in_array($counter, $cPath_array)) {
  $categories_string .= '<b>';
}

// display category name
$categories_string .= $tree[$counter]['name'];

if (isset($cPath_array) && in_array($counter, $cPath_array)) {
  $categories_string .= '</b>';
}

if (tep_has_category_subcategories($counter)) {
  $categories_string .= '->';
}

$categories_string .= '</a>';


if (SHOW_COUNTS == 'true') {
  $products_in_category = tep_count_products_in_category($counter);
  if ($products_in_category > 0) {
	$categories_string .= '<span class="categories"> (' . $products_in_category . ')';
  }
}

$categories_string .= '</td></tr><tr><td align="center"><img src="images/points_cat.gif" width="163" height="1"></td></tr>';

if ($tree[$counter]['next_id'] != false) {
  tep_show_category($tree[$counter]['next_id']);
}
 }
?>
<!-- categories //-->
	  <tr>
		<td bgcolor="#FFE3A6" valign="top">
<?php
 $info_box_contents = array();
 $info_box_contents[] = array('text' => BOX_HEADING_CATEGORIES);

 new infoBoxCategoriesHeading($info_box_contents, true, true); ?>


<?php   $categories_string = '';
 $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;
  }
}
 }
 tep_show_category($first_element); 

 $info_box_contents = array();
 $info_box_contents[] = array('text' => '<table border="0" cellpadding="0" cellspacing="0" height="100%"  width="100%" style="border:1px solid #EBAB10; border-width:0px 1px;">'.$categories_string.'</table>');

 new infoBox($info_box_contents);
  new infoBoxCategoriesFooter('');
?>

		</td>
	  </tr>
<!-- categories_eof //-->

Link to comment
Share on other sites

This should do the trick:

 

<?php
/*
 $Id: categories.php,v 1.25 2003/07/09 01:13:58 hpdl Exp $

 osCommerce, Open Source E-Commerce Solutions
 [url="http://www.oscommerce.com"]http://www.oscommerce.com[/url]

 Copyright © 2003 osCommerce

 Released under the GNU General Public License
*/

 function tep_show_category($counter) {
   global $tree, $categories_string, $cPath_array;

   for ($i=0; $i<$tree[$counter]['level']; $i++) {
     $categories_indent_string .= "  ";
   }

   $categories_string .= '<tr><TD valign="middle" height="20" align="left" style="padding-left:10px;">'. $categories_indent_string .'<img src="images/marker_cat.gif" width="3" height="5" alt="" style="margin-right:5px;" /><a class="categories" href="';

   if ($tree[$counter]['parent'] == 0) {
     $cPath_new = 'cPath=' . $counter;
   } else {
     $cPath_new = 'cPath=' . $tree[$counter]['path'];
   }

   $categories_string .= tep_href_link(FILENAME_DEFAULT, $cPath_new) . '">';

   if (isset($cPath_array) && in_array($counter, $cPath_array)) {
     $categories_string .= '<b>';
   }

// display category name
   $categories_string .= $tree[$counter]['name'];

   if (isset($cPath_array) && in_array($counter, $cPath_array)) {
     $categories_string .= '</b>';
   }

   if (tep_has_category_subcategories($counter)) {
     $categories_string .= '->';
   }

   $categories_string .= '</a>';


   if (SHOW_COUNTS == 'true') {
     $products_in_category = tep_count_products_in_category($counter);
     if ($products_in_category > 0) {
       $categories_string .= '<span class="categories"> (' . $products_in_category . ')';
     }
   }

   $categories_string .= '</td></tr><tr><td align="center"><img src="images/points_cat.gif" width="163" height="1"></td></tr>';

   if ($tree[$counter]['next_id'] != false) {
     tep_show_category($tree[$counter]['next_id']);
   }
 }
?>
<!-- categories //-->
         <tr>
           <td bgcolor="#FFE3A6" valign="top">
<?php
 $info_box_contents = array();
 $info_box_contents[] = array('text' => BOX_HEADING_CATEGORIES);

 new infoBoxCategoriesHeading($info_box_contents, true, true); ?>


<?php   $categories_string = '';
 $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;
     }
   }
 }
 tep_show_category($first_element);

 $info_box_contents = array();
 $info_box_contents[] = array('text' => '<table border="0" cellpadding="0" cellspacing="0" height="100%"  width="100%" style="border:1px solid #EBAB10; border-width:0px 1px;">'.$categories_string.'</table>');

 new infoBox($info_box_contents);
  new infoBoxCategoriesFooter('');
?>

           </td>
         </tr>
<!-- categories_eof //-->

Link to comment
Share on other sites

This should do the trick:

 

It worked!

 

Thank you very much... not sure if many come back on here and respond after their problems been resolved but I really appreciate your help.

 

 

:thumbsup: :thumbsup: :thumbsup: :thumbsup:

 

Thanks again.

 

Dave

Link to comment
Share on other sites

  • 1 month later...
It worked!

 

Thank you very much... not sure if many come back on here and respond after their problems been resolved but I really appreciate your help.

:thumbsup: :thumbsup: :thumbsup: :thumbsup:

 

Thanks again.

 

Dave

 

Just wanted to add my thanks as this also solved the issue for me!

 

Any ideas what would i need to add to make the subcategories show in bold?

 

thanks again

Link to comment
Share on other sites

Archived

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

×
×
  • Create New...