Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

How to remove the link from a top level category.


betty

Recommended Posts

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

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

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

Archived

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

×
×
  • Create New...