MSADMIN Posted January 21, 2004 Share Posted January 21, 2004 wow i was uploading the coolMenu.php file from the zip folder that i was looking at and in turn editing. I have since umm, edited the one in the working folder, thanks for your intentioned assistance. Dave. Quote Link to comment Share on other sites More sharing options...
hjp Posted January 21, 2004 Share Posted January 21, 2004 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. Quote Link to comment Share on other sites More sharing options...
beardeddone Posted January 21, 2004 Share Posted January 21, 2004 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. Quote Best Regards Link to comment Share on other sites More sharing options...
hjp Posted January 22, 2004 Share Posted January 22, 2004 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. Quote Link to comment Share on other sites More sharing options...
beardeddone Posted January 22, 2004 Share Posted January 22, 2004 hjp, thanks for the reply, the link you gave just takes me to the start of the forum, no help there. Quote Best Regards Link to comment Share on other sites More sharing options...
hjp Posted January 22, 2004 Share Posted January 22, 2004 Sorry Use the link in my post 1 post further up than the one you were using. (just beneath the demo shop link http://cinter.biz Quote Link to comment Share on other sites More sharing options...
beardeddone Posted January 22, 2004 Share Posted January 22, 2004 I have incorporated all the info I have found here and all I get is a blank coolmenu box too Quote Best Regards Link to comment Share on other sites More sharing options...
hjp Posted January 22, 2004 Share Posted January 22, 2004 I need a link Quote Link to comment Share on other sites More sharing options...
hjp Posted January 24, 2004 Share Posted January 24, 2004 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 Quote Link to comment Share on other sites More sharing options...
CallumB Posted January 29, 2004 Share Posted January 29, 2004 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? Quote Link to comment Share on other sites More sharing options...
CallumB Posted January 29, 2004 Share Posted January 29, 2004 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 Quote Link to comment Share on other sites More sharing options...
hjp Posted January 29, 2004 Share Posted January 29, 2004 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. Quote Link to comment Share on other sites More sharing options...
CallumB Posted January 29, 2004 Share Posted January 29, 2004 Hi, I have fixed the problem with it displaying the error in it, now the menu just wont display at all! Quote Link to comment Share on other sites More sharing options...
hjp Posted January 29, 2004 Share Posted January 29, 2004 do you have a link? Quote Link to comment Share on other sites More sharing options...
CallumB Posted January 29, 2004 Share Posted January 29, 2004 no, its not live sorry... but having a look at the source code, the menu is not even being built I can post code if you like Quote Link to comment Share on other sites More sharing options...
hjp Posted January 29, 2004 Share Posted January 29, 2004 (edited) Ok, mail me /catalog/index.php /catalog/includes/coolmenu.php /catalog/includes/footer.php /catalog/includes/boxes/coolmenu.php Edited January 29, 2004 by hjp Quote Link to comment Share on other sites More sharing options...
CallumB Posted January 29, 2004 Share Posted January 29, 2004 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 //--> Quote Link to comment Share on other sites More sharing options...
CallumB Posted January 29, 2004 Share Posted January 29, 2004 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 //--> Quote Link to comment Share on other sites More sharing options...
hjp Posted January 30, 2004 Share Posted January 30, 2004 It does not work because you haven't done what I told : the 'require coolmenu.php' only in footer.php. You have it elsewhere. Quote Link to comment Share on other sites More sharing options...
hjp Posted January 30, 2004 Share Posted January 30, 2004 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' Quote Link to comment Share on other sites More sharing options...
CallumB Posted January 30, 2004 Share Posted January 30, 2004 Thanks mate, all fixed I probably just mashed the code somehow, knowing me ;) Quote Link to comment Share on other sites More sharing options...
tuca Posted January 31, 2004 Share Posted January 31, 2004 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. Quote Link to comment Share on other sites More sharing options...
hjp Posted January 31, 2004 Share Posted January 31, 2004 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. Quote Link to comment Share on other sites More sharing options...
Guest Posted February 5, 2004 Share Posted February 5, 2004 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? Quote Link to comment Share on other sites More sharing options...
niknakgroup Posted February 5, 2004 Share Posted February 5, 2004 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. Quote 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 More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.