Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Sub-Categories Contrib Help


fut

Recommended Posts

I have installed a module that makes my sub-categories viewable. An easy install. Here is the new code catalog/includes/boxes/categories.php

 

<?php
/*
 $Id: show_subcategories.php,v 1.0 2003/01/08 10:37:00 Exp $

 osCommerce, Open Source E-Commerce Solutions
 http://www.oscommerce.com/

 Based on: main_categories.php Ver. 1.0 by Gustavo Barreto

 History: 1.0 Creation

 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 .=  '  ';
     $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- this is for older snapshots pre-November 2002
/*    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 . '_' : ''))
;
     } */
// Function used for post November 2002 snapshots
 function tep_show_category($counter) {
   global $foo, $categories_string, $id;

   for ($a=0; $a<$foo[$counter]['level']; $a++) {
     $categories_string .= "  ";
   }
   }
 }

?>
<!-- show_subcategories //-->
         <tr>
           <td class="infoBox_left">

<?php

//////////
// Display box heading
//////////
 $info_box_contents = array();
 $info_box_contents[] = array('align' => 'left', 'text'  => BOX_HEADING_CATEGORIES);
 new infoBoxHeading($info_box_contents, true, false, false, true);

//////////
// 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')); used for older snapshots
$status = tep_db_num_rows(tep_db_query('describe ' .  TABLE_CATEGORIES . ' status'));


 $query = "select c.categories_id, cd.categories_name, c.parent_id, c.categories_image
           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);


// Initiate tree traverse
 $categories_string = '';
 preorder(0, 0, $foo, '');

//////////
// Display box contents
//////////
 $info_box_contents = array();
 $row = 0;
 $col = 0;
 while ($categories = tep_db_fetch_array($categories_query)) {
  if ($categories['parent_id'] == 0)
  {
           $temp_cPath_array = $cPath_array;  //Johan's solution - kill the array but save it for the rest of the site
        unset($cPath_array);

           $cPath_new = tep_get_path($categories['categories_id']);

        $text_subcategories = '';
    $subcategories_query = tep_db_query($query);
    while ($subcategories = tep_db_fetch_array($subcategories_query))
        {

               if ($subcategories['parent_id'] == $categories['categories_id'])
               {

                                       $cPath_new_sub = "cPath="  . $categories['categories_id'] . "_" . $subcategories['categories_id'];

                   $text_subcategories .= '  ' . tep_image(DIR_WS_IMAGES . 'pointer_blue_light.gif', '') . '<a href="' . tep_href_link(FILENAME_DEFAULT, $cPath_new_sub, 'NONSSL') . '" class="categories_sec">' . $subcategories['categories_name'] . '</a><br>' . " ";
               } // if
    } // While Interno
   $info_box_contents[$row] = array('align' => 'left',
                                          'params' => 'class="smallText" width="125" valign="top"',
                                          'text' => '<br>' . tep_image(DIR_WS_IMAGES . 'pointer_blue.gif', '') . '<a href="' . tep_href_link(FILENAME_DEFAULT, $cPath_new, 'NONSSL') . '" class="categories_top"><b>' . $categories['categories_name'] . '</b></a><br>' . $text_subcategories);
   $col ++;
   if ($col > 0)
       {
               $col = 0;
               $row ++;
   }
   $cPath_array = $temp_cPath_array; //Re-enable the array for the rest of the code
  }
 }
 new infoBox($info_box_contents, true);


?>
           </td>
         </tr>
<!-- show_subcategories_eof //-->

 

Please view my store at www.crazyjordans.com Three things:

 

1) What code makes the yellow text "Categories" show I want to remove it for the obvious reasons

 

2) What code makes that big gap at the end of the categories - I want to remove this too.

 

3) How do I change the link color back to grey while keeping my other links blue? Is this done in my stylesheet, how do I tackle this?

 

Thanks!

Link to comment
Share on other sites

Archived

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

×
×
  • Create New...