pini_pink Posted February 14, 2010 Share Posted February 14, 2010 Hi Sam, I have oscommerce RC2. The quantity box in the admin max values is set to 99 Quote Link to comment Share on other sites More sharing options...
pini_pink Posted February 14, 2010 Share Posted February 14, 2010 o sorry, I had put the quantity box temporarily on false on the live version of the site. Quote Link to comment Share on other sites More sharing options...
spooks Posted February 14, 2010 Author Share Posted February 14, 2010 o sorry, I had put the quantity box temporarily on false on the live version of the site. The only remaining reason I could think would be having more than one instance of Display Product Options in admin, causing your setting to be ignored, or something else setting PRODUCT_LIST_OPTIONS you could check its value by changing (361) $button = '<div align="right" width="100%">' . $quantity_box . '</div>' . ($last ? '' : ' ') . $button; to $button = PRODUCT_LIST_OPTIONS . '<div align="right" width="100%">' . $quantity_box . '</div>' . ($last ? '' : ' ') . $button; you should then get true appear just above the buy now button, anything else & its as I said b4 Quote Sam Remember, What you think I ment may not be what I thought I ment when I said it. Contributions: Auto Backup your Database, Easy way Multi Images with Fancy Pop-ups, Easy way Products in columns with multi buy etc etc Disable any Category or Product, Easy way Secure & Improve your account pages et al. Link to comment Share on other sites More sharing options...
dartecha Posted February 15, 2010 Share Posted February 15, 2010 It will do that, all details are in the doc, ie: Features Products in columns with thumbnails in a distributed display or a strict grid mode, you can set how many columns in admin. Products in a variety of list modes including a block mode (like new products display) where you control whats in what column. Rounded Borders: Product thumbnails can have rounded borders. Manufacturer: The option of manufacturer headings and if wished a manufacturer short description. Drop down boxes for display sorting. Drop down boxes to set number of products to show per page. Listing mode switch, allows your visitors to switch between two modes. Quantity input boxes with incremental buttons. Drop Down Quantity Box: Option of a drop down for the quantity box instead of a input box. Checkboxes: Option to show a checkbox field in place of other quantity boxes, will only show for multi add to cart. A multi buy option (with attribute support) to allow visitors to purchase multiple products from the listing in mutliple quantities at once. Global Headings: List mode global headings, you can have the product name & price on its own line above all other fields. Tool tip images: Product images can have a tool tip mouseover zoom. Tool tip info boxs: Any text field can have tool tip info box (set in your language file). Set Column Contents: Set contents of center & rightmost columns in any list block mode. Product attributes (options) can be included in the listing. Review Rating: The option of showing the products average review rating within the listing. Product Description: A truncated version of the product description can be included, you set how big. A short decription can be included if you add the Short Description add-on (http://addons.oscommerce.com/info/3123) Supports Additional Images (http://addons.oscommerce.com/info/1032) Supports Easy Graphic Borders if you want pretty borders(http://addons.oscommerce.com/info/1702) Supports Products Extra Fields (http://addons.oscommerce.com/info/2202) Supports SaleMaker (http://addons.oscommerce.com/info/1340) CSS control of most aspects of any element displayed. Control over the inclusion of category paths in product links. Control of heading displays. Hi Spooks I am stuck with my tooltip mouseover zoom image coming up behind the thumbnail image of the product below instead of on top. I think it's not finding the javascript code. I have set up the product listing page to display in rows and have placed the tooltip javascript inside this page. I've modified the product listing file as recommended by the tooltips instructions, however the piece of code I was tryig to match it to was not the same. Recommended changes are as follows. Replace: $lc_text = ' <a href="' . tep_href_link(FILENAME_PRODUCT_INFO, ($cPath ? 'cPath=' . $cPath . '&' : '') . 'products_id=' . $listing['products_id']) . '">' . tep_image(DIR_WS_IMAGES . $listing['products_image'], $listing['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . '</a> '; With: $lc_text = ' <a class="image" href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $listing['products_id']) . '" onmouseover="doTooltip(event,\'images/' .$listing['products_mediumimage'].'\')" onmouseout="hideTip()">' . tep_image(DIR_WS_IMAGES . $listing['products_image'], $listing['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . '</a> '; My code modified looks like this. function list_row ($listing, $column_list) { global $rows, $gborders, $list_box_contents, $cPath, $cat_path, $head_title; $list_box_contents[][] = array('text' => '<br />'); if (!$rows && $gborders) $list_box_contents = array(); $rows++; $man_id = (tep_not_null($_GET['manufacturers_id']) ? $_GET['manufacturers_id'] : ''); $link = '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $listing['products_id'] . '" onmouseover="doTooltip(event,\'images/' . $listing['products_mediumimage'].'\')" onmouseout="hideTip()">' . tep_image(DIR_WS_IMAGES . $listing['products_image'], $listing['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . ($man_id ? '&manufacturers_id='.$man_id : ($cPath && $cat_path ? '&cPath=' . $cPath : '')) ) . '"' . ($man_id || ($cat_path && $cat_path) ? ' rel="nofollow"' : '') . '>'; if ($head_title) { $list_box_contents[][] = array('align' => 'left', 'params' => 'colspan="'.sizeof($column_list).'" class="productListing-title"', 'text' => $link . '<b>' . $listing['products_name'] . '</b></a>');} $list_box_contents[] = list_box_data($listing, $column_list, $link); $list_box_contents[][] = array('align' => 'center', 'params' => 'class="separator" colspan="'.sizeof($column_list).'"', 'text' => '<br />'); return true; } Can you help...please. Quote Link to comment Share on other sites More sharing options...
pini_pink Posted February 15, 2010 Share Posted February 15, 2010 The only remaining reason I could think would be having more than one instance of Display Product Options in admin, causing your setting to be ignored, or something else setting PRODUCT_LIST_OPTIONS you could check its value by changing (361) $button = '<div align="right" width="100%">' . $quantity_box . '</div>' . ($last ? '' : ' ') . $button; to $button = PRODUCT_LIST_OPTIONS . '<div align="right" width="100%">' . $quantity_box . '</div>' . ($last ? '' : ' ') . $button; you should then get true appear just above the buy now button, anything else & its as I said b4 Hi Sam, I have tried this and now it shows the number of the value of the first display product options in the configuration table. So 6 instead of True. Regards, Evelien Quote Link to comment Share on other sites More sharing options...
spooks Posted February 15, 2010 Author Share Posted February 15, 2010 oops, just spotted that's in the sql!! How did that happen! Sorry, apply the following sql with phpmyadmin should fix the issue. DELETE FROM configuration WHERE configuration_key = 'PRODUCT_LIST_OPTIONS'; INSERT INTO `configuration` (`configuration_title`, `configuration_key`, `configuration_value`, `configuration_description`, `configuration_group_id`, `sort_order`, `last_modified`, `date_added`, `use_function`, `set_function`) VALUES ('Display Product Options', 'PRODUCT_LIST_OPTIONS', 'true', 'Do you want to display product options within the product listing.\r\nDisplay will be adjacent to buy now button.', 8, 9, NULL, now(), NULL, 'tep_cfg_select_option(array(\'true\', \'false\'),'); Quote Sam Remember, What you think I ment may not be what I thought I ment when I said it. Contributions: Auto Backup your Database, Easy way Multi Images with Fancy Pop-ups, Easy way Products in columns with multi buy etc etc Disable any Category or Product, Easy way Secure & Improve your account pages et al. Link to comment Share on other sites More sharing options...
pini_pink Posted February 15, 2010 Share Posted February 15, 2010 oops, just spotted that's in the sql!! How did that happen! Sorry, apply the following sql with phpmyadmin should fix the issue. DELETE FROM configuration WHERE configuration_key = 'PRODUCT_LIST_OPTIONS'; INSERT INTO `configuration` (`configuration_title`, `configuration_key`, `configuration_value`, `configuration_description`, `configuration_group_id`, `sort_order`, `last_modified`, `date_added`, `use_function`, `set_function`) VALUES ('Display Product Options', 'PRODUCT_LIST_OPTIONS', 'true', 'Do you want to display product options within the product listing.\r\nDisplay will be adjacent to buy now button.', 8, 9, NULL, now(), NULL, 'tep_cfg_select_option(array(\'true\', \'false\'),'); Hi Sam, Briliant! That did the trick. Thanks for your help. Quote Link to comment Share on other sites More sharing options...
spooks Posted February 15, 2010 Author Share Posted February 15, 2010 I am stuck with my tooltip mouseover zoom image coming up behind the thumbnail image of the product below instead of on top. I think it's not finding the javascript code. This already includes a tooltip mouseover using pure css, no-javascript needed, just follow the instructions in the doc!! ie8 can have an issue still: edit your index.php & advanced search results.php & any others that call the listing: immediatly after the <head>add: <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" /> Quote Sam Remember, What you think I ment may not be what I thought I ment when I said it. Contributions: Auto Backup your Database, Easy way Multi Images with Fancy Pop-ups, Easy way Products in columns with multi buy etc etc Disable any Category or Product, Easy way Secure & Improve your account pages et al. Link to comment Share on other sites More sharing options...
fan4chevy Posted February 15, 2010 Share Posted February 15, 2010 Removing the Buy Now button on the listing page? I am finding that it is redundant on my page to have the buy now and the details button next to each other as they go to the same page -- product info. Without messing the code up, can you direct me to the lines of code that need to be removed to just remove buy now and leave only the other detail button? Quote Link to comment Share on other sites More sharing options...
spooks Posted February 15, 2010 Author Share Posted February 15, 2010 details button only ??? Standard option, please read the doc!!! Quote Sam Remember, What you think I ment may not be what I thought I ment when I said it. Contributions: Auto Backup your Database, Easy way Multi Images with Fancy Pop-ups, Easy way Products in columns with multi buy etc etc Disable any Category or Product, Easy way Secure & Improve your account pages et al. Link to comment Share on other sites More sharing options...
fan4chevy Posted February 16, 2010 Share Posted February 16, 2010 ??? Standard option, please read the doc!!! Sorry for the post. I realize now that there is a different function to the listing detail button and buy now. I did not realize it because I had options so either way it went to product info whereas with no options it does not. Great contrib just learning to use it better. Charles Quote Link to comment Share on other sites More sharing options...
dartecha Posted February 16, 2010 Share Posted February 16, 2010 This already includes a tooltip mouseover using pure css, no-javascript needed, just follow the instructions in the doc!! ie8 can have an issue still: edit your index.php & advanced search results.php & any others that call the listing: immediatly after the <head>add: <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" /> Thanks for your response and advice Sam This didn't work. I think I have some css issues, however I may have to revisit this issue at a later date. I have a more pressing issue which I would like to ask your advice on. I am trying to get the extra fields module to show the products options eg. the products have attributes as a range of colours in some cases. I have a multi-product option activated. I would like to have the customer be able to see the product then select an attribute and then add multiples to their cart. Ultimately I would like to be able to include another field that gives the customer the option of buying "5 for a certain price" as well. How can I make this work? I would appreciate any input you can give me. Yours "Becoming Desperate" :'( Here is the relevant file... <?php /* $Id: product_listing.php, v 2.2 2009/11/25 22:49:59 hpdl Exp $ osCommerce, Open Source E-Commerce Solutions http://www.oscommerce.com Copyright (c) 2003 osCommerce Released under the GNU General Public License */ $graphic_bord = 'no'; // set to 'yes' if you have older 'graphic borders' and not 'easy graphic borders'. $cat_path = false; // set to true to include category paths in urls $no_drop = true; // set to true to remove resuls/page & sort order drop downs $set_width = true; // set to false to allow columns to find their own widths in list mode $ttip = true; // set to true to display tool tip pics on hover $ttip_width = 320; // width of tooltip image on hover $show_extra_fields = true; // set to true if you have products_extra_fields installed & you want to display the fields in the listing $head_title = true; // Set to true so each listing entry will have its own product TITLE header (list modes only) $multi_add = true; // Set to true to enable adding mutiple items to the cart at once $global_add = 'both'; // If $multi_add = true, set position of buy button, top, bottom or both (ie the ends of the listing) $qty_drop = false;// Set to true to have a drop down for quantity box instead of a input box $last_size = 2;// set the size of the last column in block mode if (tep_not_null($HTTP_GET_VARS['sort'])) $_GET['sort'] = $HTTP_GET_VARS['sort']; $max_results = (tep_not_null($_GET['max']) ? $_GET['max'] : MAX_DISPLAY_SEARCH_RESULTS); if (PRODUCTS_PER_ROW == 'PRODUCTS_PER_ROW' || PRODUCTS_PER_ROW == 0 || LISTING_SWITCH == 'LISTING_SWITCH') { $to = 'Setup Error!\nPlease ensure you have run the\nProduct Listing Setup File.' ; print "<script>alert('$to');</script>"; } // sort order array if ($_GET['sort'] == '0d') $sort_array[] = array('id' => 0 . 'd', 'text' => DATE_ORDER); for ($i=0, $n=sizeof($column_list); $i<$n; $i++) { switch ($column_list[$i]) { case 'PRODUCT_LIST_MODEL': $sort_array[] = array('id' => $i+1 . 'a', 'text' => TABLE_HEADING_MODEL . APHA_ORDER); break; case 'PRODUCT_LIST_NAME': $sort_array[] = array('id' => $i+1 . 'a', 'text' => TABLE_HEADING_PRODUCTS . APHA_ORDER); break; case 'PRODUCT_LIST_MANUFACTURER': $sort_array[] = array('id' => $i+1 . 'a', 'text' => TABLE_HEADING_MANUFACTURER . APHA_ORDER); break; case 'PRODUCT_LIST_QUANTITY': $sort_array[] = array('id' => $i+1 . 'a', 'text' => TABLE_HEADING_QUANTITY . NUM_ORDER); break; case 'PRODUCT_LIST_WEIGHT': $sort_array[] = array('id' => $i+1 . 'a', 'text' => TABLE_HEADING_WEIGHT . NUM_ORDER); break; case 'PRODUCT_LIST_PRICE': $sort_array[] = array('id' => $i+1 . 'a', 'text' => TABLE_HEADING_PRICE . NUM_ORDER); break; } } for ($i=0, $n=sizeof($column_list); $i<$n; $i++) { switch ($column_list[$i]) { case 'PRODUCT_LIST_MODEL': $sort_array[] = array('id' => $i+1 . 'd', 'text' => TABLE_HEADING_MODEL . REVERSE_ALPHA_ORDER); break; case 'PRODUCT_LIST_NAME': $sort_array[] = array('id' => $i+1 . 'd', 'text' => TABLE_HEADING_PRODUCTS . REVERSE_ALPHA_ORDER); break; case 'PRODUCT_LIST_MANUFACTURER': $sort_array[] = array('id' => $i+1 . 'd', 'text' => TABLE_HEADING_MANUFACTURER . REVERSE_ALPHA_ORDER); break; case 'PRODUCT_LIST_QUANTITY': $sort_array[] = array('id' => $i+1 . 'd', 'text' => TABLE_HEADING_QUANTITY . REVERSE_NUM_ORDER); break; case 'PRODUCT_LIST_WEIGHT': $sort_array[] = array('id' => $i+1 . 'd', 'text' => TABLE_HEADING_WEIGHT . REVERSE_NUM_ORDER); break; case 'PRODUCT_LIST_PRICE': $sort_array[] = array('id' => $i+1 . 'd', 'text' => TABLE_HEADING_PRICE . REVERSE_NUM_ORDER); break; } } // Max Results Array for ($i=1; $i<10; $i++) { $max_display[] = array('id' => MAX_DISPLAY_SEARCH_RESULTS * $i, 'text' => MAX_DISPLAY_SEARCH_RESULTS * $i); } $max_display[] = array('id' => 1000000, 'text' => 'Show All'); // store GET vars $get_vars = ''; reset($_GET); while (list($key, $value) = each($_GET)) { if ( ($key != 'sort') && ($key != 'max') && ($key != tep_session_name()) && ($key != 'x') && ($key != 'y') ) { $get_vars .= tep_draw_hidden_field($key, $value); } } $top_nav = ((PREV_NEXT_BAR_LOCATION == '1') || (PREV_NEXT_BAR_LOCATION == '3')); $base_nav = ((PREV_NEXT_BAR_LOCATION == '2') || (PREV_NEXT_BAR_LOCATION == '3')); $listing_split = new splitPageResults($listing_sql, $max_results, 'p.products_id'); $data_ok = ($listing_split->number_of_rows > 0); $gbutton = ($data_ok ? tep_image_submit('button_multi_in_cart.gif', MULTI_ADD_ALT) : '') . '</div>'; $page_nav = '<table border="0" width="100%" cellspacing="0" cellpadding="2"><tr><td class="smallText">' . $listing_split->display_count(TEXT_DISPLAY_NUMBER_OF_PRODUCTS) . '</td><td class="smallText" align="right">' . TEXT_RESULT_PAGE . ' ' . $listing_split->display_links(MAX_DISPLAY_PAGE_LINKS, tep_get_all_get_params(array('page', 'info', 'x', 'y'))) . '</td></tr></table>'; $drop = $no_drop ? '' : '<table border="0" width="100%" cellspacing="0" cellpadding="2" class="drop"><tr><td class="smallText">Results/Page: '. tep_draw_form('maxdisplay', tep_href_link(basename($PHP_SELF), '', $request_type, false), 'get') . $get_vars . (isset($_GET['sort']) ? tep_draw_hidden_field('sort', $_GET['sort']) : '') . tep_draw_pull_down_menu('max', $max_display, $_GET['max'], 'onChange="this.form.submit();"') . tep_hide_session_id().'</form></td><td class="smallText" align="right">Sort Order: ' . tep_draw_form('sorting', tep_href_link(basename($PHP_SELF), '', $request_type, false), 'get') . $get_vars . (isset($_GET['max']) ? tep_draw_hidden_field('max', $_GET['max']) : '') . tep_draw_pull_down_menu('sort', $sort_array, $_GET['sort'], 'onChange="this.form.submit();"') . tep_hide_session_id().'</form></td></tr></table>'; if ( ($listing_split->number_of_rows > (int)$max_results) && $top_nav ) echo $page_nav; if ($top_nav && $data_ok) echo '<div id="drop1">' . $drop . '</div>'; if ($multi_add) { echo tep_draw_form('cart_quantity', tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('action','products_id')) . 'action=add_multi')); if ($global_add != 'bottom') echo '<div class="multi_buy_now" id="gbutton1">' . $gbutton; } if (($show_ratings || PRODUCT_LIST_DESCRIPTION ) && $data_ok) { $listing_query = tep_db_query($listing_split->sql_query); while ($products = tep_db_fetch_array($listing_query)) $id_array[] = $products['products_id']; $pid_string = implode(',', array_unique($id_array)); } if (PRODUCT_LIST_DESCRIPTION && $data_ok) { $product_query = tep_db_query("select products_id, products_description from " . TABLE_PRODUCTS_DESCRIPTION . " where products_id in (" . $pid_string . ") and language_id = '" . (int)$languages_id . "'"); while ($products = tep_db_fetch_array($product_query)) { $t_desc[$products['products_id']] = substr(strip_tags($products['products_description']), 0, PRODUCT_LIST_DESCRIPTION_MAX_LENGTH); } } if ($show_ratings && $data_ok) { $rating_query = tep_db_query("select count(*) as count, products_id, sum(reviews_rating) as total from " . TABLE_REVIEWS . " where products_id in (" . $pid_string . ") group by products_id"); while ($rating = tep_db_fetch_array($rating_query)) { $review[$rating['products_id']] = ceil($rating['total'] / $rating['count']); } } function tep_get_category_name($category_id, $language_id) { $category_query = tep_db_query("select categories_name from " . TABLE_CATEGORIES_DESCRIPTION . " where categories_id = '" . (int)$category_id . "' and language_id = '" . (int)$language_id . "'"); $category = tep_db_fetch_array($category_query); return $category['categories_name']; } function tep_get_manufacturer_name($manufacturer_id) { $manufacturers_query = tep_db_query("select manufacturers_name from " . TABLE_MANUFACTURERS . " where manufacturers_id = '" . (int)$manufacturer_id . "'"); $manufacturer = tep_db_fetch_array($manufacturers_query); return $manufacturer['manufacturers_name']; } function extra_fields($products_id) { global $languages_id; $extra_fields_text = ''; if (tep_not_null(TABLE_PRODUCTS_EXTRA_FIELDS) && LISTING_EXTRA_FIELDS == 'true') { $extra_fields_query = tep_db_query("SELECT pef.products_extra_fields_name as name, ptf.products_extra_fields_value as value FROM ". TABLE_PRODUCTS_EXTRA_FIELDS ." pef, ". TABLE_PRODUCTS_TO_PRODUCTS_EXTRA_FIELDS ." ptf WHERE ptf.products_extra_fields_id=pef.products_extra_fields_id and ptf.products_id=". (int) $products_id ." and (pef.languages_id = '0' or pef.languages_id = '".(int)$languages_id."') and ptf.products_extra_fields_value <> '' and pef.products_extra_fields_status ORDER BY pef.products_extra_fields_order"); while ($extra_fields = tep_db_fetch_array($extra_fields_query)) { $extra_fields_text .= '<tr><td class="smallText"><span class="xtra-field-name">' . $extra_fields['name'] . ': </span><span class="xtra-field-value">' . $extra_fields['value'] . '</span></td></tr>'; } } return $extra_fields_text; } function product_description($product_id,$link,$thumb=false) { global $head_title, $t_desc, $review; if ($review[$product_id]) $rating = '<span class="smallText"><br />' . sprintf(TEXT_AVERAGE_REVIEW, tep_image(DIR_WS_IMAGES . 'stars_' . $review[$product_id] . '.gif',sprintf(TEXT_AVERAGE_REVIEW,$review[$product_id]))) . '</span>'; if (PRODUCT_LIST_DESCRIPTION) { return ($head_title || $thumb ? '' : '<br />') . '<span class="productListing-short">' . $t_desc[$product_id] . $rating; } else { return $rating; } } function product_price ($listing,$last=false) { global $sale; $currencies = new currencies(); $p_price = $listing['products_price']; $price = (function_exists(display_short_price)) ? $currencies->display_short_price($p_price, tep_get_tax_rate($listing['products_tax_class_id'])) : $currencies->display_price($p_price, tep_get_tax_rate($listing['products_tax_class_id'])); if ($sale && $new_price = tep_get_products_special_price($listing['products_id'])) { $price = '<s>' . $price . '</s>' . ($last ? '<br />' : ' ') . '<span class="productSpecialPrice">' . $currencies->display_price($new_price, tep_get_tax_rate($listing['products_tax_class_id'])) . '</span>'; } elseif (tep_not_null($listing['specials_new_products_price'])) { $price = '<s>' . $price . '</s>' . ($last ? '<br />' : ' ') . '<span class="productSpecialPrice">' . $currencies->display_price($listing['specials_new_products_price'], tep_get_tax_rate($listing['products_tax_class_id'])) . '</span>'; } $price = ($p_price > 0 ? '' . $price . '' : '' . TEXT_POA); if (function_exists(tep_get_att_price)) $price .= (tep_get_att_price($listing['products_id']) > 0 ? '+' : '') ; return '<span class="productListing-list-price">' . $price . '</span>'; } function list_row ($listing, $column_list) { global $rows, $gborders, $list_box_contents, $cPath, $cat_path, $head_title; $list_box_contents[][] = array('text' => '<br />'); if (!$rows && $gborders) $list_box_contents = array(); $rows++; $man_id = (tep_not_null($_GET['manufacturers_id']) ? $_GET['manufacturers_id'] : ''); $link = '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $listing['products_id'] . ($man_id ? '&manufacturers_id='.$man_id : ($cPath && $cat_path ? '&cPath=' . $cPath : '')) ) . '"' . ($man_id || ($cat_path && $cat_path) ? ' rel="nofollow"' : '') . '>'; if ($head_title) { $list_box_contents[][] = array('align' => 'left', 'params' => 'colspan="'.sizeof($column_list).'" class="productListing-title"', 'text' => $link . '<b>' . $listing['products_name'] . '</b></a>');} $list_box_contents[] = list_box_data($listing, $column_list, $link); $list_box_contents[][] = array('align' => 'center', 'params' => 'class="separator" colspan="'.sizeof($column_list).'"', 'text' => '<br />'); return true; } ?> <script type="text/javascript" language="javascript"> <!-- function changeValue(inObject,delta) { var myVal = parseInt(inObject.value); isNaN(myVal) ? myVal = delta : myVal = myVal + delta; inObject.value = Math.max(myVal,0); return; } // --> </script> <?php function quantity ($products_id) { global $multi_add, $qty_drop, $thumbnail_view; if (PRODUCT_LIST_QUANTITY_BOX == 'true' && strstr(LISTING_BUTTON, 'buy now')) { if (tep_has_product_attributes($products_id) && PRODUCT_LIST_OPTIONS != 'true') return false; if (!$qty_drop) return '<table cellspacing="0" cellpadding="2"><tr><td class="quantity" >' . QUANTITY . tep_draw_input_field('cart_quantity' . ($multi_add ? '[]' : '') , ($multi_add ? '0' : '1') , 'maxlength="5" size="2" id="qid'.$products_id.'"') . ($multi_add ? tep_draw_hidden_field('products_id[]', $products_id) : '') . '</td><td><a href="javascript:changeValue(document.getElementById(\'qid'.$products_id.'\'),1);">' . tep_image_button('btn_up.gif',MORE) . '</a><br><a href="javascript:changeValue(document.getElementById(\'qid'.$products_id.'\'),-1);">' . tep_image_button('btn_down.gif',LESS) . '</a></td></tr></table>'; else $qty_array = array(); $pstock = min(tep_get_products_stock($products_id),MAX_QTY_IN_CART); for ($i=0; $i<=$pstock; $i++) { $qty_array[]=array('id' => $i, 'text' => $i); } return ($pstock ? '<div class="quantity" align="' . (strstr($thumbnail_view, 'thumbnails') ? 'center' : 'right' ) .'">' . QUANTITY . tep_draw_pull_down_menu('cart_quantity'.($multi_add ? '[]' : ''),$qty_array,($multi_add ? 0 : 1)) . '<br />' . ($multi_add ? tep_draw_hidden_field('products_id[]', $products_id) : '') . '</div>' : false); } else { return false; } } function list_box_head($column_list) { global $set_width; for ($col=0, $n=sizeof($column_list); $col<$n; $col++) { switch ($column_list[$col]) { case 'PRODUCT_LIST_MODEL': $lc_text = TABLE_HEADING_MODEL; $lc_align = 'center'; break; case 'PRODUCT_LIST_NAME': $lc_text = TABLE_HEADING_PRODUCTS; $lc_align = ''; break; case 'PRODUCT_LIST_MANUFACTURER': $lc_text = TABLE_HEADING_MANUFACTURER; $lc_align = 'center'; break; case 'PRODUCT_LIST_PRICE': $lc_text = TABLE_HEADING_PRICE; $lc_align = 'right'; break; case 'PRODUCT_LIST_PRICE_EX': $lc_text = TABLE_HEADING_PRICE_EX; $lc_align = 'center'; break; case 'PRODUCT_LIST_QUANTITY': $lc_text = TABLE_HEADING_QUANTITY; $lc_align = 'right'; break; case 'PRODUCT_LIST_WEIGHT': $lc_text = TABLE_HEADING_WEIGHT; $lc_align = 'right'; break; case 'PRODUCT_LIST_IMAGE': $lc_text = TABLE_HEADING_IMAGE; $lc_align = 'center'; break; case 'PRODUCT_LIST_BUY_NOW': $lc_text = (PRODUCT_LIST_OPTIONS == 'true' ? 'Product Options</td><td align="center" class="productListing-heading">' : '') . (strstr(LISTING_BUTTON, 'buy now')? TABLE_HEADING_BUY_NOW : TABLE_HEADING_DETAIL); $lc_align = 'center'; break; } if ( ($column_list[$col] != 'PRODUCT_LIST_BUY_NOW') && ($column_list[$col] != 'PRODUCT_LIST_IMAGE') ) { $lc_text = tep_create_sort_heading($_GET['sort'], $col+1, $lc_text); } $list_box_contents[] = array('align' => $lc_align, 'params' => 'class="productListing-heading" ' . ($set_width ? 'width="'.(int)(100/sizeof($column_list)) . '%"' : ''), 'text' => ' ' . $lc_text . ' '); } return ($list_box_contents); } // function list_head end function list_box_data($listing, $column_list, $link) { global $PHP_SELF, $ttip, $ttip_width, $head_title, $rows, $set_width, $multi_add, $last_size; $currencies = new currencies(); $alt_text = $listing['products_name']; $image = (file_exists(DIR_WS_IMAGES . $listing['products_image']) ? $listing['products_image'] : 'no-image.jpg'); $image = '<span class="ttip">' . $link . tep_image(DIR_WS_IMAGES . $image, $alt_text, PRODUCT_IMAGE_WIDTH, PRODUCT_IMAGE_HEIGHT) . ($ttip ? tep_image(DIR_WS_IMAGES . $image, $alt_text, $ttip_width, '', 'class="large"') : '' ) . '</a></span>'; $name = (!$head_title ? $link.'<b>' . $listing['products_name'] . '</b></a>' : ' '); if (LISTING_BUTTON != 'none' && PRODUCT_LIST_BUY_NOW) { $buypic = (LISTING_BUTTON == 'buy now' ? 'button_in_cart.gif' : 'button_buy_now.gif'); $quantity_box = quantity ($listing['products_id']); $form = ($multi_add ? '' : tep_draw_form('cart_quantity_' . $rows, tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('action','products_id')) . 'action=add_product'))); $buytable = '<table class="buytable" border="0" width="100%" cellspacing="0" cellpadding="2"><tr><td valign="bottom" class="productListing-data">'; $buytableend = '</td></tr></table>'. ($multi_add ? '' : '</form>'); $detail = $link . tep_image_button((strstr(LISTING_BUTTON, '&') || (strstr(LISTING_BUTTON, 'small')) ? 'button_details_small.gif' : 'button_details.gif'), IMAGE_BUTTON_DETAILS, 'class="thm_buy_now"') . '</a> '; $add_cart = ($multi_add ? ($quantity_box && PRODUCT_LIST_QUANTITY_BOX == 'true' ? '' : $detail) : tep_draw_hidden_field('products_id', $listing['products_id']) . tep_image_submit($buypic, IMAGE_BUTTON_BUY_NOW, 'class="thm_buy_now"')); $button = (LISTING_BUTTON == 'buy now & details' ? ($add_cart == $detail ? $add_cart : $add_cart . ' <span class="buy_now">|</span> ' . $detail ) : (strstr(LISTING_BUTTON, 'buy now') ? $add_cart : $detail )); if ($listing['products_price'] == 0 || (isset($listing['products_quantity']) && !$listing['products_quantity'])) { $button = $detail; $quantity_box = '';}//'<span class="buy_now"> </span>'. } $list_box_temp = array('params' => 'class="list-block"'); if (!strstr(PRODUCT_THUMBNAIL_VIEW, 'block')) { for ($col=0, $n=sizeof($column_list); $col<$n; $col++) { $lc_align = ''; $params = 'class="productListing-data" ' . ($set_width ? 'width="'.(int)(100/sizeof($column_list)) . '%"' : '') . ' valign="top" '; switch ($column_list[$col]) { case 'PRODUCT_LIST_MODEL': $lc_align = 'center'; $lc_text = ' ' . $listing['products_model'] . ' '; break; case 'PRODUCT_LIST_NAME': $lc_align = ''; $lc_text = $name . ($listing['short_desc'] && (PRODUCT_SHORT_DESC == 'true') ? '<br /><span class="short">' . $listing['short_desc'] . '</span>' : '') . product_description($listing['products_id'],$link); $extra_fields_text = extra_fields($listing['products_id']); if ($extra_fields_text) $lc_text .= '<br /><table>' . $extra_fields_text . '</table>'; break; case 'PRODUCT_LIST_MANUFACTURER': $lc_align = 'center'; $lc_text = ' <a href="' . tep_href_link(FILENAME_DEFAULT, 'manufacturers_id=' . $listing['manufacturers_id']) . '">' . $listing['manufacturers_name'] . '</a> '; break; case 'PRODUCT_LIST_PRICE': $lc_align = 'right'; $lc_text = '<span class="productListing-list-price">'; $price = (function_exists(display_short_price)) ? $currencies->display_short_price($listing['products_price'], tep_get_tax_rate($listing['products_tax_class_id'])) : $currencies->display_price($listing['products_price'], tep_get_tax_rate($listing['products_tax_class_id'])); if (tep_not_null($listing['specials_new_products_price'])) { $lc_text .= '<s>' . $currencies->display_price($listing['products_price'], tep_get_tax_rate($listing['products_tax_class_id'])) . '</s> <span class="productSpecialPrice">' . $currencies->display_price($listing['specials_new_products_price'], tep_get_tax_rate($listing['products_tax_class_id'])) . '</span><BR><span class="productSpecialPriceEX">(' . $currencies->display_price_ex($listing['specials_new_products_price'], tep_get_tax_rate($listing['products_tax_class_id'])) . ' ex.vat)</span><br>'; } else { $lc_text .= ($listing['products_price'] > 0 ? '' . $price . ' ' : ' ' . TEXT_POA). ' <br><span class="productPriceEX">(' . $currencies->display_price_ex($listing['products_price'], tep_get_tax_rate($listing['products_tax_class_id'])) . ' ex.vat)</span><br>'; if (function_exists(tep_get_att_price)) $lc_text .= (tep_get_att_price($listing['products_id']) > 0 ? '+' : ' ') ; } $lc_text .= '</span>'; break; case 'PRODUCT_LIST_QUANTITY': $lc_align = 'right'; $lc_text = ' ' . $listing['products_quantity'] . ' '; break; case 'PRODUCT_LIST_WEIGHT': $lc_align = 'right'; $lc_text = ' ' . $listing['products_weight'] . ' '; break; case 'PRODUCT_LIST_IMAGE': $lc_align = 'center'; $lc_text = $image; break; case 'PRODUCT_LIST_BUY_NOW': if (PRODUCT_LIST_OPTIONS == 'true' ) $params = 'class="productListing-data" width="'.(int)((100/sizeof($column_list))*2).'%" colspan="2"'; $lc_align = 'center'; $button = $quantity_box . $button; $lc_text = $form . $buytable . (PRODUCT_LIST_OPTIONS == 'true' ? attribute_drop($listing['products_id'],$listing['products_tax_class_id']) . '</td><td align="center" class="productListing-data">' . $button : $button) . $buytableend; break; } $list_box_temp[] = array('align' => $lc_align, 'params' => $params, 'text' => $lc_text); } } else { if (PRODUCT_LIST_IMAGE) { $list_box_temp[] = array('align' => 'center', 'params' => 'class="productListing-data" ', 'text' => $image); } $display ='';$text = ''; for ($col=0, $n=sizeof($column_list); $col<$n; $col++) { $last = (($col + BLOCK_LAST_SIZE + 1) > $n); $text .= ($text ? '<br />' : ''); switch ($column_list[$col]) { case 'PRODUCT_LIST_MODEL': $text .= $listing['products_model']; if (!$last) {$display .= $text . '<br />'; $text = '';} break; case 'PRODUCT_LIST_NAME': $text .= $name . ($listing['short_desc'] && (PRODUCT_SHORT_DESC == 'true') ? '<br /><span class="short">' . $listing['short_desc'] . '</span>' : '') . product_description($listing['products_id'],$link); $extra_fields_text = extra_fields($listing['products_id']); if ($extra_fields_text) $text .= '<br /><table>' . $extra_fields_text . '</table>'; if (!$last) {$display .= $text . '<br />'; $text = '';} break; case 'PRODUCT_LIST_MANUFACTURER': $text .= '<a href="' . tep_href_link(FILENAME_DEFAULT, 'manufacturers_id=' . $listing['manufacturers_id']) . '">' . $listing['manufacturers_name'] . '</a>'; if (!$last) {$display .= $text . '<br />'; $text = '';} break; case 'PRODUCT_LIST_PRICE': $text .= ($last ? '' : '<br />Price: ') . '<span class="productListing-list-price">'; $price = (function_exists(display_short_price)) ? $currencies->display_short_price($listing['products_price'], tep_get_tax_rate($listing['products_tax_class_id'])) : $currencies->display_price($listing['products_price'], tep_get_tax_rate($listing['products_tax_class_id'])); if (tep_not_null($listing['specials_new_products_price'])) { $text .= '<s>' . $currencies->display_price($listing['products_price'], tep_get_tax_rate($listing['products_tax_class_id'])) . '</s>' . ($last ? '<br />' : ' ') . '<span class="productSpecialPrice">' . $currencies->display_price($listing['specials_new_products_price'], tep_get_tax_rate($listing['products_tax_class_id'])) . '</span>'; } else { $text .= ($listing['products_price'] > 0 ? '' . $price : '' . TEXT_POA); if (function_exists(tep_get_att_price)) $display .= (tep_get_att_price($listing['products_id']) > 0 ? '+' : ' ') ; } $text .= '</span>' . ($last ? '' : '<br />'); if (!$last) {$display .= $text . '<br />'; $text = '';} break; case 'PRODUCT_LIST_QUANTITY': $text .= ($listing['products_quantity'] ? 'Stock = ' . $listing['products_quantity'] : 'Out of Stock'); if (!$last) {$display .= $text . '<br />'; $text = '';} break; case 'PRODUCT_LIST_WEIGHT': $text .= 'Weight = ' . $listing['products_weight'].WEIGHT_ABRV . ($last ? '' : '<br />'); if (!$last) {$display .= $text . '<br />'; $text = '';} break; case 'PRODUCT_LIST_BUY_NOW': $button = '<div align="right" width="100%">' . $quantity_box . '</div>' . ($last ? '' : ' ') . $button; $text .= $form . $buytable . (PRODUCT_LIST_OPTIONS == 'true' ? '<div ' . ($last ? 'align="right"' : 'align="left"' ) . ' width="100%">' . attribute_drop($listing['products_id'],$listing['products_tax_class_id']) . '</div>' . $button : '<br />' . $button) . $buytableend; //$display .= ($last ? '' : $text . '<br />'); if (!$last) {$display .= $text . '<br />'; $text = '';} break; } } $display .= ''; $list_box_temp[] = array('align' => 'left', 'params' => 'class="main" valign="top" ', 'text' => $display); $list_box_temp[] = array('align' => 'right', 'params' => 'class="productListing-data" valign="top" ', 'text' => $text); } return ($list_box_temp); } // function list_box_data end function attribute_drop($products_id,$tax_class_id) { global $languages_id, $multi_add; $currencies = new currencies(); $atrib_drop = ''; $products_attributes_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS_ATTRIBUTES . " where products_id='" . (int)$products_id . "'"); $products_attributes = tep_db_fetch_array($products_attributes_query); if ($products_attributes['total'] > 0) { $atrib_drop = '<table border="0" cellspacing="0" cellpadding="2" class="attributes">'; $products_options_name_query = tep_db_query("select distinct popt.products_options_id, popt.products_options_name from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_ATTRIBUTES . " patrib where patrib.products_id='" . (int)$products_id . "' and patrib.options_id = popt.products_options_id and popt.language_id = '" . (int)$languages_id . "' order by popt.products_options_name"); while ($products_options_name = tep_db_fetch_array($products_options_name_query)) { $products_options_array = array(); $products_options_query = tep_db_query("select pov.products_options_values_id, pov.products_options_values_name, pa.options_values_price, pa.price_prefix from " . TABLE_PRODUCTS_ATTRIBUTES . " pa, " . TABLE_PRODUCTS_OPTIONS_VALUES . " pov where pa.products_id = '" . (int)$products_id . "' and pa.options_id = '" . (int)$products_options_name['products_options_id'] . "' and pa.options_values_id = pov.products_options_values_id and pov.language_id = '" . (int)$languages_id . "'"); while ($products_options = tep_db_fetch_array($products_options_query)) { $products_options_array[] = array('id' => $products_options['products_options_values_id'], 'text' => $products_options['products_options_values_name']); if ($products_options['options_values_price'] != '0') { $products_options_array[sizeof($products_options_array)-1]['text'] .= ' (' . $products_options['price_prefix'] . $currencies->display_price($products_options['options_values_price'], tep_get_tax_rate($tax_class_id)) .') '; } } $atrib_drop .= '<tr><td class="attributes" >' . $products_options_name['products_options_name'] . ':' . '</td><td align="left">' . tep_draw_pull_down_menu('id' . ($multi_add ? '['. $products_id .']' : '') . '[' . $products_options_name['products_options_id'] . ']', $products_options_array) . '</td></tr>'; } $atrib_drop .= '</table>'; } return $atrib_drop; } // function attribute_drop end // set initial values $thumbnail_view = (isset($_GET['list']) ? $_GET['list'] : PRODUCT_THUMBNAIL_VIEW); $empty_list=false; if (isset($_GET['manufacturers_id']) && tep_not_null($_GET['manufacturers_id'])) { $title_name = tep_get_manufacturer_name($_GET['manufacturers_id']); } else { $title_name = (!$category['categories_name'] && tep_not_null($_GET['cPath']) ? tep_get_category_name(substr($_GET['cPath'], strpos($_GET['cPath'],'_')+1),$languages_id) : ''); } $grid = strstr(PRODUCT_THUMBNAIL_VIEW, 'grid'); $gborders = function_exists(mws_boxHeader);//$gborders = false; $Tborder = (!$gborders ? '<table class="infoBoxList" width="100%"><tr><td>' : mws_boxHeader('<big>'.$title_name.'</big>')); $Tborderend = (!$gborders ? '</td></tr></table>' : mws_boxFooter ()); $border2 = (!$gborders ? '<table class="infoBoxList" width="100%"><tr><td>' : ($graphic_bord == 'yes' ? mws_boxHeader('<big>'.$title_name.'</big>') : '')); $border2end = (!$gborders ? '</td></tr></table>' : ($graphic_bord == 'yes' ? mws_boxFooter() : '')); $list_box_empty[] = array(array('params' => 'class="productListing-data"','text' => TEXT_NO_PRODUCTS)); if (tep_not_null($_GET['categories_id']) && $current_category_id == 0) $current_category_id = $_GET['categories_id']; // output selected display if (strstr($thumbnail_view, 'thumbnails')) { //thumbnail $row = 0; $col = 0; $border = (!$grid ? '<table class="infoBoxProducts" cellpadding="2" width="'.PRODUCT_LIST_WIDTH.'" height="'.PRODUCT_LIST_HEIGHT.'" ><tr><td valign="top">' : '<br />'); $borderend = (!$grid ? '</td></tr></table>' : ''); $style = (!$grid ? 'class="smallText"' : 'class="infoBoxGrid"'); $info_box_contents = array(); if ($data_ok) { $listing_query = tep_db_query($listing_split->sql_query);} else { $listing_query = tep_db_query($listing_sql); } if (tep_db_num_rows($listing_query)) { while ($products = tep_db_fetch_array($listing_query)) { if ($row == 0) { if (!$gborders && !$grid) $info_box_contents[$row][$col] = array('align' => 'center', 'params' => 'class="smallText" width="'.(PRODUCTS_PER_ROW ? (int)(100/PRODUCTS_PER_ROW) : '').'%" valign="top"', 'text' => ' '); echo $Tborder;$row ++; } // build thumb $man_id = (tep_not_null($_GET['manufacturers_id']) ? $_GET['manufacturers_id'] : ''); $link = '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $products['products_id'] . ($man_id ? '&manufacturers_id='.$man_id : ($cPath && $cat_path ? '&cPath=' . $cPath : ''))) . '"' . ($man_id || ($cat_path && $cat_path) ? ' rel="nofollow"' : '') . '>'; $quantity_box = quantity ($products['products_id']); $image = (file_exists(DIR_WS_IMAGES . $products['products_image']) ? $products['products_image'] : 'no-image.jpg'); $addimages = (file_exists(DIR_WS_CLASSES . 'displayimages.php')); // Additional Images Present if ($addimages) { $image_query = tep_db_query( "SELECT ai.medium_images, ai.images_description, ai.popup_images, p.products_image_med, p.products_image_description FROM " . TABLE_ADDITIONAL_IMAGES . " ai, " . TABLE_PRODUCTS . " p WHERE ai.products_id=p.products_id and ai.products_id = '".(int)$products['products_id']."'"); $selected_image = tep_db_fetch_array($image_query); $image = ($selected_image['medium_images'] ? $selected_image['medium_images'] : ($selected_image['products_image_med'] ? $selected_image['products_image_med'] : ($selected_image['popup_images'] ? $selected_image['popup_images'] : $products['products_image']))); } $alt_text = ($addimages ? (tep_not_null($selected_image['images_description']) ? $selected_image['images_description'] : (tep_not_null($selected_image['products_image_description']) ? $selected_image['products_image_description'] : $products['products_name'])) : $products['products_name']); $image = (!$grid && $column_list[0] == 'PRODUCT_LIST_IMAGE' ? '<br />' : '') . ' <span class="ttip">' . $link . tep_image(DIR_WS_IMAGES . $image, $alt_text, PRODUCT_IMAGE_WIDTH, PRODUCT_IMAGE_HEIGHT) . ($ttip ? tep_image(DIR_WS_IMAGES . $image, $alt_text, $ttip_width, '', 'class="large"') : '' ) . '</a></span>' . '<br />'; if (LISTING_BUTTON != 'none' && PRODUCT_LIST_BUY_NOW) { $buypic = (LISTING_BUTTON == 'buy now' ? 'button_in_cart.gif' : 'button_buy_now.gif'); $detail = $link . tep_image_button((strstr(LISTING_BUTTON, '&') || (strstr(LISTING_BUTTON, 'small')) ? 'button_details_small.gif' : 'button_details.gif'), IMAGE_BUTTON_DETAILS, 'class="thm_buy_now"') . '</a>'; $add_cart = ($multi_add ? ($quantity_box && PRODUCT_LIST_QUANTITY_BOX == 'true' ? '' : $detail) : tep_draw_hidden_field('products_id', $products['products_id']) . tep_image_submit($buypic, IMAGE_BUTTON_BUY_NOW, 'class="thm_buy_now"')); $button = (LISTING_BUTTON == 'buy now & details' ? '<br />' . $quantity_box . ($add_cart == $detail ? $add_cart : $add_cart . ' <span class="buy_now">|</span> ' . $detail . '<br /><br />') : (strstr(LISTING_BUTTON, 'buy now') ? '<br />' . $quantity_box . $add_cart . '<br /><br />' : '<br />'. $detail . '<br /><br />' )); if ($products['products_price'] == 0 || (isset($products['products_quantity']) && !$products['products_quantity'])) { $button = '<br /><span class="buy_now"> </span>'. $detail . '<br />';$quantity_box = ''; } } $name = $link . '<b>' . $products['products_name'] . '</b>' . '</a><br />'. ($products['short_desc'] && (PRODUCT_SHORT_DESC == 'true') ? '<br />' . $products['short_desc'] . '<br />' : ''); $price = (function_exists(display_short_price)) ? $currencies->display_short_price($products['products_price'], tep_get_tax_rate($products['products_tax_class_id'])) : $currencies->display_price($products['products_price'], tep_get_tax_rate($products['products_tax_class_id'])); if (tep_not_null($products['specials_new_products_price'])) { $price = '<s>' . $currencies->display_price($products['products_price'], tep_get_tax_rate($products['products_tax_class_id'])) . '</s> <span class="productSpecialPrice">' . $currencies->display_price($products['specials_new_products_price'], tep_get_tax_rate($products['products_tax_class_id'])) . '</span>'; } if (function_exists(tep_get_att_price)) $price .= (tep_get_att_price($products['products_id']) > 0 ? '+' : '') ; $show_price = '<br /><font size="'.PRODUCT_PRICE_SIZE.'">' . ($products['products_price'] > 0 ? $price : TEXT_POA) . '<br /></font>'; $quantity = ($products['products_quantity'] ? 'Stock = '.$products['products_quantity'] : 'Out of Stock').'<br />'; $weight = 'Weight = '.$products['products_weight'].WEIGHT_ABRV.'<br />'; $model = $products['products_model'] . '<br />'; $manfact = '<a href="' . tep_href_link(FILENAME_DEFAULT, 'manufacturers_id=' . $products['manufacturers_id']) . '">' . $products['manufacturers_name'] . '</a><br />'; $display = $border; for ($disp=0, $n=sizeof($column_list); $disp<$n; $disp++) { switch ($column_list[$disp]) { case 'PRODUCT_LIST_IMAGE': $display .= '<table summary="" width="100%" ><tr><td style="text-align:center;" valign="top" height="'.PRODUCT_IMAGE_VSPACE.'" >'.$image.'</td></tr></table>'; break; case 'PRODUCT_LIST_NAME': $display .= '<table summary="" width="100%" ><tr><td class="thumbcontent" height="'.PRODUCT_NAME_VSPACE.'" >'.$name.'</td></tr>' . extra_fields($products['products_id']) . '</table>'; break; case 'PRODUCT_LIST_MODEL': $display .= $model; break; case 'PRODUCT_LIST_MANUFACTURER': $display .= $manfact; break; case 'PRODUCT_LIST_PRICE': $display .= $show_price; break; case 'PRODUCT_LIST_QUANTITY': $display .= $quantity; break; case 'PRODUCT_LIST_WEIGHT': $display .= $weight; break; } } $form = ($multi_add ? '' : tep_draw_form('cart_quantity_' . $col . $row, tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('action','products_id')) . 'action=add_product'))); $display .= $borderend . $form . '<br />' . (PRODUCT_LIST_OPTIONS == 'true' ? attribute_drop($products['products_id'],$products['products_tax_class_id']) . $button : $button) . ($multi_add ? '' : '</form>'); // thumb built $info_box_contents[$row][$col] = array('align' => 'center', 'params' => $style . ' width="'.(PRODUCTS_PER_ROW ? (int)(100/PRODUCTS_PER_ROW) : '').'%" valign="top"', 'text' => $display ); $col ++; if ($col > PRODUCTS_PER_ROW-1) { $col = 0; $row ++; } } // prod loop } else {$empty_list=true; }// no products!! // got display if ($row) { $i = 0 ; $nbx = class_exists(noborderBox); if ($col > 0 && $row > 1 && $nbx && !$grid) { for ($i=0, $n=$col; $i < $n; $i++) { $last_row[0][$i] = $info_box_contents[$row][$i]; unset($info_box_contents[$row][$i]); } } if (!$i) {$col = 0;$row ++;$info_box_contents[$row][$col] = array('align' => 'center', 'params' => 'class="smallText" width="'.(PRODUCTS_PER_ROW ? (int)(100/PRODUCTS_PER_ROW) : '').'%" ', 'text' => ' '); } if ($nbx) new noborderBox($info_box_contents); else new contentBox($info_box_contents); if($i) new noborderBox($last_row); echo $Tborderend; } else {$empty_list=true; } } elseif (strstr($thumbnail_view, 'manufacturer')) { //manufacturer $row = 0;$col = 0; if (isset($_GET['manufacturers_id']) && tep_not_null($_GET['manufacturers_id'])) { $filterlist_sql= tep_db_query("select distinct m.manufacturers_id, m.manufacturers_name, mi.manufacturers_description from " . TABLE_MANUFACTURERS . " m left join " . TABLE_MANUFACTURERS_INFO . " mi on m.manufacturers_id = mi.manufacturers_id where m.manufacturers_id = '" . (int)$_GET['manufacturers_id'] . "' and mi.languages_id = '" . (int)$languages_id . "'"); }else{ $filterlist_sql= tep_db_query("select distinct m.manufacturers_id, m.manufacturers_name, mi.manufacturers_description from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c, " . TABLE_MANUFACTURERS . " m left join " . TABLE_MANUFACTURERS_INFO . " mi on m.manufacturers_id = mi.manufacturers_id 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 . "' and mi.languages_id = '" . (int)$languages_id . "' order by m.manufacturers_name"); } if (tep_db_num_rows($filterlist_sql)) { $rows = 0; while ($manufacturer = tep_db_fetch_array($filterlist_sql)) { $info_box_heading = array(); if ($rows) echo tep_draw_separator('pixel_trans.gif', '100%', '4'); echo $border2; $info_box_heading[0] = array('text' => '<big>'.$manufacturer['manufacturers_name'].'</big><br />'.(MANU_DESCRIPTION == 'true' ? $manufacturer['manufacturers_description'].'<br />' : '')); new infoBoxHeading($info_box_heading, false, false); $list_box_contents = array(); $list_box_contents[0] = (LISTING_HEADINGS == 'true' && !strstr(PRODUCT_THUMBNAIL_VIEW, 'block') ? list_box_head($column_list) : ''); if ($data_ok) { $rows = 0; $listing_query = tep_db_query($listing_split->sql_query);} else { $rows = 0; $listing_query = tep_db_query($listing_sql); } while ($listing = tep_db_fetch_array($listing_query)) { if ($listing['manufacturers_id'] != $manufacturer['manufacturers_id']) continue; list_row ($listing, $column_list); } $list_box_contents[sizeof($list_box_contents)-1] = array(array('text' => '<br />')); if (!$rows && isset($_GET['manufacturers_id'])) { $rows++; $list_box_contents = $list_box_empty; $empty_list=true;} if ($rows) new productListingBox($list_box_contents); echo $border2end; } // man loop; } else {$empty_list=true; } // no manufacturers!! } if ((!strstr($thumbnail_view, 'thumbnails') && !strstr($thumbnail_view, 'manufacturer')) || $empty_list) { //default listing if (MANU_DESCRIPTION == 'true' && tep_not_null($_GET['manufacturers_id'])) { $manufacturer_query = tep_db_query("select manufacturers_description from " . TABLE_MANUFACTURERS_INFO . " where manufacturers_id = '" . (int)($_GET['manufacturers_id']) . "' and languages_id = '" . (int)$languages_id . "'"); $manufacturer = tep_db_fetch_array($manufacturer_query); } $info_box_heading[0] = array('text' => '<big>'.$title_name.'</big>'.($manufacturer['manufacturers_description'] ? '<br />' . $manufacturer['manufacturers_description'] : '')); $list_box_contents = array(); $list_box_contents[0] = (LISTING_HEADINGS == 'true' && !strstr(PRODUCT_THUMBNAIL_VIEW, 'block') ? list_box_head($column_list) : ''); if ($listing_split->number_of_rows > 0) { $rows = 0; $listing_query = tep_db_query($listing_split->sql_query); while ($listing = tep_db_fetch_array($listing_query)) { list_row ($listing, $column_list); } $list_box_contents[sizeof($list_box_contents)-1] = array(array('text' => '<br />')); $empty_list = false; echo $border2; if ($title_name) new infoBoxHeading($info_box_heading, false, false); new productListingBox($list_box_contents); echo $border2end; //tep_draw_separator('pixel_trans.gif', '100%', '4'); } else { new productListingBox($list_box_empty); $empty_list=true; } } if ($multi_add) { if ($global_add != 'top') echo '<div class="multi_buy_now" id="gbutton2">' . $gbutton; echo '</form>'; } if ($base_nav && !$empty_list) echo $drop; if (($listing_split->number_of_rows > (int)$max_results) && $base_nav) echo $page_nav; if (LISTING_SWITCH != 'false' && !$empty_list) echo '<br /><span class="smalltext"><a href="' . tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('list')). 'list='.(strstr($thumbnail_view, 'thumbnails') ? 'manufacturer' : 'thumbnails')) . '">' . (strstr($thumbnail_view, 'thumbnails') ? LIST_VIEW : THUMB_VIEW).'</a></span><br /><br />'; //echo '<hr>' . $listing_sql . '<hr>'; ?> Quote Link to comment Share on other sites More sharing options...
fan4chevy Posted February 16, 2010 Share Posted February 16, 2010 (edited) I am wondering if there is a way to keep ALL the images in product listing from stretching the box in thumbnails in grid without distorting image? For example, although I have it set not to exceed a given width, some images will be large vertically and throws the display off vertically. Perhaps a way for the grid not to grow past a specific size and resizes the image to stay in the box so as not to distort. Any input is appreciated. Edited February 16, 2010 by fan4chevy Quote Link to comment Share on other sites More sharing options...
spooks Posted February 16, 2010 Author Share Posted February 16, 2010 I am wondering if there is a way to keep ALL the images in product listing from stretching the box in thumbnails in grid without distorting image? For example, although I have it set not to exceed a given width, some images will be large vertically and throws the display off vertically. Perhaps a way for the grid not to grow past a specific size and resizes the image to stay in the box so as not to distort. Any input is appreciated. no. re-do your images so you don't have such big variations in ratio. tables will always stretch for content, u cannot set a limit. if you did have a fixed sized box it would not constain content, that would just get cropped. so fix your content, the browser cant do that for you. Quote Sam Remember, What you think I ment may not be what I thought I ment when I said it. Contributions: Auto Backup your Database, Easy way Multi Images with Fancy Pop-ups, Easy way Products in columns with multi buy etc etc Disable any Category or Product, Easy way Secure & Improve your account pages et al. Link to comment Share on other sites More sharing options...
EIF Posted February 16, 2010 Share Posted February 16, 2010 (edited) I just installed this great contribution. I only have one problem with the sorting, "results/page" and "Sort order". When I change it, the website goes back to the main/home index page, instead it sorts the product listing. Does someone knows what to do? Edited February 16, 2010 by EIF Quote Link to comment Share on other sites More sharing options...
spooks Posted February 16, 2010 Author Share Posted February 16, 2010 I just installed this great contribution. I only have one problem with the sorting, "results/page" and "Sort order". When I change it, the website goes back to the main/home index page, instead it sorts the product listing. Does someone knows what to do? without a link to your site its hard to tell the cause, most likely a failure to close an ealier form your opening on the page. Quote Sam Remember, What you think I ment may not be what I thought I ment when I said it. Contributions: Auto Backup your Database, Easy way Multi Images with Fancy Pop-ups, Easy way Products in columns with multi buy etc etc Disable any Category or Product, Easy way Secure & Improve your account pages et al. Link to comment Share on other sites More sharing options...
spooks Posted February 16, 2010 Author Share Posted February 16, 2010 This already supports Products Extra Fields , please read the doc. Quote Sam Remember, What you think I ment may not be what I thought I ment when I said it. Contributions: Auto Backup your Database, Easy way Multi Images with Fancy Pop-ups, Easy way Products in columns with multi buy etc etc Disable any Category or Product, Easy way Secure & Improve your account pages et al. Link to comment Share on other sites More sharing options...
EIF Posted February 16, 2010 Share Posted February 16, 2010 without a link to your site its hard to tell the cause, most likely a failure to close an ealier form your opening on the page. My site is not online yet. What part of the code do you need? Quote Link to comment Share on other sites More sharing options...
davidkinsella Posted February 16, 2010 Share Posted February 16, 2010 Has anybody ever managed to sucessfully add quantity price breaks per product contribution (http://www.oscommerce.com/community/contributions,1242) to the product listing enhancement page. I want the page to attempt to show the price break table without having to go to the product info page. Becuase of the major coding changes to the page, I am not even sure if this is possible, I have tried, but rather unsucessfully. ANy bright ideas anybody or is it a bridge too far? Quote Link to comment Share on other sites More sharing options...
spooks Posted February 16, 2010 Author Share Posted February 16, 2010 My site is not online yet. What part of the code do you need? Cant say as I don't know where your error is!! Make sure all your forms are correctly closed & not nested If your using a template, remeber they often have many issues due to bad coding. The only other thing I can offer is the url u should see after clicking a link should be like: /index.php?cPath=3_15&sort=0d&max=40 Oh & on that if u have some seo url contrib, some can mess things up too Quote Sam Remember, What you think I ment may not be what I thought I ment when I said it. Contributions: Auto Backup your Database, Easy way Multi Images with Fancy Pop-ups, Easy way Products in columns with multi buy etc etc Disable any Category or Product, Easy way Secure & Improve your account pages et al. Link to comment Share on other sites More sharing options...
dartecha Posted February 17, 2010 Share Posted February 17, 2010 This already supports Products Extra Fields , please read the doc. I am trying to get the extra fields module to show the products options eg. the products have attributes as a range of colours in some cases. I have a multi-product option activated. I would like to have the customer be able to see the product then select an attribute and then add multiples to their cart. Ultimately I would like to be able to include another field that gives the customer the option of buying "5 for a certain price" as well. How can I make this work? I would appreciate any input you can give me Hi Sam Would you be able to contact me about a quote for this work. Cheers Chad Quote Link to comment Share on other sites More sharing options...
catalindm Posted February 17, 2010 Share Posted February 17, 2010 (edited) Hello, i don't understand how to install SQL v2.6. I see that i have to copy, but where? or how? Help please. Thank you Edited February 17, 2010 by catalindm Quote Link to comment Share on other sites More sharing options...
spooks Posted February 17, 2010 Author Share Posted February 17, 2010 how to apply the SQL i don't understand how to install SQL v2.6. tips on how to apply any SQL are included in this topic. Quote Sam Remember, What you think I ment may not be what I thought I ment when I said it. Contributions: Auto Backup your Database, Easy way Multi Images with Fancy Pop-ups, Easy way Products in columns with multi buy etc etc Disable any Category or Product, Easy way Secure & Improve your account pages et al. Link to comment Share on other sites More sharing options...
catalindm Posted February 17, 2010 Share Posted February 17, 2010 how to apply the SQL tips on how to apply any SQL are included in this topic. Thank you Quote Link to comment Share on other sites More sharing options...
halluzineyt Posted February 19, 2010 Share Posted February 19, 2010 My link sir how can i make the rounder border orange i tried to change css but its still the same? .infoBoxProducts { text-align: center; font-family: Verdana, Arial, sans-serif; font-size: 10px; border: 1px; border-style: solid; border-color: #F57914; font-weight: normal; background-color:#000000; color: #f57914; margin-bottom:-8px; -moz-border-radius:15px; -webkit-border-radius:15px; -khtml-border-radius:15px; border-radius:15px; vertical-align: bottom; } Quote 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.
Note: Your post will require moderator approval before it will be visible.