Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Error in Categories List


DxWo

Recommended Posts

Warning: Invalid argument supplied for foreach() in /home/***/public_html/***/includes/boxes/categories_css.php on line 245

 

This error came up after enabling Cache support. what would cause this?

Link to comment
Share on other sites

@@DxWo

 

 

Since categories_css.php is not a core osCommerce file, it would be difficult to suggest what the problem is without seeing the contents of the file. Post the code so we can see it.

 

 

Chris

Link to comment
Share on other sites

<?php
/*
 $Id: categories.php,v 1.25 2003/07/09 01:13:58 hpdl Exp $
 osCommerce, Open Source E-Commerce Solutions
 http://www.oscommerce.com
 Copyright (c) 2003 osCommerce
 Released under the GNU General Public License
*/
?>
<?
   // cssMenu - Begin of configuration //
   $cssMenuConfig = array();
   $cssMenuConfig['ShowEmptyCategories'] = true;
   $cssMenuConfig['includeProducts']	 = false;	 // Should CSSMenu show products
   $cssMenuConfig['maxProductsInMenu']   = 8;		  // Maximum number of products to show in a menu ( stops massive menus being created )
   $cssMenuConfig['moreText']		    = "More...."; // Maximum number of products to show in a menu ( stops massive menus being created )
   $cssMenuConfig['showSubMenu']		 = true; // Show category dependent menu
//    $cssMenuConfig['idSubMenu']		   = array('619', '620'); // Category id for the dependent menu
   // cssMenu - End of configuration //
   $categories_subs = array();
   $categories_start = array();
   $categories_subs_query = tep_db_query("select count(*) as count, parent_id from " . TABLE_CATEGORIES . " GROUP BY parent_id");
   while($row = tep_db_fetch_array($categories_subs_query)) {
    $categories_subs[$row['parent_id']] = $row['count'];
   }
   $categories_query = tep_db_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 cd.language_id = '" . $languages_id . "' order by sort_order, cd.categories_name");
   while($row = tep_db_fetch_array($categories_query)) {
    $categories_start['S_' . $row['categories_id'] . '_' . $row['parent_id'] . '_E'] = $row;
   }
?>
<style type="text/css">
/*Credits: Dynamic Drive CSS Library */
/*URL: http://www.dynamicdrive.com/style/ */
.suckerdiv ul{
margin: 0;
padding: 0;
list-style-type: none;
width: 240px; /* Width of Menu Items */
border-bottom: 1px solid #555555;
font-family: arial;
font-size: 12px;
z-index: 999999;
}
.suckerdiv ul li{
position: relative;
background-color: #faf9fe;
}
/*1st level sub menu style */
.suckerdiv ul li ul{
left: 239px; /* Parent menu width - 1*/
position: absolute;
width: 240px; /*sub menu width*/
top: 0;
display: none;
}
/*All subsequent sub menu levels offset */
.suckerdiv ul li ul li ul{
left: 239px; /* Parent menu width - 1*/
}
/*All subsequent sub menu levels offset */
.suckerdiv ul li ul li a{
left: 239px; /* Parent menu width - 1*/
background-color: #faf9fe;
}
/*All subsequent sub menu levels offset */
.suckerdiv ul li ul li ul li a{
background-color: #faf9fe;
}
/*All subsequent sub menu levels offset */
.suckerdiv ul li ul li ul li ul li a{
background-color: #faf9fe;
}
/* menu links style */
.suckerdiv ul li a{
display: block;
color: #4C4C64;
text-decoration: none;
background-color: #faf9fe;
padding: 1px 5px;
border: 1px solid #555555;
border-bottom: 0;
line-height: 1.75em;
}
.suckerdiv ul li a:hover{
background-color: #dcdbe9;
color: #4C4C64;
text-decoration: none;
}
.suckerdiv ul li ul li a:hover{
background-color: #dcdbe9;
color: #4C4C64;
text-decoration: none;
}
.suckerdiv ul li ul li ul li a:hover{
background-color: #dcdbe9;
color: #4C4C64;
text-decoration: none;
}
/* The main categories with sub-categories */
.suckerdiv .subfolderstyle{
background: url(images/arrow-list.gif) no-repeat center right;
}
/* This one colors the sub-folder with other sub-folders */
.suckerdiv ul li ul .subfolderstyle {
background-color: #faf9fe;
}
/* This one colors the sub-folder with other sub-folders */
.suckerdiv ul li ul li ul .subfolderstyle {
background-color: #faf9fe;
}
/* This one colors the sub-folder with other sub-folders */
.suckerdiv ul li ul li ul li ul .subfolderstyle {
background-color: #faf9fe;
}
/* Holly Hack for IE \*/
* html .suckerdiv ul li { float: left; height: 1%; }
* html .suckerdiv ul li a { height: 1%; }
/* End */
</style>
<script type="text/javascript">
//SuckerTree Vertical Menu (Aug 4th, 06)
//By Dynamic Drive: http://www.dynamicdrive.com/style/
var menuids=["suckertree1"] //Enter id(s) of SuckerTree UL menus, separated by commas
function buildsubmenus(){
for (var i=0; i<menuids.length; i++){
 var ultags=document.getElementById(menuids[i]).getElementsByTagName("ul")
   for (var t=0; t<ultags.length; t++){
   ultags[t].parentNode.getElementsByTagName("a")[0].className="subfolderstyle"
   ultags[t].parentNode.onmouseover=function(){
   this.getElementsByTagName("ul")[0].style.display="block"
   }
   ultags[t].parentNode.onmouseout=function(){
   this.getElementsByTagName("ul")[0].style.display="none"
   }
   }
 }
}
if (window.addEventListener)
window.addEventListener("load", buildsubmenus, false)
else if (window.attachEvent)
window.attachEvent("onload", buildsubmenus)
</script>
<?

 function PrintProducts( $category_id, $categories_string , $includeul, $languageID)
 {
   global $cssMenuConfig;
   $product_path="product_info.php?cPath=".$category_id."&products_id=";
   $products_query = tep_db_query("select pc.products_id, pc.categories_id from products_to_categories pc, products p where pc.categories_id = " . $category_id . " and p.products_id = pc.products_id and products_status=1 order by products_price");
   $productsDisplay=mysql_num_rows( $products_query );
   $addMore= false;
   if ( $includeul  && $productsDisplay > 0 ) {
	 $returnval .= "<ul>";
   }
   if ( $productsDisplay > $cssMenuConfig['maxProductsInMenu'] ) {
    $productsDisplay=$cssMenuConfig['maxProductsInMenu'];
    $addMore= true;
   }
   $count_string = '';
    if (SHOW_COUNTS == 'true') {
	  if ($totalitemsincategory > 0) {
	    $count_string = ' (' . $totalitemsincategory . ')';
	  }
    }
   $i=0;
   while ($i < $productsDisplay) {
	 $products = tep_db_fetch_array($products_query);
	 $product_query = tep_db_query("select products_name from products_description where products_id = " . $products['products_id'] . " AND language_id = ".$languageID );
	 $product = tep_db_fetch_array($product_query);
	 $returnval .= "<li><a href='".$product_path.$products['products_id']."'>".$product['products_name']."</a></li>\n";
	 $i++;
   }
    if ( $addMore ) {
	 $returnval .= "<li><a href='".$categories_string."'>".$cssMenuConfig['moreText']."</a></li>\n";
    }
    if ( $productsDisplay > 0 || !$includeul ) {
    $returnval .= "</ul>";
    }
    return $returnval;
 }
 function PrintSubMenus( $parentID, $languageID, $start_path ){
  global $cssMenuConfig, $categories_subs, $categories_start;
  $returnval = '';
  if (($start_path == '') && ($parentID > 0)) {
    $start_path = $parentID;
  } else {
    if ($parentID > 0) $start_path .= "_" . $parentID;
  }
  if ($parentID != 0) {
    $returnval .= "<ul>";
  } else {
    $returnval .= "<div class='suckerdiv'>";
    $returnval .= "<ul id='suckertree1'>";
  }
//	  $categories_query = tep_db_query("select c.categories_id, cd.categories_name, c.parent_id from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.parent_id = '".$parentID."' and c.categories_id = cd.categories_id and cd.language_id='" . (int)$languageID ."' order by sort_order, cd.categories_name");
  $cat_subs = array();
  foreach($categories_start as $key => $value) {
    if(strstr($key, '_' . $parentID . '_E')) {
	    $cat_subs[$parentID][] = substr($key, 2, strpos($key, "_", 2) - 2);
    }
  }
//	  if (!isset($_GET['cPath'])) {
    foreach ($cat_subs[$parentID] as $v)  { //$categories = tep_db_fetch_array($categories_query)
	  $categories = $categories_start['S_' . $v . '_' . $parentID . '_E'];
	  if ($start_path == "") {
	    $grouppath = $categories['categories_id'];
	  } else {
	    $grouppath = $start_path . "_" . $categories['categories_id'];
	  }
	  $cPath_new = 'cPath=' . $grouppath;
	  $categories_string = tep_href_link(FILENAME_DEFAULT, $cPath_new);
	  $totalitemsincategory = tep_count_products_in_category($categories['categories_id']);
	  $count_string = '';
	  if ((SHOW_COUNTS == 'true') && ($totalitemsincategory > 0) ){
		  $count_string = ' (' . $totalitemsincategory . ')';
	  }
	  if (cssMenu_ShowCategory($cssMenuConfig['ShowEmptyCategories'], $totalitemsincategory)) {
		  $returnval .= "<li><a href='".$categories_string."'>".$categories['categories_name'].$count_string."</a>\n";
	  }
	  if (array_key_exists($categories['categories_id'], $categories_subs)) { //tep_has_category_subcategories($categories['categories_id'])
		 $returnval .= PrintSubMenus( $categories['categories_id'], $languageID, $start_path );
		 if ( $cssMenuConfig['includeProducts'] ) {
		    $returnval .= PrintProducts($categories['categories_id'],$categories_string, false, $languageID);
		 }
	  } else {
		 if ( $cssMenuConfig['includeProducts'] ) {
		    $returnval .= PrintProducts($categories['categories_id'],$categories_string, true, $languageID);
		 }
	  }
	  if (cssMenu_ShowCategory($cssMenuConfig['ShowEmptyCategories'], $totalitemsincategory)) {
		 $returnval .= "</li>";
	  }
    }
//	  }
  if ( !$cssMenuConfig['includeProducts'] ) {
    $returnval .= "</ul>";
  }
  if ($parentID == 0) $returnval .= "</div>";
  return $returnval;
 }
 function cssMenu_ShowCategory( $switch, $products) {
  if ( $switch == 1 ) {
	 return true;
  } else {
    if ($products > 0) {
	   return true;
    } else {
	   return false;
    }
  }
 }
?>
<!-- categories //-->
	  <tr>
	    <td>
<?php
 $info_box_contents = array();
 $info_box_contents[] = array('text' => BOX_HEADING_CATEGORIES);
 new infoBoxHeading($info_box_contents, true, false);
 $info_box_contents = array();
 $info_box_contents[] = array('text' => PrintSubMenus( 0, $languages_id, '' ));							   
 new infoBox($info_box_contents);
?>
	    </td>
	  </tr>
<!-- MenuConfigategories_eof //-->

Link to comment
Share on other sites

Hi,

 

Used that contribution a few years ago

 

http://www.oscommerce.com/community/contributions,4589

 

Some versions cache the queries themselves for faster page loads guess you are maybe getting some conflict would suggest taking a look at the link above and maybe change the the categories_css.php

it is quite different from the one you are using I think you might have an an older version best would be to winmerge so you can keep your css settings.

 

John

To improve is to change; to be perfect is to change often.

 

Link to comment
Share on other sites

Archived

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

×
×
  • Create New...