Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Addin a link above categories


x3graphics

Recommended Posts

I have a bestsellers link that I currently have at the bottom of the categories list. But I would like to have it at the top just below the categories title. Does anyone know how to do this. Here is my categories.php page that has been modified to show all categories and sub categories.

<?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 .= '' . '<a href="' . tep_href_link(FILENAME_DEFAULT, $cPath_new_sub, 'NONSSL') . '" class="menusubcateg">' . '   ' . tep_image(DIR_WS_IMAGES . 'pointer_blue_light.gif', '') . $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') . '" class="menucateg"><b>' . ' ' . tep_image(DIR_WS_IMAGES . 'pointer_blue.gif', '') . $categories['categories_name'] . '</b></a>' . $text_subcategories);
$col ++;
if ($col > 0) 
	{
			$col = 0;
			$row ++;
}
$cPath_array = $temp_cPath_array; //Re-enable the array for the rest of the code
  }
 }

  $text_bestsellers = '';
$text_bestsellers .= ' <a href="' . tep_href_link(FILENAME_BESTSELLERS) . '">' . BOX_HEADING_BESTSELLERS . '</a><br>';
$info_box_contents[] = array('text' => $text_bestsellers);



 new infoBox($info_box_contents, true);



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

 

Thank You

Link to comment
Share on other sites

I can not remeber where , but there is option to display categories in alphabetical order or random.

 

This is a link to a page I developed so that I could choose the bestsellers. If you look at the last few lines of the code you will see this.

Link to comment
Share on other sites

Archived

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

×
×
  • Create New...