Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

coolMenu


Keyser Soze

Recommended Posts

  • Replies 1.2k
  • Created
  • Last Reply

Top Posters In This Topic

If of any interest I have just made a demo shop on http://cinter.biz where I am using the suggestions in my post here:

http://www.oscommerce.com/forums/index.php?sho...20entry271554

 

The shop is centered and the coolmenu is locked in the 'Coolmenu ' box. But you can lock it in any box if you want.

 

NB: I have not bothered yet to put the coolmenu javascript in other files than the index.php file, so the coolmenu is only visible in index.php.

Link to comment
Share on other sites

If of any interest I have just made a demo shop on http://cinter.biz where I am using the suggestions in my post here:

http://www.oscommerce.com/forums/index.php?sho...20entry271554

 

The shop is centered and the coolmenu is locked in the 'Coolmenu ' box. But you can lock it in any box if you want.

 

NB: I have not bothered yet to put the coolmenu javascript in other files than the index.php file, so the coolmenu is only visible in index.php.

That's what I'm after how do I lock it in the box?

 

Code and the files to edit please.

Best Regards

Link to comment
Share on other sites

If of any interest I have just made a demo shop on http://cinter.biz where I am using the suggestions in my post here:

http://www.oscommerce.com/forums/index.php?sho...20entry271554

 

The shop is centered and the coolmenu is locked in the 'Coolmenu ' box. But you can lock it in any box if you want.

 

NB: I have not bothered yet to put the coolmenu javascript in other files than the index.php file, so the coolmenu is only visible in index.php.

That's what I'm after how do I lock it in the box?

 

Code and the files to edit please.

It's all in here, you have to read it.

 

http://www.oscommerce.com/forums/index.php?how...20entry271554

 

As for the code to put in footer.php

 

<!-- coolMenu //--><?php require(DIR_WS_INCLUDES . 'coolmenu.php'); ?><!-- coolMenu_eof //--><?php

 

Just put it at the very bottom of footer.php. You don't have to put it in between as I have suggested in my post above.

Don't put the code anywhere else.

 

The box locking code you can see under number 3.

In my example it is the coolmenu.php box, but you can put it in any box.

Link to comment
Share on other sites

CORRECTION Code for centered page with coolmenu.

There was an error in the /catalog/includes/boxes/coolmenu.php (too many td tags)

 

First install the coolmenu contribution as described only don't insert the

require(DIR_WS_INCLUDES . 'coolmenu.php');

 

Then change the following files:

 

1: /catalog/includes/coolmenu.php

2: /catalog/includes/footer.php

3: /catalog/includes/boxes/coolmenu.php

 

1: in /catalog/includes/coolmenu.php

put this code after the <script> tag

//Extra code to find position:

function findPos(){

if(bw.ns4){ //Netscape 4

x = document.layers.tlayerm.pageX

y = document.layers.tlayerm.pageY

}else{ //other browsers

x=0; y=0; var el,temp

el = bw.ie4?document.all["topm"]:document.getElementById("topm");

if(el.offsetParent){

temp = el

while(temp.offsetParent){ //Looping parent elements to get the offset of them as well

temp=temp.offsetParent;

x+=temp.offsetLeft

y+=temp.offsetTop

}

}

x+=el.offsetLeft

y+=el.offsetTop

}

//Returning the x and y as an array

return [x,y]

}

 

oCMenu=new makeCM("oCMenu") //Making the menu object. Argument: menuname

pos = findPos()

//Menu properties

oCMenu.pxBetween=0

//experiment with fromleft and fromtop - I use -2 and -7 but you can try something different and place the menu anywhere on the page

oCMenu.fromLeft=pos[0]-2

oCMenu.fromTop=pos[1]-7

oCMenu.onresize="location.reload()"

oCMenu.rows=0

// etc.

 

2: in /catalog/includes/footer.php place

 

<!-- coolMenu //--><?php require(DIR_WS_INCLUDES . 'coolmenu.php'); ?><!-- coolMenu_eof //-->

 

at the very bottom

 

or else place the 'require coolmenu.php' in every single file under /catalog/ just befor the </body> tag (which takes a bit longer).

It must NOT EXIST ELSEWHERE in the php files under the catalog (root) directory.

If you have it after a </head> tag from an earlier installation then remove it from there.

 

3: in /catalog/includes/boxes/coolmenu.php

 

replace this code

$info_box_contents[] = array('text' => '<img src="images/trans.gif" width="150" height="' . $height . '">');

with this code

//the code below ajusts the height of the coolmenu dynamically according to the number of categories in the main menu

$result=tep_db_query("select parent_id from " . TABLE_CATEGORIES . " where parent_id = '0'");

$height.= 12*mysql_num_rows($result);

//experiment with the multiplyer denpending on the size of your menu

 

$info_box_contents[] = array('text' => '<ilayer id="tlayerm"><div id="topm"><img src="images/trans.gif" width="150" height="' . $height . '"></div></ilayer>');

 

//src="images/trans.gif" width does not have to be "150" - I use "1"

 

And that should be it

Link to comment
Share on other sites

Hi there,

 

I tried your suggestions, and i get the weirdest error.......

 

The page goes really long, and spits this out at the bottom:

 

//Extra code to find position: function findPos(){ if(bw.ns4){ //Netscape 4 x = document.layers.tlayerm.pageX y = document.layers.tlayerm.pageY }else{ //other browsers x=0; y=0; var el,temp el = bw.ie4?document.all["topm"]:document.getElementById("topm"); if(el.offsetParent){ temp = el while(temp.offsetParent){ //Looping parent elements to get the offset of them as well temp=temp.offsetParent; x+=temp.offsetLeft y+=temp.offsetTop } } x+=el.offsetLeft y+=el.offsetTop } //Returning the x and y as an array return [x,y] } oCMenu=new makeCM("oCMenu") //Making the menu object. Argument: menuname pos = findPos() //Menu properties oCMenu.pxBetween=0 //experiment with fromleft and fromtop - I use -2 and -7 but you can try something different and place the menu anywhere on the page oCMenu.fromLeft=pos[0]-2 oCMenu.fromTop=pos[1]-7 oCMenu.onresize="location.reload()" oCMenu.rows=0 // etc. // oCMenu=new makeCM("oCMenu") //Making the menu object. Argument: menuname //Menu properties //oCMenu.pxBetween=0 //oCMenu.fromLeft=9 //oCMenu.fromTop=238 //oCMenu.rows=0 //oCMenu.menuPlacement="left" oCMenu.offlineRoot="" oCMenu.onlineRoot="" oCMenu.resizeCheck=1 oCMenu.wait=500 oCMenu.fillImg="cm_fill.gif" oCMenu.zIndex=0 //Background bar properties oCMenu.useBar=1 oCMenu.barWidth="menu" oCMenu.barHeight="menu" oCMenu.barClass="clBar" oCMenu.barX="menu" oCMenu.barY="menu" oCMenu.barBorderX=0 oCMenu.barBorderY=0 oCMenu.barBorderClass="" oCMenu.level[0]=new cm_makeLevel() oCMenu.level[0].width=155 oCMenu.level[0].height=28 oCMenu.level[0].regClass="clLevel0" oCMenu.level[0].overClass="clLevel0over" oCMenu.level[0].borderX=1 oCMenu.level[0].borderY=1 oCMenu.level[0].borderClass="clLevel0border" oCMenu.level[0].offsetX=0 oCMenu.level[0].offsetY=0 oCMenu.level[0].rows=0 oCMenu.level[0].arrow="images/arrow.gif" oCMenu.level[0].arrowWidth=11 oCMenu.level[0].arrowHeight=11 oCMenu.level[0].align="right" oCMenu.level[0].filter="progid:DXImageTransform.Microsoft.Fade(duration=0.8)" oCMenu.level[1]=new cm_makeLevel() oCMenu.level[1].width=250 oCMenu.level[1].height=14 oCMenu.level[1].regClass="clLevel1" oCMenu.level[1].overClass="clLevel1over" oCMenu.level[1].borderX=1 oCMenu.level[1].borderY=1 oCMenu.level[1].align="right" oCMenu.level[1].offsetX=0 oCMenu.level[1].offsetY=0 oCMenu.level[1].borderClass="clLevel1border" oCMenu.level[1].align="right" oCMenu.level[1].filter="progid:DXImageTransform.Microsoft.Fade(duration=0.6)" oCMenu.level[2]=new cm_makeLevel() oCMenu.level[2].width=250 oCMenu.level[2].height=14 oCMenu.level[2].regClass="clLevel1" oCMenu.level[2].overClass="clLevel1over" oCMenu.level[2].borderX=1 oCMenu.level[2].borderY=1 oCMenu.level[2].align="right" oCMenu.level[2].offsetX=0 oCMenu.level[2].offsetY=0 oCMenu.level[2].borderClass="clLevel1border" oCMenu.level[2].align="right" oCMenu.level[2].filter="progid:DXImageTransform.Microsoft.Fade(duration=0.6)" oCMenu.level[3]=new cm_makeLevel() oCMenu.level[3].width=250 oCMenu.level[3].height=14 oCMenu.level[3].regClass="clLevel1" oCMenu.level[3].overClass="clLevel1over" oCMenu.level[3].borderX=1 oCMenu.level[3].borderY=1 oCMenu.level[3].align="right" oCMenu.level[3].offsetX=0 oCMenu.level[3].offsetY=0 oCMenu.level[3].borderClass="clLevel1border" oCMenu.level[3].align="right" oCMenu.level[3].filter="progid:DXImageTransform.Microsoft.Fade(duration=0.6)"

Fatal error: Cannot redeclare blank_length() (previously declared in g:\web\bearess\catalog\includes\coolmenu.php:146) in g:\web\bearess\catalog\includes\coolmenu.php on line 146

 

Any Ideas?

Link to comment
Share on other sites

I seemed to have fixed the above problem, but now the menu just wont display at all - I have tried 4 different browsers, and the source indicates that it is not even makin the menu structure.

 

 

Any help would be greatly appreciated, as im stuck :o

 

Cheers

Link to comment
Share on other sites

2: in /catalog/includes/footer.php  place

 

<!-- coolMenu //--><?php require(DIR_WS_INCLUDES . 'coolmenu.php'); ?><!-- coolMenu_eof //-->

 

at the very bottom

 

or else place the 'require coolmenu.php' in every single file under /catalog/ just before the </body> tag (which takes a bit longer).

It must NOT EXIST ELSEWHERE in the php files under the catalog (root) directory.

If you have it after a </head> tag from an earlier installation then remove it from there.

That's because coolmenu already has been declared once. As you see from my guidance under number 2: you should only include coolmenu.php in the footer and NOWHERE ELSE. I think you have it somewhere just after your BODY tag.

Link to comment
Share on other sites

catalog/header.php:

 

<?php
/*
 $Id: index.php,v 1.1 2003/06/11 17:37:59 hpdl Exp $

 osCommerce, Open Source E-Commerce Solutions
 http://www.oscommerce.com

 Copyright (c) 2003 osCommerce

 Released under the GNU General Public License
*/

 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 HTML 4.01 Transitional//EN">
<html <?php echo HTML_PARAMS; ?>>
<head>
<script LANGUAGE="JavaScript1.2" SRC="includes/menu_animation.js"></SCRIPT>
<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="stylesheet.css">
</head>
<body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0">
<!-- coolMenu //-->
<?php //require(DIR_WS_INCLUDES . 'coolmenu.php'); ?>
<!-- coolMenu_eof //-->
<!-- header //-->
<?php require(DIR_WS_INCLUDES . 'header.php'); ?>
<!-- header_eof //-->

<!-- body //-->
<table border="0" width="100%" cellspacing="0" cellpadding="0">
 <tr>
   <td width="<?php echo BOX_WIDTH; ?>" valign="top"><table border="0" width="<?php echo BOX_WIDTH; ?>" cellspacing="0" cellpadding="2">
<!-- left_navigation //-->
<?php require(DIR_WS_INCLUDES . 'column_left.php'); ?>
<!-- left_navigation_eof //-->
   </table></td>
<!-- body_text //-->
<?php
 if ($category_depth == 'nested') {
   $category_query = tep_db_query("select cd.categories_name, cd.categories_heading_title, cd.categories_description, 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);
?>
   <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">
         <tr>
           <td class="pageHeading">
            <?php 
              if ( (ALLOW_CATEGORY_DESCRIPTIONS == 'true') && (tep_not_null($category['categories_heading_title'])) ) {
                echo $category['categories_heading_title'];
              } else {
                echo HEADING_TITLE;
              }
            ?>
           </td>
           <td class="pageHeading" align="right"><?php echo tep_image(DIR_WS_IMAGES . $category['categories_image'], $category['categories_name'], HEADING_IMAGE_WIDTH, HEADING_IMAGE_HEIGHT); ?></td>
         </tr>
      <?php if ( (ALLOW_CATEGORY_DESCRIPTIONS == 'true') && (tep_not_null($category['categories_description'])) ) { ?>
  <tr>
           <td align="left" colspan="2" class="category_desc"><?php echo $category['categories_description']; ?></td>
  </tr>
  <?php } ?>
       </table></td>
     </tr>
     <tr>
       <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
     </tr>
     <tr>
       <td><table border="0" width="100%" cellspacing="0" cellpadding="2">
         <tr>
           <td><table border="0" width="100%" cellspacing="0" cellpadding="2">
             <tr>
<?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>
           </table></td>
         </tr>
         <tr>
           <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
         </tr>
         <tr>
           <td><?php include(DIR_WS_MODULES . FILENAME_NEW_PRODUCTS); ?></td>
         </tr>
       </table></td>
     </tr>
   </table></td>
<?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;
     }
   }
// Get the category name and description
   $category_query = tep_db_query("select cd.categories_name, cd.categories_heading_title, cd.categories_description, c.categories_image from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.categories_id = '" . $current_category_id . "' and cd.categories_id = '" . $current_category_id . "' and cd.language_id = '" . $languages_id . "'");
   $category = tep_db_fetch_array($category_query);

?>
   <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">
         <tr>
           <td class="pageHeading">
            <?php 
              if ( (ALLOW_CATEGORY_DESCRIPTIONS == 'true') && (tep_not_null($category['categories_heading_title'])) ) {
                echo $category['categories_heading_title'];
              } else {
                echo HEADING_TITLE;
              }
            ?>
           </td>
<?php
// optional Product List Filter
   if (PRODUCT_LIST_FILTER > 0) {
     if (isset($HTTP_GET_VARS['manufacturers_id'])) {
       $filterlist_sql = "select distinct c.categories_id as id, cd.categories_name as name from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c, " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where p.products_status = '1' and p.products_id = p2c.products_id and p2c.categories_id = c.categories_id and p2c.categories_id = cd.categories_id and cd.language_id = '" . (int)$languages_id . "' and p.manufacturers_id = '" . (int)$HTTP_GET_VARS['manufacturers_id'] . "' order by cd.categories_name";
     } else {
       $filterlist_sql= "select distinct m.manufacturers_id as id, m.manufacturers_name as name from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c, " . TABLE_MANUFACTURERS . " m where p.products_status = '1' and p.manufacturers_id = m.manufacturers_id and p.products_id = p2c.products_id and p2c.categories_id = '" . (int)$current_category_id . "' order by m.manufacturers_name";
     }
     $filterlist_query = tep_db_query($filterlist_sql);
     if (tep_db_num_rows($filterlist_query) > 1) {
       echo '            <td align="center" class="main">' . tep_draw_form('filter', FILENAME_DEFAULT, 'get') . TEXT_SHOW . ' ';
       if (isset($HTTP_GET_VARS['manufacturers_id'])) {
         echo tep_draw_hidden_field('manufacturers_id', $HTTP_GET_VARS['manufacturers_id']);
         $options = array(array('id' => '', 'text' => TEXT_ALL_CATEGORIES));
       } else {
         echo tep_draw_hidden_field('cPath', $cPath);
         $options = array(array('id' => '', 'text' => TEXT_ALL_MANUFACTURERS));
       }
       echo tep_draw_hidden_field('sort', $HTTP_GET_VARS['sort']);
       while ($filterlist = tep_db_fetch_array($filterlist_query)) {
         $options[] = array('id' => $filterlist['id'], 'text' => $filterlist['name']);
       }
       echo tep_draw_pull_down_menu('filter_id', $options, (isset($HTTP_GET_VARS['filter_id']) ? $HTTP_GET_VARS['filter_id'] : ''), 'onchange="this.form.submit()"');
       echo '</form></td>' . "\n";
     }
   }

// Get the right image for the top-right
   $image = DIR_WS_IMAGES . 'table_background_list.gif';
   if (isset($HTTP_GET_VARS['manufacturers_id'])) {
     $image = tep_db_query("select manufacturers_image from " . TABLE_MANUFACTURERS . " where manufacturers_id = '" . (int)$HTTP_GET_VARS['manufacturers_id'] . "'");
     $image = tep_db_fetch_array($image);
     $image = $image['manufacturers_image'];
   } elseif ($current_category_id) {
     $image = tep_db_query("select categories_image from " . TABLE_CATEGORIES . " where categories_id = '" . (int)$current_category_id . "'");
     $image = tep_db_fetch_array($image);
     $image = $image['categories_image'];
   }
?>
           <td align="right"><?php echo tep_image(DIR_WS_IMAGES . $image, HEADING_TITLE, HEADING_IMAGE_WIDTH, HEADING_IMAGE_HEIGHT); ?></td>
         </tr>
   <?php if ( (ALLOW_CATEGORY_DESCRIPTIONS == 'true') && (tep_not_null($category['categories_description'])) ) { ?>
  <tr>
           <td align="left" colspan="2" class="category_desc"><?php echo $category['categories_description']; ?></td>
  </tr>
  <?php } ?>
       </table></td>
     </tr>
     <tr>
       <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
     </tr>
     <tr>
       <td><?php include(DIR_WS_MODULES . FILENAME_PRODUCT_LISTING); ?></td>
     </tr>
   </table></td>
<?php
 } else { // default page
?>
   <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">
         <tr>
           <td class="pageHeading"><?php echo HEADING_TITLE; ?></td>
           <td class="pageHeading" align="right">
	 <?php // echo tep_image(DIR_WS_IMAGES . 'table_background_default.gif', HEADING_TITLE, HEADING_IMAGE_WIDTH, HEADING_IMAGE_HEIGHT); ?></td>
         </tr>
       </table></td>
     </tr>
     <tr>
       <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
     </tr>
     <tr>
       <td><table border="0" width="100%" cellspacing="0" cellpadding="0">
         <tr>
           <td class="main"><?php echo tep_customer_greeting(); ?></td>
         </tr>
         <tr>
           <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
         </tr>
         <tr>
           <td class="main"><?php include(DIR_WS_LANGUAGES . $language . '/' . FILENAME_DEFINE_MAINPAGE); ?></td>
         </tr>
         <tr>
           <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
         </tr>
         <tr>
           <td><?php include(DIR_WS_MODULES . FILENAME_NEW_PRODUCTS); ?></td>
         </tr>
<?php
   include(DIR_WS_MODULES . FILENAME_UPCOMING_PRODUCTS);
?>

       </table></td>
     </tr>
   </table></td>
<?php
 }
?>

<!-- body_text_eof //-->
   <td width="<?php echo BOX_WIDTH; ?>" valign="top"><table border="0" width="<?php echo BOX_WIDTH; ?>" cellspacing="0" cellpadding="2">
<!-- right_navigation //-->
<?php require(DIR_WS_INCLUDES . 'column_right.php'); ?>
<!-- right_navigation_eof //-->
   </table></td>
 </tr>
</table>
<!-- body_eof //-->
 <!-- <td width="<?php // echo BOX_WIDTH; ?>" valign="top"><table border="0" width="<?php // echo BOX_WIDTH; ?>" cellspacing="0" cellpadding="2"> //-->
</table></td>
</tr>
</table>
<!-- footer //-->
<?php require(DIR_WS_INCLUDES . 'footer.php'); ?>
<!-- footer_eof //-->
<br>
</body>
</html>
<?php require(DIR_WS_INCLUDES . 'application_bottom.php'); ?>

 

/catalog/includes/coolmenu.php:

 

<?php

/* ------------------------------------------------

 coolMenu for osCommerce
 
 author:	Andreas Kothe 
 url:  http://www.oddbyte.de


 Released under the GNU General Public License
 
 ------------------------------------------------ 
*/




// --- CONFIG ---

define('SHOW_COUNT','true');
define('SUB_CATEGORIES','4');





if (MAX_MANUFACTURERS_LIST < 2) {
   $cat_choose = array(array('id' => '', 'text' => BOX_CATEGORIES_CHOOSE));
} else {
   $cat_choose = '';
}

?>



   <!--  Copyright 2002 www.dhtmlcentral.com  --  modified for PHP and osCommerce by Andreas Kothe - www.oddbyte.de	-->

 <script>
//Extra code to find position:
function findPos(){
 if(bw.ns4){   //Netscape 4
   x = document.layers.layerMenu.pageX
   y = document.layers.layerMenu.pageY
 }else{ //other browsers
   x=0; y=0; var el,temp
   el = bw.ie4?document.all["divMenu"]:document.getElementById("divMenu");
   if(el.offsetParent){
     temp = el
     while(temp.offsetParent){ //Looping parent elements to get the offset of them as well
       temp=temp.offsetParent; 
       x+=temp.offsetLeft
       y+=temp.offsetTop;
     }
   }
   x+=el.offsetLeft
   y+=el.offsetTop
 }
 //Returning the x and y as an array
 return [x,y]
}

pos = findPos()

//Menu object creation
oCMenu=new makeCM("oCMenu") //Making the menu object. Argument: menuname

//Menu properties   
oCMenu.pxBetween=50
//Using the cm_page object to place the menu ----
oCMenu.fromLeft=pos[0]
oCMenu.fromTop=pos[1]
//We also need to "re place" the menu on resize. So:
oCMenu.onresize="pos = findPos(); oCMenu.fromLeft=pos[0]; oCMenu.fromTop=pos[1]"

oCMenu.rows=0
oCMenu.menuPlacement=0



//  oCMenu=new makeCM("oCMenu") //Making the menu object. Argument: menuname

 //Menu properties
    //oCMenu.pxBetween=0
 //oCMenu.fromLeft=9
 //oCMenu.fromTop=238
 //oCMenu.rows=0
 //oCMenu.menuPlacement="left"

 oCMenu.offlineRoot=""
 oCMenu.onlineRoot=""
 oCMenu.resizeCheck=1
 oCMenu.wait=500
 oCMenu.fillImg="cm_fill.gif"
 oCMenu.zIndex=0

 //Background bar properties
 oCMenu.useBar=1
 oCMenu.barWidth="menu"
 oCMenu.barHeight="menu"
 oCMenu.barClass="clBar"
 oCMenu.barX="menu"
 oCMenu.barY="menu"
 oCMenu.barBorderX=0
 oCMenu.barBorderY=0
 oCMenu.barBorderClass=""

 oCMenu.level[0]=new cm_makeLevel()
 oCMenu.level[0].width=155
 oCMenu.level[0].height=28
 oCMenu.level[0].regClass="clLevel0"
 oCMenu.level[0].overClass="clLevel0over"
 oCMenu.level[0].borderX=1
 oCMenu.level[0].borderY=1
 oCMenu.level[0].borderClass="clLevel0border"
 oCMenu.level[0].offsetX=0
 oCMenu.level[0].offsetY=0
 oCMenu.level[0].rows=0
 oCMenu.level[0].arrow="images/arrow.gif"
 oCMenu.level[0].arrowWidth=11
 oCMenu.level[0].arrowHeight=11
 oCMenu.level[0].align="right"
 oCMenu.level[0].filter="progid:DXImageTransform.Microsoft.Fade(duration=0.8)"
<?php
for ($i=1; $i<SUB_CATEGORIES; $i++) { 
 echo'	
	 oCMenu.level[' . $i . ']=new cm_makeLevel()
	 oCMenu.level[' . $i . '].width=250
	 oCMenu.level[' . $i . '].height=14
	 oCMenu.level[' . $i . '].regClass="clLevel1"
	 oCMenu.level[' . $i . '].overClass="clLevel1over"
	 oCMenu.level[' . $i . '].borderX=1
	 oCMenu.level[' . $i . '].borderY=1
	 oCMenu.level[' . $i . '].align="right"
	 oCMenu.level[' . $i . '].offsetX=0
	 oCMenu.level[' . $i . '].offsetY=0
	 oCMenu.level[' . $i . '].borderClass="clLevel1border"
	 oCMenu.level[' . $i . '].align="right"
	 oCMenu.level[' . $i . '].filter="progid:DXImageTransform.Microsoft.Fade(duration=0.6)"
	 
	 
 ';
} // end for




// ---

function blank_length($text) {
$count = 0;
while(substr($text, 0,12) == "  ") {
$text = substr($text, 12);
$count++;
}
return $count;
}




// ---


function print_menu_line($categories, $depth_size,$depth_parentid, $depth) {

 $size=0;
 for($i=0; $depth_size[$i]!=0; $i++) {
	 $size++;
 }


 echo "oCMenu.makeMenu('";

 if ($depth == 0) {
	 echo "top" . '_'.$depth_size[0] . "','','";
 } else if ($depth == 1) {
	 echo "sub" .'_'.$depth_size[0] .'_'. $depth_size[1] . "','top" .'_'. $depth_size[0] . "','";
 } else { // $depth < 1
	 echo "sub";
	 for ($i=0; $i<$size; $i++) {
   echo ($depth_size[$i] != 0) ? '_'.$depth_size[$i] : '_';
	 }
	 echo "','sub";
	 for ($i=0; $i<$size-1; $i++) {
   echo ($depth_size[$i] != 0) ? '_'.$depth_size[$i] : '_';
	 }
	 echo "','";
 }
 echo $categories['text'];
 if (SHOW_COUNT == 'true') {
	 $products_in_category = tep_count_products_in_category($categories['id']);
	 if ($products_in_category > 0) {
   echo "<FONT COLOR=\"#c0c0c0\">  (" . $products_in_category . ")</FONT>";
	 }
 }
 
       $cPathNew = "cPath=";
 for ($i=0; $i<$size-1; $i++) {
	 $cPathNew .= ($depth_size[$i] != 0) ? $depth_parentid[$i].'_':'';
       }
       $cPathNew .= $categories['id'];
 echo "','" . tep_href_link(FILENAME_DEFAULT,$cPathNew) . "')\n";
}



// ---


$categories = tep_get_categories('');

$height.= 20*count($categories);

$depth=0;
$blank_length;
$depth_size;
$depth_parentid;

for($i=0; $i<count($categories); $i++) {	// don't insert 1st entry ("please choose ...")
 $blank_length = blank_length($categories[$i]['text']);

 if($blank_length == $depth) {
	 $categories[$i]['depth'] = $depth;
	 $depth_size[$depth]++;
 } else if ($blank_length > $depth) {
	 $depth++;
	 $categories[$i]['depth'] = $depth;
	 $depth_size[$depth]++;
 } else if ($blank_length < $depth) {
	 for ($j=$depth; $j>$blank_length; $j--) {
   $depth_size[$j] = 0;
   $depth--;
	 }
	 $categories[$i]['depth'] = $depth;
	 $depth_size[$depth]++;

 }
        $depth_parentid[$categories[$i]['depth']] = $categories[$i]['id'];

 // remove blanks
 $categories[$i]['text'] = substr($categories[$i]['text'], 12*$blank_length);

 print_menu_line($categories[$i], $depth_size,$depth_parentid, $depth);
}



?>	

 // create menu
 oCMenu.construct()

   <!--  Copyright 2002 www.dhtmlcentral.com  --  modified for PHP and osCommerce by Andreas Kothe - www.oddbyte.de	-->

 </SCRIPT>

 

/catalog/includes/footer.php:

 

<?php
/*
 $Id: footer.php,v 1.26 2003/02/10 22:30:54 hpdl Exp $

 osCommerce, Open Source E-Commerce Solutions
 http://www.oscommerce.com

 Copyright (c) 2003 osCommerce

 Released under the GNU General Public License
*/

 require(DIR_WS_INCLUDES . 'counter.php');
?>
<table border="0" width="770" cellspacing="0" cellpadding="0" align="center">
 <tr class="footer">
   <td class="footer">  <?php echo strftime(DATE_FORMAT_LONG); ?>  </td>
   <td align="right" class="footer">  <?php echo $counter_now . ' ' . FOOTER_TEXT_REQUESTS_SINCE . ' ' . $counter_startdate_formatted; ?>  </td>
 </tr>
</table>
<br>
<table border="0" width="100%" cellspacing="0" cellpadding="0">
 <tr>
   <td align="center" class="smallText">
<?php
/*
 The following copyright announcement can only be
 appropriately modified or removed if the layout of
 the site theme has been modified to distinguish
 itself from the default osCommerce-copyrighted
 theme.

 For more information please read the following
 Frequently Asked Questions entry on the osCommerce
 support site:

 http://www.oscommerce.com/community.php/faq,26/q,50

 Please leave this comment intact together with the
 following copyright announcement.
*/

 echo FOOTER_TEXT_BODY
?>
   </td>
 </tr>
</table>
<?php
 if ($banner = tep_banner_exists('dynamic', '468x50')) {
?>
<br>
<table border="0" width="100%" cellspacing="0" cellpadding="0">
 <tr>
   <td align="center"><?php echo tep_display_banner('static', $banner); ?></td>
 </tr>
</table>
<?php
 }
?>

<?php
///////////////////
// [0001] WebMakers.com Added: Center Shop
// This goes at the very end of the footer after all the tables
///////////////////

 if ( CENTER_SHOP_ON == 'on' ) {
  
///////////////////
// [0001] close table used to center
///////////////////
?>
     </td></tr>
   </table>
<?php
   if ( CENTER_SHOP_BACKGROUND_ON == 'on' ) {
    
///////////////////
// [0001] Add color to bottom of screen for large displays - needed especially on notebooks that run at 1600x1200
// close table used for outer bgcolor around the shop
///////////////////
?>
     </td></tr>
     <tr><td height="150"> </td></tr>
   </table>
<?php
   }
 }
///////////////////
// [0001] EOF: WebMakers.com Added: Center Shop
///////////////////
///////////////////
?>
<!-- coolMenu //--><?php require(DIR_WS_INCLUDES . 'coolmenu.php'); ?><!-- coolMenu_eof //-->

 

/catalog/includes/boxes/coolmenu.php:

 

<?php
/* ------------------------------------------------

 coolMenu for osCommerce
 
 author:	Andreas Kothe 
 url:  http://www.oddbyte.de


 Released under the GNU General Public License
 
 ------------------------------------------------ 
*/

?>
<!-- coolMenu //-->

<!-- copyright 2003 Andreas Kothe - www.oddbyte.de // -->

  <TR>
    <TD>

<?php
 $info_box_contents = array();
 $info_box_contents[] = array('align' => 'left',
         'text'  => 'Products'
        );
 new infoBoxHeading($info_box_contents, false, false);

 $info_box_contents = array();
 if (MAX_MANUFACTURERS_LIST < 2) {
$cat_choose = array(array('id' => '', 'text' => BOX_CATEGORIES_CHOOSE));
 } else {
$cat_choose = '';
 }


//the code below ajusts the height of the coolmenu dynamically according to the number of categories in the main menu
$result=tep_db_query("select parent_id from " . TABLE_CATEGORIES . " where parent_id = '0'");
$height.= 10*mysql_num_rows($result);
//experiment with the multiplyer denpending on the size of your menu

$info_box_contents[] = array('text' => '<ilayer id="tlayerm"><div id="topm"><img src="images/trans.gif" width="150" height="' . $height . '"></div></ilayer>');

//src="images/trans.gif" width does not have to be "150" - I use "1"


//  $info_box_contents[] = array('text'  => '
//<img src="images/trans.gif" width="150" height="' . $height . '">');


 new infoBox($info_box_contents);

?>
    </TD>
  </TR>

<!-- coolMenu_eof //-->

Link to comment
Share on other sites

catalog/header.php:

 

<?php
/*
 $Id: index.php,v 1.1 2003/06/11 17:37:59 hpdl Exp $

 osCommerce, Open Source E-Commerce Solutions
 http://www.oscommerce.com

 Copyright (c) 2003 osCommerce

 Released under the GNU General Public License
*/

 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 HTML 4.01 Transitional//EN">
<html <?php echo HTML_PARAMS; ?>>
<head>
<script LANGUAGE="JavaScript1.2" SRC="includes/menu_animation.js"></SCRIPT>
<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="stylesheet.css">
</head>
<body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0">
<!-- coolMenu //-->
<?php //require(DIR_WS_INCLUDES . 'coolmenu.php'); ?>
<!-- coolMenu_eof //-->
<!-- header //-->
<?php require(DIR_WS_INCLUDES . 'header.php'); ?>
<!-- header_eof //-->

<!-- body //-->
<table border="0" width="100%" cellspacing="0" cellpadding="0">
 <tr>
   <td width="<?php echo BOX_WIDTH; ?>" valign="top"><table border="0" width="<?php echo BOX_WIDTH; ?>" cellspacing="0" cellpadding="2">
<!-- left_navigation //-->
<?php require(DIR_WS_INCLUDES . 'column_left.php'); ?>
<!-- left_navigation_eof //-->
   </table></td>
<!-- body_text //-->
<?php
 if ($category_depth == 'nested') {
   $category_query = tep_db_query("select cd.categories_name, cd.categories_heading_title, cd.categories_description, 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);
?>
   <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">
         <tr>
           <td class="pageHeading">
            <?php 
              if ( (ALLOW_CATEGORY_DESCRIPTIONS == 'true') && (tep_not_null($category['categories_heading_title'])) ) {
                echo $category['categories_heading_title'];
              } else {
                echo HEADING_TITLE;
              }
            ?>
           </td>
           <td class="pageHeading" align="right"><?php echo tep_image(DIR_WS_IMAGES . $category['categories_image'], $category['categories_name'], HEADING_IMAGE_WIDTH, HEADING_IMAGE_HEIGHT); ?></td>
         </tr>
      <?php if ( (ALLOW_CATEGORY_DESCRIPTIONS == 'true') && (tep_not_null($category['categories_description'])) ) { ?>
  <tr>
           <td align="left" colspan="2" class="category_desc"><?php echo $category['categories_description']; ?></td>
  </tr>
  <?php } ?>
       </table></td>
     </tr>
     <tr>
       <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
     </tr>
     <tr>
       <td><table border="0" width="100%" cellspacing="0" cellpadding="2">
         <tr>
           <td><table border="0" width="100%" cellspacing="0" cellpadding="2">
             <tr>
<?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>
           </table></td>
         </tr>
         <tr>
           <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
         </tr>
         <tr>
           <td><?php include(DIR_WS_MODULES . FILENAME_NEW_PRODUCTS); ?></td>
         </tr>
       </table></td>
     </tr>
   </table></td>
<?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;
     }
   }
// Get the category name and description
   $category_query = tep_db_query("select cd.categories_name, cd.categories_heading_title, cd.categories_description, c.categories_image from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.categories_id = '" . $current_category_id . "' and cd.categories_id = '" . $current_category_id . "' and cd.language_id = '" . $languages_id . "'");
   $category = tep_db_fetch_array($category_query);

?>
   <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">
         <tr>
           <td class="pageHeading">
            <?php 
              if ( (ALLOW_CATEGORY_DESCRIPTIONS == 'true') && (tep_not_null($category['categories_heading_title'])) ) {
                echo $category['categories_heading_title'];
              } else {
                echo HEADING_TITLE;
              }
            ?>
           </td>
<?php
// optional Product List Filter
   if (PRODUCT_LIST_FILTER > 0) {
     if (isset($HTTP_GET_VARS['manufacturers_id'])) {
       $filterlist_sql = "select distinct c.categories_id as id, cd.categories_name as name from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c, " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where p.products_status = '1' and p.products_id = p2c.products_id and p2c.categories_id = c.categories_id and p2c.categories_id = cd.categories_id and cd.language_id = '" . (int)$languages_id . "' and p.manufacturers_id = '" . (int)$HTTP_GET_VARS['manufacturers_id'] . "' order by cd.categories_name";
     } else {
       $filterlist_sql= "select distinct m.manufacturers_id as id, m.manufacturers_name as name from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c, " . TABLE_MANUFACTURERS . " m where p.products_status = '1' and p.manufacturers_id = m.manufacturers_id and p.products_id = p2c.products_id and p2c.categories_id = '" . (int)$current_category_id . "' order by m.manufacturers_name";
     }
     $filterlist_query = tep_db_query($filterlist_sql);
     if (tep_db_num_rows($filterlist_query) > 1) {
       echo '            <td align="center" class="main">' . tep_draw_form('filter', FILENAME_DEFAULT, 'get') . TEXT_SHOW . ' ';
       if (isset($HTTP_GET_VARS['manufacturers_id'])) {
         echo tep_draw_hidden_field('manufacturers_id', $HTTP_GET_VARS['manufacturers_id']);
         $options = array(array('id' => '', 'text' => TEXT_ALL_CATEGORIES));
       } else {
         echo tep_draw_hidden_field('cPath', $cPath);
         $options = array(array('id' => '', 'text' => TEXT_ALL_MANUFACTURERS));
       }
       echo tep_draw_hidden_field('sort', $HTTP_GET_VARS['sort']);
       while ($filterlist = tep_db_fetch_array($filterlist_query)) {
         $options[] = array('id' => $filterlist['id'], 'text' => $filterlist['name']);
       }
       echo tep_draw_pull_down_menu('filter_id', $options, (isset($HTTP_GET_VARS['filter_id']) ? $HTTP_GET_VARS['filter_id'] : ''), 'onchange="this.form.submit()"');
       echo '</form></td>' . "\n";
     }
   }

// Get the right image for the top-right
   $image = DIR_WS_IMAGES . 'table_background_list.gif';
   if (isset($HTTP_GET_VARS['manufacturers_id'])) {
     $image = tep_db_query("select manufacturers_image from " . TABLE_MANUFACTURERS . " where manufacturers_id = '" . (int)$HTTP_GET_VARS['manufacturers_id'] . "'");
     $image = tep_db_fetch_array($image);
     $image = $image['manufacturers_image'];
   } elseif ($current_category_id) {
     $image = tep_db_query("select categories_image from " . TABLE_CATEGORIES . " where categories_id = '" . (int)$current_category_id . "'");
     $image = tep_db_fetch_array($image);
     $image = $image['categories_image'];
   }
?>
           <td align="right"><?php echo tep_image(DIR_WS_IMAGES . $image, HEADING_TITLE, HEADING_IMAGE_WIDTH, HEADING_IMAGE_HEIGHT); ?></td>
         </tr>
   <?php if ( (ALLOW_CATEGORY_DESCRIPTIONS == 'true') && (tep_not_null($category['categories_description'])) ) { ?>
  <tr>
           <td align="left" colspan="2" class="category_desc"><?php echo $category['categories_description']; ?></td>
  </tr>
  <?php } ?>
       </table></td>
     </tr>
     <tr>
       <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
     </tr>
     <tr>
       <td><?php include(DIR_WS_MODULES . FILENAME_PRODUCT_LISTING); ?></td>
     </tr>
   </table></td>
<?php
 } else { // default page
?>
   <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">
         <tr>
           <td class="pageHeading"><?php echo HEADING_TITLE; ?></td>
           <td class="pageHeading" align="right">
	 <?php // echo tep_image(DIR_WS_IMAGES . 'table_background_default.gif', HEADING_TITLE, HEADING_IMAGE_WIDTH, HEADING_IMAGE_HEIGHT); ?></td>
         </tr>
       </table></td>
     </tr>
     <tr>
       <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
     </tr>
     <tr>
       <td><table border="0" width="100%" cellspacing="0" cellpadding="0">
         <tr>
           <td class="main"><?php echo tep_customer_greeting(); ?></td>
         </tr>
         <tr>
           <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
         </tr>
         <tr>
           <td class="main"><?php include(DIR_WS_LANGUAGES . $language . '/' . FILENAME_DEFINE_MAINPAGE); ?></td>
         </tr>
         <tr>
           <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
         </tr>
         <tr>
           <td><?php include(DIR_WS_MODULES . FILENAME_NEW_PRODUCTS); ?></td>
         </tr>
<?php
   include(DIR_WS_MODULES . FILENAME_UPCOMING_PRODUCTS);
?>

       </table></td>
     </tr>
   </table></td>
<?php
 }
?>

<!-- body_text_eof //-->
   <td width="<?php echo BOX_WIDTH; ?>" valign="top"><table border="0" width="<?php echo BOX_WIDTH; ?>" cellspacing="0" cellpadding="2">
<!-- right_navigation //-->
<?php require(DIR_WS_INCLUDES . 'column_right.php'); ?>
<!-- right_navigation_eof //-->
   </table></td>
 </tr>
</table>
<!-- body_eof //-->
 <!-- <td width="<?php // echo BOX_WIDTH; ?>" valign="top"><table border="0" width="<?php // echo BOX_WIDTH; ?>" cellspacing="0" cellpadding="2"> //-->
</table></td>
</tr>
</table>
<!-- footer //-->
<?php require(DIR_WS_INCLUDES . 'footer.php'); ?>
<!-- footer_eof //-->
<br>
</body>
</html>
<?php require(DIR_WS_INCLUDES . 'application_bottom.php'); ?>

 

/catalog/includes/coolmenu.php:

 

<?php

/* ------------------------------------------------

 coolMenu for osCommerce
 
 author:	Andreas Kothe 
 url:  http://www.oddbyte.de


 Released under the GNU General Public License
 
 ------------------------------------------------ 
*/




// --- CONFIG ---

define('SHOW_COUNT','true');
define('SUB_CATEGORIES','4');





if (MAX_MANUFACTURERS_LIST < 2) {
   $cat_choose = array(array('id' => '', 'text' => BOX_CATEGORIES_CHOOSE));
} else {
   $cat_choose = '';
}

?>



   <!--  Copyright 2002 www.dhtmlcentral.com  --  modified for PHP and osCommerce by Andreas Kothe - www.oddbyte.de	-->

 <script>
//Extra code to find position:
function findPos(){
 if(bw.ns4){   //Netscape 4
   x = document.layers.layerMenu.pageX
   y = document.layers.layerMenu.pageY
 }else{ //other browsers
   x=0; y=0; var el,temp
   el = bw.ie4?document.all["divMenu"]:document.getElementById("divMenu");
   if(el.offsetParent){
     temp = el
     while(temp.offsetParent){ //Looping parent elements to get the offset of them as well
       temp=temp.offsetParent; 
       x+=temp.offsetLeft
       y+=temp.offsetTop;
     }
   }
   x+=el.offsetLeft
   y+=el.offsetTop
 }
 //Returning the x and y as an array
 return [x,y]
}

pos = findPos()

//Menu object creation
oCMenu=new makeCM("oCMenu") //Making the menu object. Argument: menuname

//Menu properties   
oCMenu.pxBetween=50
//Using the cm_page object to place the menu ----
oCMenu.fromLeft=pos[0]
oCMenu.fromTop=pos[1]
//We also need to "re place" the menu on resize. So:
oCMenu.onresize="pos = findPos(); oCMenu.fromLeft=pos[0]; oCMenu.fromTop=pos[1]"

oCMenu.rows=0
oCMenu.menuPlacement=0



//  oCMenu=new makeCM("oCMenu") //Making the menu object. Argument: menuname

 //Menu properties
    //oCMenu.pxBetween=0
 //oCMenu.fromLeft=9
 //oCMenu.fromTop=238
 //oCMenu.rows=0
 //oCMenu.menuPlacement="left"

 oCMenu.offlineRoot=""
 oCMenu.onlineRoot=""
 oCMenu.resizeCheck=1
 oCMenu.wait=500
 oCMenu.fillImg="cm_fill.gif"
 oCMenu.zIndex=0

 //Background bar properties
 oCMenu.useBar=1
 oCMenu.barWidth="menu"
 oCMenu.barHeight="menu"
 oCMenu.barClass="clBar"
 oCMenu.barX="menu"
 oCMenu.barY="menu"
 oCMenu.barBorderX=0
 oCMenu.barBorderY=0
 oCMenu.barBorderClass=""

 oCMenu.level[0]=new cm_makeLevel()
 oCMenu.level[0].width=155
 oCMenu.level[0].height=28
 oCMenu.level[0].regClass="clLevel0"
 oCMenu.level[0].overClass="clLevel0over"
 oCMenu.level[0].borderX=1
 oCMenu.level[0].borderY=1
 oCMenu.level[0].borderClass="clLevel0border"
 oCMenu.level[0].offsetX=0
 oCMenu.level[0].offsetY=0
 oCMenu.level[0].rows=0
 oCMenu.level[0].arrow="images/arrow.gif"
 oCMenu.level[0].arrowWidth=11
 oCMenu.level[0].arrowHeight=11
 oCMenu.level[0].align="right"
 oCMenu.level[0].filter="progid:DXImageTransform.Microsoft.Fade(duration=0.8)"
<?php
for ($i=1; $i<SUB_CATEGORIES; $i++) { 
 echo'	
	 oCMenu.level[' . $i . ']=new cm_makeLevel()
	 oCMenu.level[' . $i . '].width=250
	 oCMenu.level[' . $i . '].height=14
	 oCMenu.level[' . $i . '].regClass="clLevel1"
	 oCMenu.level[' . $i . '].overClass="clLevel1over"
	 oCMenu.level[' . $i . '].borderX=1
	 oCMenu.level[' . $i . '].borderY=1
	 oCMenu.level[' . $i . '].align="right"
	 oCMenu.level[' . $i . '].offsetX=0
	 oCMenu.level[' . $i . '].offsetY=0
	 oCMenu.level[' . $i . '].borderClass="clLevel1border"
	 oCMenu.level[' . $i . '].align="right"
	 oCMenu.level[' . $i . '].filter="progid:DXImageTransform.Microsoft.Fade(duration=0.6)"
	 
	 
 ';
} // end for




// ---

function blank_length($text) {
$count = 0;
while(substr($text, 0,12) == "  ") {
$text = substr($text, 12);
$count++;
}
return $count;
}




// ---


function print_menu_line($categories, $depth_size,$depth_parentid, $depth) {

 $size=0;
 for($i=0; $depth_size[$i]!=0; $i++) {
	 $size++;
 }


 echo "oCMenu.makeMenu('";

 if ($depth == 0) {
	 echo "top" . '_'.$depth_size[0] . "','','";
 } else if ($depth == 1) {
	 echo "sub" .'_'.$depth_size[0] .'_'. $depth_size[1] . "','top" .'_'. $depth_size[0] . "','";
 } else { // $depth < 1
	 echo "sub";
	 for ($i=0; $i<$size; $i++) {
   echo ($depth_size[$i] != 0) ? '_'.$depth_size[$i] : '_';
	 }
	 echo "','sub";
	 for ($i=0; $i<$size-1; $i++) {
   echo ($depth_size[$i] != 0) ? '_'.$depth_size[$i] : '_';
	 }
	 echo "','";
 }
 echo $categories['text'];
 if (SHOW_COUNT == 'true') {
	 $products_in_category = tep_count_products_in_category($categories['id']);
	 if ($products_in_category > 0) {
   echo "<FONT COLOR=\"#c0c0c0\">  (" . $products_in_category . ")</FONT>";
	 }
 }
 
       $cPathNew = "cPath=";
 for ($i=0; $i<$size-1; $i++) {
	 $cPathNew .= ($depth_size[$i] != 0) ? $depth_parentid[$i].'_':'';
       }
       $cPathNew .= $categories['id'];
 echo "','" . tep_href_link(FILENAME_DEFAULT,$cPathNew) . "')\n";
}



// ---


$categories = tep_get_categories('');

$height.= 20*count($categories);

$depth=0;
$blank_length;
$depth_size;
$depth_parentid;

for($i=0; $i<count($categories); $i++) {	// don't insert 1st entry ("please choose ...")
 $blank_length = blank_length($categories[$i]['text']);

 if($blank_length == $depth) {
	 $categories[$i]['depth'] = $depth;
	 $depth_size[$depth]++;
 } else if ($blank_length > $depth) {
	 $depth++;
	 $categories[$i]['depth'] = $depth;
	 $depth_size[$depth]++;
 } else if ($blank_length < $depth) {
	 for ($j=$depth; $j>$blank_length; $j--) {
   $depth_size[$j] = 0;
   $depth--;
	 }
	 $categories[$i]['depth'] = $depth;
	 $depth_size[$depth]++;

 }
        $depth_parentid[$categories[$i]['depth']] = $categories[$i]['id'];

 // remove blanks
 $categories[$i]['text'] = substr($categories[$i]['text'], 12*$blank_length);

 print_menu_line($categories[$i], $depth_size,$depth_parentid, $depth);
}



?>	

 // create menu
 oCMenu.construct()

   <!--  Copyright 2002 www.dhtmlcentral.com  --  modified for PHP and osCommerce by Andreas Kothe - www.oddbyte.de	-->

 </SCRIPT>

 

/catalog/includes/footer.php:

 

<?php
/*
 $Id: footer.php,v 1.26 2003/02/10 22:30:54 hpdl Exp $

 osCommerce, Open Source E-Commerce Solutions
 http://www.oscommerce.com

 Copyright (c) 2003 osCommerce

 Released under the GNU General Public License
*/

 require(DIR_WS_INCLUDES . 'counter.php');
?>
<table border="0" width="770" cellspacing="0" cellpadding="0" align="center">
 <tr class="footer">
   <td class="footer">  <?php echo strftime(DATE_FORMAT_LONG); ?>  </td>
   <td align="right" class="footer">  <?php echo $counter_now . ' ' . FOOTER_TEXT_REQUESTS_SINCE . ' ' . $counter_startdate_formatted; ?>  </td>
 </tr>
</table>
<br>
<table border="0" width="100%" cellspacing="0" cellpadding="0">
 <tr>
   <td align="center" class="smallText">
<?php
/*
 The following copyright announcement can only be
 appropriately modified or removed if the layout of
 the site theme has been modified to distinguish
 itself from the default osCommerce-copyrighted
 theme.

 For more information please read the following
 Frequently Asked Questions entry on the osCommerce
 support site:

 http://www.oscommerce.com/community.php/faq,26/q,50

 Please leave this comment intact together with the
 following copyright announcement.
*/

 echo FOOTER_TEXT_BODY
?>
   </td>
 </tr>
</table>
<?php
 if ($banner = tep_banner_exists('dynamic', '468x50')) {
?>
<br>
<table border="0" width="100%" cellspacing="0" cellpadding="0">
 <tr>
   <td align="center"><?php echo tep_display_banner('static', $banner); ?></td>
 </tr>
</table>
<?php
 }
?>

<?php
///////////////////
// [0001] WebMakers.com Added: Center Shop
// This goes at the very end of the footer after all the tables
///////////////////

 if ( CENTER_SHOP_ON == 'on' ) {
  
///////////////////
// [0001] close table used to center
///////////////////
?>
     </td></tr>
   </table>
<?php
   if ( CENTER_SHOP_BACKGROUND_ON == 'on' ) {
    
///////////////////
// [0001] Add color to bottom of screen for large displays - needed especially on notebooks that run at 1600x1200
// close table used for outer bgcolor around the shop
///////////////////
?>
     </td></tr>
     <tr><td height="150"> </td></tr>
   </table>
<?php
   }
 }
///////////////////
// [0001] EOF: WebMakers.com Added: Center Shop
///////////////////
///////////////////
?>
<!-- coolMenu //--><?php require(DIR_WS_INCLUDES . 'coolmenu.php'); ?><!-- coolMenu_eof //-->

 

/catalog/includes/boxes/coolmenu.php:

 

<?php
/* ------------------------------------------------

 coolMenu for osCommerce
 
 author:	Andreas Kothe 
 url:  http://www.oddbyte.de


 Released under the GNU General Public License
 
 ------------------------------------------------ 
*/

?>
<!-- coolMenu //-->

<!-- copyright 2003 Andreas Kothe - www.oddbyte.de // -->

  <TR>
    <TD>

<?php
 $info_box_contents = array();
 $info_box_contents[] = array('align' => 'left',
         'text'  => 'Products'
        );
 new infoBoxHeading($info_box_contents, false, false);

 $info_box_contents = array();
 if (MAX_MANUFACTURERS_LIST < 2) {
$cat_choose = array(array('id' => '', 'text' => BOX_CATEGORIES_CHOOSE));
 } else {
$cat_choose = '';
 }


//the code below ajusts the height of the coolmenu dynamically according to the number of categories in the main menu
$result=tep_db_query("select parent_id from " . TABLE_CATEGORIES . " where parent_id = '0'");
$height.= 10*mysql_num_rows($result);
//experiment with the multiplyer denpending on the size of your menu

$info_box_contents[] = array('text' => '<ilayer id="tlayerm"><div id="topm"><img src="images/trans.gif" width="150" height="' . $height . '"></div></ilayer>');

//src="images/trans.gif" width does not have to be "150" - I use "1"


//  $info_box_contents[] = array('text'  => '
//<img src="images/trans.gif" width="150" height="' . $height . '">');


 new infoBox($info_box_contents);

?>
    </TD>
  </TR>

<!-- coolMenu_eof //-->

Link to comment
Share on other sites

And another thing:

 

the extra code in '/catalog/includes/coolmenu.php'

is also wrong. You have taken it from somewhere else. If you wan't to use that

you have to make your own amendmends to .../boxes/coolmenu.php

 

The findpos code is looking for 'topm' but yuu have inserted 'DivMenu'

Link to comment
Share on other sites

Hi hjp, i' m using "DHTML-Coolmenu Choose by Admin". There is the possibility to integrate this contribution with centershop?

 

I' m going to post the install redme file of this contribution:

 

Edit column_left.php

 

Find:

if ((USE_CACHE == 'true') && empty($SID)) {

echo tep_cache_categories_box();

} else {

include(DIR_WS_BOXES . 'categories.php');

}

 

Replace by:

 

if ((USE_CACHE == 'true') && empty($SID)) {

echo tep_cache_categories_box();

} else {

if ( DISPLAY_DHTML_MENU == 'Dhtml' ) {

include(DIR_WS_BOXES . 'categories_dhtml.php');

} elseif (DISPLAY_DHTML_MENU == 'CoolMenu') {

include(DIR_WS_BOXES . 'coolmenu.php');

} else {

include(DIR_WS_BOXES . 'categories.php');

}

}

 

Now add the following lines to EVERY SINGLE file in your catalog-directory RIGHT AFTER THE <BODY> TAG.

 

<!-- coolMenu //-->

<?php

if (DISPLAY_DHTML_MENU == 'CoolMenu') {

require(DIR_WS_INCLUDES . 'coolmenu.php');

}

?>

<!-- coolMenu_eof //-->

 

Add the following line to EVERY SINGLE file in your catalog-directory between <HEAD> and </HEAD>.

 

<!-- coolMenu //-->

<?php

if (DISPLAY_DHTML_MENU == 'CoolMenu') {

echo '<script LANGUAGE="JavaScript1.2" SRC="includes/coolMenu.js"></SCRIPT>';

}

?>

<!-- coolMenu_eof //-->

 

 

Thank You Hjp.

Link to comment
Share on other sites

I'm not quite sure what it's used for. It says you can choose between 3 menu types:

Default, DHTML, Coolmenu - is that for experimental usage?

 

But I can give you the following answer, not knowing what you really want.

 

If you want to use coolmenu on a centered page, you could use my method.

 

If you want to use DHTML_coolmenu it should be possible to lock that horizontal drop down menu to a DIV. But you would have to make some changes.

 

I think you could include the menu_tpl.js in the footer.php and remove it from header.php.

 

Then you could add the code to find the position of the div somewhere in menu_tpl.js

and replace

MENU_POS['block_top'] = [60, 23, 0, 0];

MENU_POS['block_left'] = [2, 0, 126, 126];

 

with

 

MENU_POS['block_top'] = [pos[0], 23, 0, 0];

MENU_POS['block_left'] = [pos[1], 0, 126, 126];

 

you would have to add or subtract something to pos[0] and pos[1] depending on where you placed you DIV untill you have the rigth position of your dhtml menu.

But you would also have to add a resize check, in order to reposition the menu if the browser has been resized.

Link to comment
Share on other sites

i've installed and configured coolmenu for my site but am having a slight problem with keeping all of the category items in the catalog (coolmenu) box. the box grows (vertically) with the addition of more category items, but only a fraction of what it should (example: add 1 new category item, box background extends half the vertical size of the category text link).

 

i found " $height.= 2.65*count($categories); " in coolmenu.php but all changes i've made to it don't affect the menu. is this not the right value to change? what/where is the value that needs fixed?

Link to comment
Share on other sites

I had similar problems - any infobox leaves a slight gap at the top where the box header is supposed to go, so any algorithm you use for category count is going to be slightly hit and miss as the actual coolmenu does not have any header - I changed the algorithm to an exact pixel height and adjusted manually - it works easier once you have completed your categories, but can be a bit of a pain while you are building the database. Also look out for the people who have their text size set to different settings in IE (try adjusting them yourself from the IE menu under View>Text Size> to see the effect different browser settings can have on your layout. I know this isnt a php solution to the problem, but it works (or did for me anyway!) - hope it helps.

Please note - if I have suggested a contrib above, it doesnt mean it will work! Most of the contribs are not ones I've used, but may be useful for your particular problem....

Have you tried a refined search? Chances are your problem has already been dealt with elsewhere on the forums.....

if (stumped == true) {

return(square_one($start_over)

} else {

$random_query = tep_fetch_answer($forum_query)

}

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