Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Show only Top Categories


Recommended Posts

Hi,

 

does anyone know why this excellent contri does not properly work with Oscommerce MS1?

 

<?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>';

   }



// 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>



<?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);





//////////

// 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, 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) {

   $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 .= ' <br>'. tep_image(DIR_WS_IMAGES . 'arrow_category_wh.gif') . ' <a href="' . tep_href_link(FILENAME_DEFAULT, $cPath_new_sub, 'NONSSL') . '"class="infoBox">' . $subcategories['categories_name'] . '</a>' . " ";

               } // if



    } // While Interno



   $info_box_contents[$row] = array('align' => 'left',

                                          'params' => 'class="smallText" width="125" valign="top"',

                                          'text' => '<a href="' . tep_href_link

(FILENAME_DEFAULT, $cPath_new, 'NONSSL') . '">' . '</a><a href="' . tep_href_link(FILENAME_DEFAULT, $cPath_new, 'NONSSL') . '"class="infoBox">' . '<b>' . $categories['categories_name'] . '</b></a>' . $text_subcategories );

   $col ++;

   if ($col > 0) {

     $col = 0;

     $row ++;

   }

  }

 }

 new infoBox($info_box_contents);

?>

           </td>

         </tr>

<!-- show_subcategories_eof //-->

 

Subcategories are displayed but maincategories links are not working.

 

thanks in advance.

 

best regards

christian engelke

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...