Forum Moderators: coopster
I was wondering please if someone could help me, this is only my second time here and last time you all helped loads.
I am very new to php and all that goes with it and have an oscommerce sight that am still trying to customise!
I decided I would like to put buttons in the left category navigation box and some nice person put a step by step instruction for it on the oscommerce forum.
Unfortunately they only did the code for top level categories and therefore only buttons for these are able to be added.
Can someone help me please and tell me how to alter the code so that all category levels are included or even some code so that the subcategories could have a separate class? Either would be much appreciated.
The code that I have is
<?php
/*
$Id: categories.php,v 1.25 2003/07/09 01:13:58 hpdl Exp $
osCommerce, Open Source E-Commerce Solutions
[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 .= '<a 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
if ($tree[$counter]['level'] == 0) {
$categories_string .= '<img class="cats" src="' . $tree[$counter]['image'] . '">';
}
else $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 .= ' (' . $products_in_category . ')';
}
}
$categories_string .= '<br>';
if ($tree[$counter]['next_id']!= false) {
tep_show_category($tree[$counter]['next_id']);
}
}
?>
<!-- categories //-->
<tr>
<td>
<?php
$info_box_contents = array();
$info_box_contents[] = array('text' => BOX_HEADING_CATEGORIES);
new infoBoxHeading($info_box_contents, false, false);
$categories_string = '';
$tree = array();
$categories_query = tep_db_query("select c.categories_id, cd.categories_name,
c.parent_id, cd.categories_description_image 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,
'image' => DIR_WS_IMAGES . $categories['categories_description_image']);
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, cd.categories_description_image 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,
'image' => DIR_WS_IMAGES . $categories['categories_description_image']);
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' => $categories_string);
new infoBox($info_box_contents);
?>
<table border="0" cellspacing="0" cellpadding="0" width="125">
<tr>
<td align="center"><img src="images/footer1.gif"></td>
</tr>
</table>
</td>
</tr>
<!-- categories_eof //-->
Thank you to everyone that took the time to try to help me.
Kindest regards