Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

problem on main categories


fborille

Recommended Posts

Hi all,

 

I'm about to go online with the store www.slaveinformatica.com.br/lojavirtual but can't find a problem in the "main categories" index page. The subcategories displays ok, not main ones.

 

If someone can give a little help, i only need this to put it online :/

 

here's my index

 

<?php
/*
 index.php
*/

 require('includes/application_top.php');

// the following cPath references come from application_top.php
 $category_depth = 'top';
 if (isset($cPath) && tep_not_null($cPath)) {
$categories_products_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS_TO_CATEGORIES . " where categories_id = '" . (int)$current_category_id . "'");
$cateqories_products = tep_db_fetch_array($categories_products_query);
if ($cateqories_products['total'] > 0) {
  $category_depth = 'products'; // display products
} else {
  $category_parent_query = tep_db_query("select count(*) as total from " . TABLE_CATEGORIES . " where parent_id = '" . (int)$current_category_id . "'");
  $category_parent = tep_db_fetch_array($category_parent_query);
  if ($category_parent['total'] > 0) {
	$category_depth = 'nested'; // navigate through the categories
  } else {
	$category_depth = 'products'; // category has no products, but display the 'no products' message
  }
}
 }

 require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_DEFAULT);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html <?php echo HTML_PARAMS; ?>>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET; ?>"> 
<title><?php echo TITLE; ?></title>
<base href="<?php echo (($request_type == 'SSL') ? HTTPS_SERVER : HTTP_SERVER) . DIR_WS_CATALOG; ?>">
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0">
<!-- header //-->
<?php require(DIR_WS_INCLUDES . 'header.php'); ?>
<!-- header_eof //-->
<!-- body //-->
<tr>
<td width="182" align="left" valign="top">
<table width="182" cellpadding="0" cellspacing="0" border="0">
<?php require(DIR_WS_INCLUDES . 'column_left.php'); ?>
</table>
</td>
<td width="509" valign="top" style="padding-left:2px;">
	<table border="0" cellpadding="0" cellspacing="0" width="100%">
		<?php
 if ($category_depth == 'nested') {
$category_query = tep_db_query("select cd.categories_name, c.categories_image from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.categories_id = '" . (int)$current_category_id . "' and cd.categories_id = '" . (int)$current_category_id . "' and cd.language_id = '" . (int)$languages_id . "'");
$category = tep_db_fetch_array($category_query);
?>
<?php
if (isset($cPath) && strpos('_', $cPath)) {
// check to see if there are deeper categories within the current category
  $category_links = array_reverse($cPath_array);
  for($i=0, $n=sizeof($category_links); $i<$n; $i++) {
	$categories_query = tep_db_query("select count(*) as total from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.parent_id = '" . (int)$category_links[$i] . "' and c.categories_id = cd.categories_id and cd.language_id = '" . (int)$languages_id . "'");
	$categories = tep_db_fetch_array($categories_query);
	if ($categories['total'] < 1) {
	  // do nothing, go through the loop
	} else {
	  $categories_query = tep_db_query("select c.categories_id, cd.categories_name, c.categories_image, c.parent_id from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.parent_id = '" . (int)$category_links[$i] . "' and c.categories_id = cd.categories_id and cd.language_id = '" . (int)$languages_id . "' order by sort_order, cd.categories_name");
	  break; // we've found the deepest category the customer is in
	}
  }
} else {
  $categories_query = tep_db_query("select c.categories_id, cd.categories_name, c.categories_image, c.parent_id from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.parent_id = '" . (int)$current_category_id . "' and c.categories_id = cd.categories_id and cd.language_id = '" . (int)$languages_id . "' order by sort_order, cd.categories_name");
}

$number_of_categories = tep_db_num_rows($categories_query);

$rows = 0;
while ($categories = tep_db_fetch_array($categories_query)) {
  $rows++;
  $cPath_new = tep_get_path($categories['categories_id']);
  $width = (int)(100 / MAX_DISPLAY_CATEGORIES_PER_ROW) . '%';

 // echo '				<td align="center" class="smallText" width="' . $width . '" valign="top"><a href="' . tep_href_link(FILENAME_DEFAULT, $cPath_new) . '">' . tep_image(DIR_WS_IMAGES . $categories['categories_image'], $categories['categories_name'], SUBCATEGORY_IMAGE_WIDTH, SUBCATEGORY_IMAGE_HEIGHT) . '<br>' . $categories['categories_name'] . '</a></td>' . "\n";
//  if ((($rows / MAX_DISPLAY_CATEGORIES_PER_ROW) == floor($rows / MAX_DISPLAY_CATEGORIES_PER_ROW)) && ($rows != $number_of_categories)) {
 //   echo '			  </tr>' . "\n";
//	echo '			  <tr>' . "\n";
//  }
}

// needed for the new products module shown below

$new_products_category_id = $current_category_id;
?>
<tr>
<td width="100%" valign="top"><table border="0" width="100%" cellspacing="0" cellpadding="0">

  <tr>
	<td><table border="0" width="100%" cellspacing="0" cellpadding="0">

	  <?php include(DIR_WS_MODULES . FILENAME_NEW_PRODUCTS); ?>
	</table></td>
  </tr>
<? /*  <tr>
						<td width="100%" style="padding-top:4px; ">
							<table border="0" cellpadding="0" cellspacing="0" width="100%" height="72">
								<tr>
									<td><img src="images/left_bottom.gif" width="5" height="72" /></td>
									<td width="100%" height="70" style="border:1px solid #A3A3A3; border-width:1px 0px; " valign="middle">
										<table border="0" cellpadding="0" cellspacing="0" width="100%" height="55">
											<tr>
												<td width="25%" height="70" style="border-right:1px solid #A7A9AC; "><center><a href=""><img src="images/ssl_geotrust.gif" width="" height="" alt="" border="0" /></a></center></a></td>
												<td width="25%" height="70" style="border-right:1px solid #A7A9AC; "><center><a href=""><img src="images/visa.gif" width="" height="" alt="" border="0" /></center></a></td>
												<td width="25%" height="70" style="border-right:1px solid #A7A9AC; "><center><a href=""><img src="images/mastercard.gif" width="" height="" alt="" border="0" /></center></a></td>
												<td width="25%" height="70"><a href=""><center><img src="images/boleto.gif" width="" height="" alt="" border="0" /></center></a></td>
											</tr>
										</table>
									</td>
									<td><img src="images/right_bottom.gif" width="4" height="72" /></td>										
								</tr>
							</table>
						</td>
					</tr>
</table> */?>
<?php
 } elseif ($category_depth == 'products' || isset($HTTP_GET_VARS['manufacturers_id'])) {
// create column list
$define_list = array('PRODUCT_LIST_MODEL' => PRODUCT_LIST_MODEL,
					 'PRODUCT_LIST_NAME' => PRODUCT_LIST_NAME,
					 'PRODUCT_LIST_MANUFACTURER' => PRODUCT_LIST_MANUFACTURER,
					 'PRODUCT_LIST_PRICE' => PRODUCT_LIST_PRICE,
					 'PRODUCT_LIST_QUANTITY' => PRODUCT_LIST_QUANTITY,
					 'PRODUCT_LIST_WEIGHT' => PRODUCT_LIST_WEIGHT,
					 'PRODUCT_LIST_IMAGE' => PRODUCT_LIST_IMAGE,
					 'PRODUCT_LIST_BUY_NOW' => PRODUCT_LIST_BUY_NOW);

asort($define_list);

$column_list = array();
reset($define_list);
while (list($key, $value) = each($define_list)) {
  if ($value > 0) $column_list[] = $key;
}

$select_column_list = '';

for ($i=0, $n=sizeof($column_list); $i<$n; $i++) {
  switch ($column_list[$i]) {
	case 'PRODUCT_LIST_MODEL':
	  $select_column_list .= 'p.products_model, ';
	  break;
	case 'PRODUCT_LIST_NAME':
	  $select_column_list .= 'pd.products_name, ';
	  break;
	case 'PRODUCT_LIST_MANUFACTURER':
	  $select_column_list .= 'm.manufacturers_name, ';
	  break;
	case 'PRODUCT_LIST_QUANTITY':
	  $select_column_list .= 'p.products_quantity, ';
	  break;
	case 'PRODUCT_LIST_IMAGE':
	  $select_column_list .= 'p.products_image, ';
	  break;
	case 'PRODUCT_LIST_WEIGHT':
	  $select_column_list .= 'p.products_weight, ';
	  break;
  }
}

// show the products of a specified manufacturer
if (isset($HTTP_GET_VARS['manufacturers_id'])) {
  if (isset($HTTP_GET_VARS['filter_id']) && tep_not_null($HTTP_GET_VARS['filter_id'])) {
// We are asked to show only a specific category
	$listing_sql = "select " . $select_column_list . " p.products_id, p.manufacturers_id, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_MANUFACTURERS . " m, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id where p.products_status = '1' and p.manufacturers_id = m.manufacturers_id and m.manufacturers_id = '" . (int)$HTTP_GET_VARS['manufacturers_id'] . "' and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '" . (int)$languages_id . "' and p2c.categories_id = '" . (int)$HTTP_GET_VARS['filter_id'] . "'";
  } else {
// We show them all
	$listing_sql = "select " . $select_column_list . " p.products_id, p.manufacturers_id, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_MANUFACTURERS . " m left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id where p.products_status = '1' and pd.products_id = p.products_id and pd.language_id = '" . (int)$languages_id . "' and p.manufacturers_id = m.manufacturers_id and m.manufacturers_id = '" . (int)$HTTP_GET_VARS['manufacturers_id'] . "'";
  }
} else {
// show the products in a given categorie
  if (isset($HTTP_GET_VARS['filter_id']) && tep_not_null($HTTP_GET_VARS['filter_id'])) {
// We are asked to show only specific catgeory
	$listing_sql = "select " . $select_column_list . " p.products_id, p.manufacturers_id, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_MANUFACTURERS . " m, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id where p.products_status = '1' and p.manufacturers_id = m.manufacturers_id and m.manufacturers_id = '" . (int)$HTTP_GET_VARS['filter_id'] . "' and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '" . (int)$languages_id . "' and p2c.categories_id = '" . (int)$current_category_id . "'";
  } else {
// We show them all
	$listing_sql = "select " . $select_column_list . " p.products_id, p.manufacturers_id, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_PRODUCTS . " p left join " . TABLE_MANUFACTURERS . " m on p.manufacturers_id = m.manufacturers_id, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id where p.products_status = '1' and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '" . (int)$languages_id . "' and p2c.categories_id = '" . (int)$current_category_id . "'";
  }
}

if ( (!isset($HTTP_GET_VARS['sort'])) || (!ereg('[1-8][ad]', $HTTP_GET_VARS['sort'])) || (substr($HTTP_GET_VARS['sort'], 0, 1) > sizeof($column_list)) ) {
  for ($i=0, $n=sizeof($column_list); $i<$n; $i++) {
	if ($column_list[$i] == 'PRODUCT_LIST_NAME') {
	  $HTTP_GET_VARS['sort'] = $i+1 . 'a';
	  $listing_sql .= " order by pd.products_name";
	  break;
	}
  }
} else {
  $sort_col = substr($HTTP_GET_VARS['sort'], 0 , 1);
  $sort_order = substr($HTTP_GET_VARS['sort'], 1);
  $listing_sql .= ' order by ';
  switch ($column_list[$sort_col-1]) {
	case 'PRODUCT_LIST_MODEL':
	  $listing_sql .= "p.products_model " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name";
	  break;
	case 'PRODUCT_LIST_NAME':
	  $listing_sql .= "pd.products_name " . ($sort_order == 'd' ? 'desc' : '');
	  break;
	case 'PRODUCT_LIST_MANUFACTURER':
	  $listing_sql .= "m.manufacturers_name " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name";
	  break;
	case 'PRODUCT_LIST_QUANTITY':
	  $listing_sql .= "p.products_quantity " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name";
	  break;
	case 'PRODUCT_LIST_IMAGE':
	  $listing_sql .= "pd.products_name";
	  break;
	case 'PRODUCT_LIST_WEIGHT':
	  $listing_sql .= "p.products_weight " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name";
	  break;
	case 'PRODUCT_LIST_PRICE':
	  $listing_sql .= "final_price " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name";
	  break;
  }
}
?>

<tr>
<td width="100%" valign="top" align="right" bgcolor="#FFFFFF">
<table border="0" width="100%" cellspacing="0" cellpadding="0">
   <tr>
	<td align="left" width="100%">
		<table border="0" width="100%" cellspacing="0" cellpadding="0">
		<tr>
			<td width="100%" align="right" valign="top">
				<table border="0" width="100%" cellspacing="0" cellpadding="0">
	   				<tr>
						<td width="100%">
		 					<table border="0" cellpadding="0" cellspacing="0" width="100%" height="25">
		 						<tr>
									<td width="100%" height="24" valign="top">

											<table width="100%" border="0" cellpadding="0" cellspacing="0" height="24">
	<tr>
		<td><img src="images/left_header.gif" width="4" height="24" alt="" /></td>
		<td width="100%" style="background-image:url(images/header_bg.gif); text-align:left; color:#FFF; padding-left:5px; font-size:110%; font-weight:bold "><?php  
										   //show category name
									   if (!isset($HTTP_GET_VARS['manufacturers_id']))
									   {
										$cat='SELECT categories_id, language_id , categories_name FROM categories_description WHERE categories_id = '.(int)$current_category_id.' AND language_id = '.(int)$languages_id.' LIMIT 0, 30 ';
										   $cat=tep_db_query($cat);
											$cat = tep_db_fetch_array($cat);
											   echo $cat['categories_name'];
										}
										else
										{
										$cat='SELECT manufacturers_name FROM '. TABLE_MANUFACTURERS .' WHERE manufacturers_id = '.$HTTP_GET_VARS['manufacturers_id'].' LIMIT 0, 30 ';
										   $cat=tep_db_query($cat);
											$cat = tep_db_fetch_array($cat);
											   echo $cat['manufacturers_name'];
										}
											   ?>

										</td>
		<td><img src="images/right_header.gif" width="4" height="24" alt="" /></td>			
	</tr>
</table>

	   								</td>
	   							</tr>
	   						</table>
					   </td>
	   				</tr>

	   				<tr>
						<td height="404" valign="top" style="padding:5px 10px 0px 10px;; border:1px solid #C2C2C2;"><?php include(DIR_WS_MODULES . FILENAME_PRODUCT_LISTING); ?></td>
					</tr>
				</table>
			</td>
		  </tr>
   	</table>
</td>
</tr>
</table></td>
</tr>
</table>
<?php
 } else { // default page (PAGINA PRINCIPAL NEW_PRODUCTS.PHP)
?>
<tr>
			<td width="509" weight="900" align="center" valign="top" >
				<table border="0" cellpadding="0" cellspacing="0" width="100%">
					<tr>
						<td width="509" weight="900" bgcolor="#FFFFFF" valign="top">
						<table border="0" cellpadding="0" cellspacing="0" width="100%" >
						<?php include(DIR_WS_MODULES . 'new_products.php'); ?></table></td>
					</tr>
<? /*			 			<tr>
						<td width="100%" style="padding-top:4px; ">
							<table border="0" cellpadding="0" cellspacing="0" width="100%" height="72">
								<tr>
									<td><img src="images/left_bottom.gif" width="5" height="72" /></td>
									<td width="100%" height="70" style="border:1px solid #A3A3A3; border-width:1px 0px; " valign="middle">
										<table border="0" cellpadding="0" cellspacing="0" width="100%" height="55">
											<tr>
												<td width="25%" height="70" style="border-right:1px solid #A7A9AC; "><center><a href=""><img src="images/ssl_geotrust.gif" width="" height="" alt="" border="0" /></a></center></a></td>
												<td width="25%" height="70" style="border-right:1px solid #A7A9AC; "><center><a href=""><img src="images/visa.gif" width="" height="" alt="" border="0" /></center></a></td>
												<td width="25%" height="70" style="border-right:1px solid #A7A9AC; "><center><a href=""><img src="images/mastercard.gif" width="" height="" alt="" border="0" /></center></a></td>
												<td width="25%" height="70"><a href=""><center><img src="images/boleto.gif" width="" height="" alt="" border="0" /></center></a></td>
											</tr>
										</table>
									</td>
								 	<td><img src="images/right_bottom.gif" width="4" height="72" /></td>										
								</tr>*/?>
							</table>
						</td>
					</tr>
				</table>
			</td>
		</tr>
		<tr>

		</tr>
	</table> 
<?php
 }
?>
<!-- body_eof //-->
</td>
</tr> 
<!-- footer //-->
<?php require(DIR_WS_INCLUDES . 'footer.php'); ?>
<!-- footer_eof //-->


</body>
</html>
<?php require(DIR_WS_INCLUDES . 'application_bottom.php'); ?>

 

Thanks

 

Fabio

Link to comment
Share on other sites

Is the problem you are talking about the fact that your main categories page spreads out.

 

If it is, the problem is in your template. You need to restrict the outside table by defining its width.

Just between us, remember there are only 10 kinds of people in the world; those who understand binary and those who don't!!

 

Remember, learning is a "do-it-yourself" experience; although, not necessarily a "do-it-BY-yourself" experience.

 

The quickest way to learn is to forget to BACKUP!

Link to comment
Share on other sites

Archived

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

×
×
  • Create New...