Hello,

I am using tpl_categories_css.php which use's categories_ul_generator.php
which CSS Flyout Menu also use's.

My question is: how do I get categories_ul_generator.php from showing the "Document Categories"

Normal old category_tree.php / tpl_categories.php do not show the "Document Categories"... and I put all the 'Document Categories' in to the 'Document Categories side box'...

I am not really expecting an answer, I am just stuck and looking for an alternative. maybe I will try to hide the doc categories somehow.

categories_ul_generator.php
PHP Code:
<?php
//placeholder21// +----------------------------------------------------------------------+
// |zen-cart Open Source E-commerce                                       |
// +----------------------------------------------------------------------+
// | Copyright(c) 2003 The zen-cart developers                           |
// |                                                                      |
// | http://www.zen-cart.com/index.php                                    |
// |                                                                      |
// | Portions Copyright(c) 2003 osCommerce                               |
// +----------------------------------------------------------------------+
// | This source file is subject to version 2.0 of the GPL license,       |
// | that is bundled with this package in the file LICENSE, and is        |
// | available through the world-wide-web at the following url:           |
// | http://www.zen-cart.com/license/2_0.txt.                             |
// | If you did not receive a copy of the zen-cart license and are unable |
// | to obtain it through the world-wide-web, please send a note to       |
// | [email protected] so we can mail you a copy immediately.          |
// +----------------------------------------------------------------------+
// $Id: categories_ul_generator.php 2004-07-11  DrByteZen $
//      based on site_map.php v1.0.1 by networkdad 2004-06-04
//
 
class zen_categories_ul_generator {
    var 
$root_category_id 0,
    
$max_level 0,
    
$data = array(),
    
$parent_group_start_string '<ul%s>',
    
$parent_group_end_string '</ul>',
    
$child_start_string '<li%s>',
    
$child_end_string '</li>',
    
$spacer_string '
'
,
    
$spacer_multiplier 1;
 
    var 
$document_types_list ' (3) ';
    
// acceptable format example: ' (3, 4, 9, 22, 18) '
 
    
function zen_categories_ul_generator($load_from_database true)
    {
        global 
$languages_id$db;
        
$this->data = array();
        
$categories_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
          and c.categories_status=1 " 
.
                
" and cd.language_id = '" . (int)$_SESSION['languages_id'] . "' " .
                
" order by c.parent_id, c.sort_order, cd.categories_name";
        
$categories $db->Execute($categories_query);
        while (!
$categories->EOF) {
            
$this->data[$categories->fields['parent_id']][$categories->fields['categories_id']] = array('name' => $categories->fields['categories_name'], 'count' => 0);
            
$categories->MoveNext();
        }
    }
 
    function 
buildBranch($parent_id$level$submenu=true$parent_link='')
    {
        
$result sprintf($this->parent_group_start_string, ($submenu==true) ? ' class="level'. ($level+1) . '"' '' );
 
        if ((
$this->data[$parent_id])) {
            foreach(
$this->data[$parent_id] as $category_id => $category) {
                
$category_link $parent_link $category_id;
                if ((
$this->data[$category_id])) {
                    
$result .= sprintf($this->child_start_string, ($submenu==true) ? ' class="submenu"' '');
                } else {
                    
$result .= sprintf($this->child_start_string'');
                }
                
$result .= str_repeat($this->spacer_string$this->spacer_multiplier 1) . '<a href="' zen_href_link(FILENAME_DEFAULT'cPath=' $category_link) . '">';
                
$result .= $category['name'];
                
$result .= '</a>';
 
                if ((
$this->data[$category_id]) && (($this->max_level == '0') || ($this->max_level $level+1))) {
                    
$result .= $this->buildBranch($category_id$level+1$submenu$category_link '_');
                }
                
$result .= $this->child_end_string;
            }
        }
 
        
$result .= $this->parent_group_end_string;
        return 
$result;
    }
 
    function 
buildTree($submenu=false)
    {
        return 
$this->buildBranch($this->root_category_id''$submenu);
    }
}
?>
category_tree.php
PHP Code:
<?php
/**
 * category_tree Class.
 *
 * @package classes
 * @copyright Copyright 2003-2006 Zen Cart Development Team
 * @copyright Portions Copyright 2003 osCommerce
 * @license http://www.zen-cart.com/license/2_0.txt GNU Public License V2.0
 * @version $Id: category_tree.php 3041 2006-02-15 21:56:45Z wilt $
 */
if (!defined('IS_ADMIN_FLAG')) {
  die(
'Illegal Access');
}
/**
 * category_tree Class.
 * This class is used to generate the category tree used for the categories sidebox
 *
 * @package classes
 */
class category_tree extends base {
  function 
zen_category_tree($product_type "all") {
    global 
$db$cPath$cPath_array;
    if (
$product_type != 'all') {
      
$sql "select type_master_type from " TABLE_PRODUCT_TYPES "
                where type_master_type = " 
$product_type "";
      
$master_type_result $db->Execute($sql);
      
$master_type $master_type_result->fields['type_master_type'];
    }
    
$this->tree = array();
    if (
$product_type == 'all') {
      
$categories_query "select c.categories_id, cd.categories_name, c.parent_id, c.categories_image
                             from " 
TABLE_CATEGORIES " c, " TABLE_CATEGORIES_DESCRIPTION " cd
                             where c.parent_id = 0
                             and c.categories_id = cd.categories_id
                             and cd.language_id='" 
. (int)$_SESSION['languages_id'] . "'
                             and c.categories_status= 1
                             order by sort_order, cd.categories_name"
;
    } else {
      
$categories_query "select ptc.category_id as categories_id, cd.categories_name, c.parent_id, c.categories_image
                             from " 
TABLE_CATEGORIES " c, " TABLE_CATEGORIES_DESCRIPTION " cd, " TABLE_PRODUCT_TYPES_TO_CATEGORY " ptc
                             where c.parent_id = 0
                             and ptc.category_id = cd.categories_id
                             and ptc.product_type_id = " 
$master_type "
                             and c.categories_id = ptc.category_id
                             and cd.language_id=" 
. (int)$_SESSION['languages_id'] ."
                             and c.categories_status= 1
                             order by sort_order, cd.categories_name"
;
    }
    
$categories $db->Execute($categories_query''true150);
    while (!
$categories->EOF)  {
      
$this->tree[$categories->fields['categories_id']] = array('name' => $categories->fields['categories_name'],
      
'parent' => $categories->fields['parent_id'],
      
'level' => 0,
      
'path' => $categories->fields['categories_id'],
      
'image' => $categories->fields['categories_image'],
      
'next_id' => false);
      if (isset(
$parent_id)) {
        
$this->tree[$parent_id]['next_id'] = $categories->fields['categories_id'];
      }
      
$parent_id $categories->fields['categories_id'];
      if (!isset(
$first_element)) {
        
$first_element $categories->fields['categories_id'];
      }
      
$categories->MoveNext();
    }
    if (
zen_not_null($cPath)) {
      
$new_path '';
      
reset($cPath_array);
      while (list(
$key$value) = each($cPath_array)) {
        unset(
$parent_id);
        unset(
$first_id);
        if (
$product_type == 'all') {
          
$categories_query "select c.categories_id, cd.categories_name, c.parent_id, c.categories_image
                               from " 
TABLE_CATEGORIES " c, " TABLE_CATEGORIES_DESCRIPTION " cd
                               where c.parent_id = " 
. (int)$value "
                               and c.categories_id = cd.categories_id
                               and cd.language_id=" 
. (int)$_SESSION['languages_id'] . "
                               and c.categories_status= 1
                               order by sort_order, cd.categories_name"
;
        } else {
          
/*
          $categories_query = "select ptc.category_id as categories, cd.categories_name, c.parent_id, c.categories_image
          from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd, " . TABLE_PRODUCT_TYPES_TO_CATEGORY . " ptc
          where c.parent_id = '" . (int)$value . "'
          and ptc.category_id = cd.categories_id
          and ptc.product_type_id = '" . $master_type . "'
          and cd.language_id='" . (int)$_SESSION['languages_id'] . "'
          and c.categories_status= '1'
          order by sort_order, cd.categories_name";
          */
          
$categories_query "select ptc.category_id as categories_id, cd.categories_name, c.parent_id, c.categories_image
                             from " 
TABLE_CATEGORIES " c, " TABLE_CATEGORIES_DESCRIPTION " cd, " TABLE_PRODUCT_TYPES_TO_CATEGORY " ptc
                             where c.parent_id = " 
. (int)$value "
                             and ptc.category_id = cd.categories_id
                             and ptc.product_type_id = " 
$master_type "
                             and c.categories_id = ptc.category_id
                             and cd.language_id=" 
. (int)$_SESSION['languages_id'] ."
                             and c.categories_status= 1
                             order by sort_order, cd.categories_name"
;
        }
        
$rows $db->Execute($categories_query);
        if (
$rows->RecordCount()>0) {
          
$new_path .= $value;
          while (!
$rows->EOF) {
            
$this->tree[$rows->fields['categories_id']] = array('name' => $rows->fields['categories_name'],
            
'parent' => $rows->fields['parent_id'],
            
'level' => $key+1,
            
'path' => $new_path '_' $rows->fields['categories_id'],
            
'image' => $categories->fields['categories_image'],
            
'next_id' => false);
            if (isset(
$parent_id)) {
              
$this->tree[$parent_id]['next_id'] = $rows->fields['categories_id'];
            }
            
$parent_id $rows->fields['categories_id'];
            if (!isset(
$first_id)) {
              
$first_id $rows->fields['categories_id'];
            }
            
$last_id $rows->fields['categories_id'];
            
$rows->MoveNext();
          }
          
$this->tree[$last_id]['next_id'] = $this->tree[$value]['next_id'];
          
$this->tree[$value]['next_id'] = $first_id;
          
$new_path .= '_';
        } else {
          break;
        }
      }
    }
    
$row 0;
    return 
$this->zen_show_category($first_element$row);
  }
  function 
zen_show_category($counter,$ii) {
    global 
$cPath_array;
    
$this->categories_string "";
    for (
$i=0$i<$this->tree[$counter]['level']; $i++) {
      if (
$this->tree[$counter]['parent'] != 0) {
        
$this->categories_string .= CATEGORIES_SUBCATEGORIES_INDENT;
      }
    }
 
    if (
$this->tree[$counter]['parent'] == 0) {
      
$cPath_new 'cPath=' $counter;
      
$this->box_categories_array[$ii]['top'] = 'true';
    } else {
      
$this->box_categories_array[$ii]['top'] = 'false';
      
$cPath_new 'cPath=' $this->tree[$counter]['path'];
      
$this->categories_string .= CATEGORIES_SEPARATOR_SUBS;
    }
    
$this->box_categories_array[$ii]['path'] = $cPath_new;
    if (isset(
$cPath_array) && in_array($counter$cPath_array)) {
      
$this->box_categories_array[$ii]['current'] = true;
    } else {
      
$this->box_categories_array[$ii]['current'] = false;
    }
    
// display category name
    
$this->box_categories_array[$ii]['name'] = $this->categories_string $this->tree[$counter]['name'];
    
// make category image available in case needed
    
$this->box_categories_array[$ii]['image'] = $this->tree[$counter]['image'];
    if (
zen_has_category_subcategories($counter)) {
      
$this->box_categories_array[$ii]['has_sub_cat'] = true;
    } else {
      
$this->box_categories_array[$ii]['has_sub_cat'] = false;
    }
    if (
SHOW_COUNTS == 'true') {
      
$products_in_category zen_count_products_in_category($counter);
      if (
$products_in_category 0) {
        
$this->box_categories_array[$ii]['count'] = $products_in_category;
      } else {
        
$this->box_categories_array[$ii]['count'] = 0;
      }
    }
    if (
$this->tree[$counter]['next_id'] != false) {
      
$ii++;
      
$this->zen_show_category($this->tree[$counter]['next_id'], $ii);
    }
    return 
$this->box_categories_array;
  }
}
?>

tpl_categories.php
PHP Code:
<?php
/**
 * Side Box Template
 *
 * @package templateSystem
 * @copyright Copyright 2003-2006 Zen Cart Development Team
 * @copyright Portions Copyright 2003 osCommerce
 * @license http://www.zen-cart.com/license/2_0.txt GNU Public License V2.0
 * @version $Id: tpl_categories.php 4162 2006-08-17 03:55:02Z ajeh $
 */
  
$content "";
 
  
$content .= '<div id="' str_replace('_''-'$box_id 'Content') . '" class="sideBoxContent">' "\n";
  for (
$i=0;$i<sizeof($box_categories_array);$i++) {
    switch(
true) {
// to make a specific category stand out define a new class in the stylesheet example: A.category-holiday
// uncomment the select below and set the cPath=3 to the cPath= your_categories_id
// many variations of this can be done
//      case ($box_categories_array[$i]['path'] == 'cPath=3'):
//        $new_style = 'category-holiday';
//        break;
      
case ($box_categories_array[$i]['top'] == 'true'):
        
$new_style 'category-top';
        break;
      case (
$box_categories_array[$i]['has_sub_cat']):
        
$new_style 'category-subs';
        break;
      default:
        
$new_style 'category-products';
      }
     if (
zen_get_product_types_to_category($box_categories_array[$i]['path']) == or ($box_categories_array[$i]['top'] != 'true' and SHOW_CATEGORIES_SUBCATEGORIES_ALWAYS != 1)) {
        
// skip if this is for the document box (==3)
      
} else {
      
$content .= '<a class="' $new_style '" href="' zen_href_link(FILENAME_DEFAULT$box_categories_array[$i]['path']) . '">';
      if (
$box_categories_array[$i]['current']) {
        if (
$box_categories_array[$i]['has_sub_cat']) {
          
$content .= '<span class="category-subs-parent">' $box_categories_array[$i]['name'] . '</span>';
        } else {
          
$content .= '<span class="category-subs-selected">' $box_categories_array[$i]['name'] . '</span>';
        }
      } else {
        
$content .= $box_categories_array[$i]['name'];
      }
      if (
$box_categories_array[$i]['has_sub_cat']) {
        
$content .= CATEGORIES_SEPARATOR;
      }
      
$content .= '</a>';
      if (
SHOW_COUNTS == 'true') {
        if ((
CATEGORIES_COUNT_ZERO == '1' and $box_categories_array[$i]['count'] == 0) or $box_categories_array[$i]['count'] >= 1) {
          
$content .= CATEGORIES_COUNT_PREFIX $box_categories_array[$i]['count'] . CATEGORIES_COUNT_SUFFIX;
        }
      }
      
$content .= '<br />' "\n";
    }
  }
  if (
SHOW_CATEGORIES_BOX_SPECIALS == 'true' or SHOW_CATEGORIES_BOX_PRODUCTS_NEW == 'true' or SHOW_CATEGORIES_BOX_FEATURED_PRODUCTS == 'true' or SHOW_CATEGORIES_BOX_PRODUCTS_ALL == 'true') {
// display a separator between categories and links
    
if (SHOW_CATEGORIES_SEPARATOR_LINK == '1') {
      
$content .= '<hr id="catBoxDivider" />' "\n";
    }
    if (
SHOW_CATEGORIES_BOX_SPECIALS == 'true') {
      
$show_this $db->Execute("select s.products_id from " TABLE_SPECIALS " s where s.status= 1 limit 1");
      if (
$show_this->RecordCount() > 0) {
        
$content .= '<a class="category-links" href="' zen_href_link(FILENAME_SPECIALS) . '">' CATEGORIES_BOX_HEADING_SPECIALS '</a>' '<br />' "\n";
      }
    }
    if (
SHOW_CATEGORIES_BOX_PRODUCTS_NEW == 'true') {
      
// display limits
//      $display_limit = zen_get_products_new_timelimit();
      
$display_limit zen_get_new_date_range();
      
$show_this $db->Execute("select p.products_id
                                 from " 
TABLE_PRODUCTS " p
                                 where p.products_status = 1 " 
$display_limit " limit 1");
      if (
$show_this->RecordCount() > 0) {
        
$content .= '<a class="category-links" href="' zen_href_link(FILENAME_PRODUCTS_NEW) . '">' CATEGORIES_BOX_HEADING_WHATS_NEW '</a>' '<br />' "\n";
      }
    }
    if (
SHOW_CATEGORIES_BOX_FEATURED_PRODUCTS == 'true') {
      
$show_this $db->Execute("select products_id from " TABLE_FEATURED " where status= 1 limit 1");
      if (
$show_this->RecordCount() > 0) {
        
$content .= '<a class="category-links" href="' zen_href_link(FILENAME_FEATURED_PRODUCTS) . '">' CATEGORIES_BOX_HEADING_FEATURED_PRODUCTS '</a>' '<br />' "\n";
      }
    }
    if (
SHOW_CATEGORIES_BOX_PRODUCTS_ALL == 'true') {
      
$content .= '<a class="category-links" href="' zen_href_link(FILENAME_PRODUCTS_ALL) . '">' CATEGORIES_BOX_HEADING_PRODUCTS_ALL '</a>' "\n";
    }
  }
  
$content .= '</div>';
?>