Guest Posted September 9, 2004 Share Posted September 9, 2004 Hi all! I'm in need of your help once again! I would like to have all the categories display in my category box ... which i have manged to achieve by installing the contribution "show all categories" See here This worked well but.... i think there was a bit of dificulty distinguishing the main categories from the subcategories....SO.... I went looking for another contribution to add one type of bullet for main categories and another type of bullet for subcategories... this way making the categories box look something like this: So i tried to integrate these two great contributions Show all categories and Category Box Enhancement Unfortunatly it doesn't seem to be working as you can see in my attempt here (PLEASE NOTE THIS IS A LIVE SITE): http://www.imtechnology.com.au as you can see all categories have the same image regardless if they are a main category or a subcategory.... I was hoping for a little guidance from others as to what might be going wrong.... hopefully when its all sorted I can release this as a contribution for others to use too. I thought another alternative would be to simply make main categories permanently bold but again dont even know where to start. I have included my includes/boxes/categories.php file below... Thanks for your help, Edwin. <?php /* $Id: all_categories.php,v 1.6 2002/04/22 20:34:00 clescuyer Exp $ osCommerce, Open Source E-Commerce Solutions http://www.oscommerce.com/ Copyright (c) 2002 Go?lette Christian Lescuyer <[email protected]> http://www.goelette.net/ http://oscommerce.goelette.net/ History: 1.1 Creation 1.2 Modified query for compatibility with older databases 1.3 Query in 1.2 was wrong for older databases 1.4 SHOW_COUNTS test corrected 1.5 Added COMPACT_CATEGORIES option to display all sub-categories on one line 1.6 Removed COMPACT_CATEGORIES option Corrected the cpath generation Bold categories "path" to selected category, an idea from Peter F?rsicht Released under the GNU General Public License */ // Preorder tree traversal function preorder($cid, $level, $foo, $cpath) { global $categories_string, $HTTP_GET_VARS; // Display link if ($cid != 0) { // BoF - Contribution Category Box Enhancement 1.1 global $tree, $categories_string, $cPath_array, $cat_name; for ($i=0; $i<$level; $i++) $categories_string .= ' '; $categories_string .= '<a href="' . tep_href_link(FILENAME_DEFAULT, 'cPath=' . $cpath . $cid) . '">'; // 1.6 Are we on the "path" to selected category? $bold = strstr($HTTP_GET_VARS['cPath'], $cpath . $cid . '_') || $HTTP_GET_VARS['cPath'] == $cpath . $cid; // 1.6 If yes, use <b> $cPath_new = 'cPath=' . $foo[$cid]['name']; if ($bold) { $categories_string .= tep_image(DIR_WS_IMAGES . 'pointer_blue.gif', ''); } else { $categories_string .= tep_image(DIR_WS_IMAGES . 'pointer_blue_light.gif', ''); } if (isset($cPath_array) && in_array($counter, $cPath_array)) { $categories_string .= '<b>'; } if ($cat_name == $foo[$cid]['name']) { $categories_string .= '<span class="errorText">'; } // display category name $categories_string .= $foo[$cid]['name']; if ($cat_name == $foo[$cid]['name']) { $categories_string .= '</span>'; } if ($bold){ $categories_string .= '</b>'; } // EoF Category Box Enhancement $categories_string .= '</a>'; // 1.4 SHOW_COUNTS is 'true' or 'false', not true or false if (SHOW_COUNTS == 'true') { $products_in_category = tep_count_products_in_category($cid); if ($products_in_category > 0) { $categories_string .= ' (' . $products_in_category . ')'; } } $categories_string .= '<br>'; } // Traverse category tree foreach ($foo as $key => $value) { if ($foo[$key]['parent'] == $cid) { // print "$key, $level, $cid, $cpath<br>"; preorder($key, $level+1, $foo, ($level != 0 ? $cpath . $cid . '_' : '')); } } } ?> <!-- all_categories //--> <tr> <td> <table width=205 border=0 cellpadding=0 cellspacing=0> <tr> <td class="catagories" colspan=3> </td> </tr> <tr> <td class="catagories"> <?php ////////// // BoF - Contribution Category Box Enhancement 1.1 if (isset($cPath_array)) { for ($i=0, $n=sizeof($cPath_array); $i<$n; $i++) { $categories_query = tep_db_query("select categories_name from " . TABLE_CATEGORIES_DESCRIPTION . " where categories_id = '" . (int)$cPath_array[$i] . "' and language_id = '" . (int)$languages_id . "'"); if (tep_db_num_rows($categories_query) > 0) $categories = tep_db_fetch_array($categories_query); } $cat_name = $categories['categories_name']; } // EoF Category Box Enhancement // Display box heading ////////// $info_box_contents = array(); $info_box_contents[] = array('align' => 'left', 'text' => BOX_HEADING_CATEGORIES); new infoBoxHeading($info_box_contents, true, false); ////////// // Get categories list ////////// // 1.2 Test for presence of status field for compatibility with older versions $status = tep_db_num_rows(tep_db_query('describe categories status')); $query = "select c.categories_id, cd.categories_name, c.parent_id from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.categories_id = cd.categories_id"; // 1.3 Can't have 'where' in an if statement! if ($status >0) $query.= " and c.status = '1'"; $query.= " and cd.language_id='" . $languages_id ."' order by sort_order, cd.categories_name"; $categories_query = tep_db_query($query); // Stuff in an array while ($categories = tep_db_fetch_array($categories_query)) { $foo[$categories['categories_id']] = array('name' => $categories['categories_name'], 'parent' => $categories['parent_id']); } // Initiate tree traverse $categories_string = ''; preorder(0, 0, $foo, ''); ////////// // Display box contents ////////// $info_box_contents = array(); $info_box_contents[] = array('align' => 'left', 'text' => $categories_string); new infoBox($info_box_contents); ?> </td> </tr> </table> </td> </tr> <!-- all_categories_eof //--> Link to comment Share on other sites More sharing options...
Guest Posted September 10, 2004 Share Posted September 10, 2004 anyone able to help at all? Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.