Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Need help with custom Browse by Category


righteous1

Recommended Posts

I am a newbie.. please excuse if there is already a solution, but I've searched for hours without finding one. My problem is this...code following:

I bought an OSC template online, thinking it would get me closer to the look and feel desired. It has. However, no support, and many days of editing, and I still can't figure out what is wrong with my category box. If you select a Category, it displays Sub-Cats, but pushes anything more than a few lines out of the bottom of the box where it is neither viewable nor scrollable. If you click on that Category (the one that is expanded) you cannot collapse that category.

My request is, based upon a fixed box size for the browse categories box, can anyone help me do one of the following:

1. Edit the existing category menu to show sub-cats AND scroll AND collapse when re-clicked,

OR

2. Create STATIC Categories based upon Top-level categories only (so no subcategory viewing) without breaking the category and subcategory and product browsing in the category/products box below.

????

My site can be viewed at http://www.righteous-sex.com/shop/index.php.

 

category code:

**************

<? // ---- CATEGORIES

 

function tep_show_category($counter) {

global $tree, $categories_string, $cPath_array, $ii;

 

$ii++;

if(!$tree[$counter]['level']){

 

$categories_string .= $categories_string ? '' : '';

 

$categories_string .= '<tr><td height=21 class=ch2><img src=images/m04.gif width=3 height=5 align=absmiddle> ? <a class=ml1 href=';

 

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 .= '</a></td></tr> ';

 

}else{ // SUBCATEGORY

 

$categories_string .= '<tr><td height=21 class=ch2><img src=images/m04.gif width=3 height=5 align=absmiddle> ? ';

 

for($i=0;$i<$tree[$counter]['le vel'];$i++)

$categories_string .= '?????';

 

$categories_string .= '??? <a class=ml4 style="font-weight:normal;" href=';

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 .= '</a></td></tr>';

}

 

if ($tree[$counter]['next_id'] != false && $ii < 6) {

tep_show_category($tree[$counter]['next_id']);

}

}

 

 

 

define(TABLE_CATEGORIES, "categories");

define(TABLE_CATEGORIES_DESCRIPTION, "categories_description");

$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 ($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;

}

}

}

$categories_string .= '';

tep_show_category($first_element);

$categories_string .= '';

 

echo $categories_string;

 

?>

 

**************

Link to comment
Share on other sites

Archived

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

×
×
  • Create New...