betty Posted March 15, 2004 Share Posted March 15, 2004 Could someone pleeeease help me! I only want the sub-categories in my left column to be links. I don't want the top level categories to be links. I've been searching all the forum/contributions/documentation for hours and can't find an answer, so I've come back to beg again. Could someone please please please help? Betty Link to comment Share on other sites More sharing options...
betty Posted March 15, 2004 Author Share Posted March 15, 2004 Please? Link to comment Share on other sites More sharing options...
Virtual1 Posted March 16, 2004 Share Posted March 16, 2004 why not make the sub categories the categories? If you dont want categories to show then arent the subs the categories? you follow your own logic here? Link to comment Share on other sites More sharing options...
betty Posted March 16, 2004 Author Share Posted March 16, 2004 Hi Kevin, Thanks for that - the only thing was the two lists of subcategories all had to have the same names. Thanks very much for replying though. Luckily after spending a day trying to do it yesterday I managed to get hold of a friend of mine who knows php and he did it in 2 minutes! Betty Link to comment Share on other sites More sharing options...
betty Posted March 16, 2004 Author Share Posted March 16, 2004 Hi again, Just thought I'd better actually put the solution up here in case any other poor sod's searching for this in the future. My site is at: http://www.cukoo.co.uk/catalog/index.php and here's the code that makes my catalogue menu look the way it does (I got the bulk of it from a contribution): <?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 <cl@goelette.net> 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) { for ($i=0; $i<$level; $i++) $categories_string .= ''; if ($level != 1) $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> if ($bold) $categories_string .= '<b>'; $categories_string .= $foo[$cid]['name'] ; if ($bold) $categories_string .= '</b>'; $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 . '_' : '')); } } if ($level == 1) $categories_string .= '<br>'; } ?> <!-- all_categories //--> <tr> <td valign="top"> <br> <?php ////////// // 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 index($info_box_contents); ?> </td> </tr> <!-- all_categories_eof //--> In particular, the bit below stops the top categories being links: if ($level != 1) $categories_string .= '<a href="' . tep_href_link(FILENAME_DEFAULT, 'cPath=' . $cpath . $cid) . '">'; and this bit put a space between the two main categories: if ($level == 1) $categories_string .= '<br>'; Hope this is helpful to someone! Betty Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.