Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Product Listing Enhancements, Thumbnails & Manufacturer Headings


spooks

Recommended Posts

Hey Spooks! Great contribution! How do you change the Results/Page?

 

Right now, the drop down displays results in 20, 40, 60, 80, 100, 120, 140, 160, 180 & Show All.

 

What if you wanted to only display items in different intervals (i.e. 12, 24, 36, etc.)

 

I've searched this topic and can't seem to find a solution.

 

I've also been having issues with the spacing around the product listing table. I've checked the css and classes/boxes.php and changed the cellspacing/padding to 0 and still now luck.

 

Here's a snapshot to give you a better idea.

 

http://i1001.photobu...lo/Picture4.jpg

 

Thanks!

 

Its in the doc: values based on multiples of the 'Search Results' value in admin. For simplicity the 'Show All' just puts a figure of 1000000.

 

download firefox and its web developer & firebug plugins, then use that to find the css of any element on a page.

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

Thank you for this wonderfull contribution. The product list is working fine!

The only thing what's not working for me is the manufacturer short description on the product listing when I choose for a manufacturer.

I made all the changes for the index.php, Set the manufacturer's description on True, made all the changes of your text file, put the includes files from your zip V2.0. But I get the same error as nfarafo on october 25th.

 

1054 - Unknown column 'manufacturers_description' in 'field list'

 

I reinstalled a backup and tried again but same error. Cause I can't find an other contribution for manufacturers descriptions on the product list I hope you have time to look at this issue :unsure: .

 

Kind regards,

 

Angelique

Link to comment
Share on other sites

Thank you for this wonderfull contribution. The product list is working fine!

The only thing what's not working for me is the manufacturer short description on the product listing when I choose for a manufacturer.

I made all the changes for the index.php, Set the manufacturer's description on True, made all the changes of your text file, put the includes files from your zip V2.0. But I get the same error as nfarafo on october 25th.

 

1054 - Unknown column 'manufacturers_description' in 'field list'

 

I reinstalled a backup and tried again but same error. Cause I can't find an other contribution for manufacturers descriptions on the product list I hope you have time to look at this issue unsure.gif .

 

Kind regards,

 

Angelique

 

Not sure where its got too (this contrib has got a bit big!!), your missing the sql instruction to add the column in the dbase!! blush.gif

 

apply this with phpmyadmin:

 

ALTER TABLE `manufacturers_info` ADD `manufacturers_description` varchar(64) NULL; 

smile.gif

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

Hey spooks, in the product_listing.php, there seems to be an extra column that I cant seem to get rid of. I can't seem to find where in the code it is, but when i turn the borders on, i can see it...would you know where its coming from?

 

http://i1001.photobucket.com/albums/af138/thisisbolo/Picture2.jpg (this is just a rendering)

 

Thanks buddy!

 

----

 

 

<?php

/*

$Id: product_listing.php,v 2.1.7 2008/07/24 22:49:59 hpdl Exp $

 

osCommerce, Open Source E-Commerce Solutions

http://www.oscommerce.com

 

Copyright © 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

 

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, $n=10; $i<$n; $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');

 

$page_nav = '<table width="793" class="infoBox"><tr><td><table border="0" width="750" cellspacing="0" cellpadding="0" class="infoBox" align="center"><tr><td class="infoBox">' . $listing_split->display_count(TEXT_DISPLAY_NUMBER_OF_PRODUCTS) . '</td><td class="infoBox" 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></td></tr></table>';

$drop = '<table border="0" width="793" cellspacing="0" cellpadding="0"><tr><td class="infoBox">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="infoBox" 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 && ($listing_split->number_of_rows > 0)) echo $drop;

 

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 list_box_head($column_list) {

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_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 = (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"','text' => ' ' . $lc_text . ' ');

}

return ($list_box_contents);

}

// function list_head end

 

function list_box_data($listing, $column_list) {

global $PHP_SELF, $cPath, $cat_path;

$currencies = new currencies();

$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"' : '') . '>';

$buypic = (LISTING_BUTTON == 'buy now' ? 'button_in_cart.gif' : 'button_buy_now.gif');

$button = (LISTING_BUTTON == 'buy now & details' ? '<br><a href="' . tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('action')) . 'action=buy_now&products_id=' . $listing['products_id']) . '">' . tep_image_button($buypic, IMAGE_BUTTON_BUY_NOW, 'class="thm_buy_now"') . '</a> <span class="buy_now">|</span> ' . $link . tep_image_button('button_details_small.gif', IMAGE_BUTTON_DETAILS, 'class="thm_buy_now"') . '</a><br><br>' : (strstr(LISTING_BUTTON, 'buy now') ? '<br><a href="' . tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('action')) . 'action=buy_now&products_id=' . $listing['products_id']) . '">' . tep_image_button($buypic, IMAGE_BUTTON_BUY_NOW) . '</a><br><br>' : '<br>'. $link . tep_image_button('button_details.gif', IMAGE_BUTTON_DETAILS) . '</a><br><br>' )) ;

if (!strstr(PRODUCT_THUMBNAIL_VIEW, 'block')) {

for ($col=0, $n=sizeof($column_list); $col<$n; $col++) {

$lc_align = '';

 

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 = $link.'<b>' . $listing['products_name'] . '</b></a>' . ($listing['short_desc'] && (PRODUCT_SHORT_DESC == 'true') ? '<br><span class="short">' . $listing['short_desc'] . '</span>' : '');

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';

$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>  ';

} else {

$lc_text = ($listing['products_price'] > 0 ? '' . $price . '  ' : ' ' . TEXT_POA);

if (function_exists(tep_get_att_price)) $lc_text .= (tep_get_att_price($listing['products_id']) > 0 ? '+' : ' ') ;

}

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 = $link . tep_image(DIR_WS_IMAGES . $listing['products_image'], $listing['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . '</a>';

break;

case 'PRODUCT_LIST_BUY_NOW':

$lc_align = 'center';

$lc_text = $button;

break;

}

$list_box_temp[] = array('align' => $lc_align,

'params' => 'class="productListing-data" width="'.(100/sizeof($column_list)).'%" ',

'text' => $lc_text);

}

} else { // block listing

$list_box_temp = array();

if (PRODUCT_LIST_IMAGE) { $list_box_temp[] = array('align' => 'center',

'params' => 'class="productListing-data" ',

'text' => $link . tep_image(DIR_WS_IMAGES . $listing['products_image'], $listing['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . '</a>'); }

$display ='';

for ($col=0, $n=sizeof($column_list); $col<$n; $col++) {

switch ($column_list[$col]) {

case 'PRODUCT_LIST_MODEL':

$display .= $listing['products_model'] . '<br>';

break;

case 'PRODUCT_LIST_NAME':

$display .= $link.'<b><u>' . $listing['products_name'] . '</u></b></a><br>' . ($listing['short_desc'] && (PRODUCT_SHORT_DESC == 'true') ? '<span class="short">' . $listing['short_desc'] . '</span><br>' : '');

break;

case 'PRODUCT_LIST_MANUFACTURER':

$display .= '<a href="' . tep_href_link(FILENAME_DEFAULT, 'manufacturers_id=' . $listing['manufacturers_id']) . '">' . $listing['manufacturers_name'] . '</a><br>';

break;

case 'PRODUCT_LIST_PRICE':

$display .= '<br>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'])) {

$display .= '<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>';

} else {

$display .= ($listing['products_price'] > 0 ? '' . $price : '' . TEXT_POA);

if (function_exists(tep_get_att_price)) $display .= (tep_get_att_price($listing['products_id']) > 0 ? '+' : ' ') ;

$display .= '<br>';

}

break;

case 'PRODUCT_LIST_QUANTITY':

$display .= ($listing['products_quantity'] ? 'Stock = ' . $listing['products_quantity'] : 'Out of Stock') . '<br>';

break;

case 'PRODUCT_LIST_WEIGHT':

$display .= 'Weight = ' . $listing['products_weight'].WEIGHT_ABRV.'<br />';

break;

}

}

$list_box_temp[] = array('align' => 'left',

'params' => 'class="main" valign="top"',

'text' => $display);

if (PRODUCT_LIST_BUY_NOW) {

$list_box_temp[] = array('align' => 'left',

'params' => 'class="productListing-data" width="'.(100/4).'%" ',

'text' => $button);

}

}

return ($list_box_temp);

}

// function list_box_data 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);

$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() : ''));

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="0" 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 ($listing_split->number_of_rows > 0) { $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 ? (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"' : '') . '>';

$image = $products['products_image'];

$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'])));

}

$image = (!$grid && $column_list[0] == 'PRODUCT_LIST_IMAGE' ? '<br>' : '') . $link . tep_image(DIR_WS_IMAGES . $image, ($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']), PRODUCT_IMAGE_WIDTH, '') . '</a>' . '<br>';

$buypic = (LISTING_BUTTON == 'buy now' ? 'button_in_cart.gif' : 'button_buy_now.gif');

$button = (LISTING_BUTTON != 'none' && PRODUCT_LIST_BUY_NOW ? (LISTING_BUTTON == 'buy now & details' ? '<br><a href="' . tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('action')) . 'action=buy_now&products_id=' . $products['products_id']) . '">' . tep_image_button($buypic, IMAGE_BUTTON_BUY_NOW, 'class="thm_buy_now"') . '</a> <span class="buy_now">|</span> ' . $link . tep_image_button('button_details_small.gif', IMAGE_BUTTON_DETAILS, 'class="thm_buy_now"') . '</a><br><br>' : (strstr(LISTING_BUTTON, 'buy now') ? '<br><a href="' . tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('action')) . 'action=buy_now&products_id=' . $products['products_id']) . '">' . tep_image_button($buypic, IMAGE_BUTTON_BUY_NOW) . '</a><br><br>' : '<br>' . $link . tep_image_button('button_details.gif', IMAGE_BUTTON_DETAILS) . '</a><br><br>' )) : ' ');

 

$name = $link . '<b>' . $products['products_name'] . '</b>' . '</a><br>'. ($products['short_desc'] && (PRODUCT_SHORT_DESC == 'true') ? '<br>' . $products['short_desc'] . ' ' : '');

$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 = ' <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></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;

}

}

$display .= $borderend . $button;

// thumb built

 

// this changed the align of the product listing row

$info_box_contents[$row][$col] = array('align' => 'center',

'params' => $style . ' width="'.(PRODUCTS_PER_ROW ? (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 ? (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);

//echo tep_draw_separator('pixel_trans.gif', '100%', '2');

$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);} 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;

$rows++;

 

$list_box_contents[] = (($rows/2) == floor($rows/2) ? array('params' => 'class="productListing-even"') : array('params' => 'class="productListing-odd"'));

$cur_row = sizeof($list_box_contents) - 1;

$list_box_contents[$cur_row] = list_box_data($listing, $column_list);

}

if (!$rows && isset($_GET['manufacturers_id'])) {

$list_box_contents = array();

$list_box_contents[0] = array('params' => 'class="productListing-odd"');

$list_box_contents[0][] = array('params' => 'class="productListing-data"',

'text' => TEXT_NO_PRODUCTS); $rows++; }

if ($rows) new productListingBox($list_box_contents);

echo $border2end;

} // man loop;

$col = 0;$row ++;$info_box_contents[$row][$col] = array('align' => 'center',

'params' => 'class="smallText" width="33%" valign="top"',

'text' => ' ');

} 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)) {

$rows++;

 

$list_box_contents[] = (($rows/2) == floor($rows/2) ? array('params' => 'class="productListing-even"') : array('params' => 'class="productListing-odd"'));

$cur_row = sizeof($list_box_contents) - 1;

 

$list_box_contents[$cur_row] = list_box_data($listing, $column_list);

}

$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 {

$list_box_contents = array();

 

$list_box_contents[0] = array('params' => 'class="productListing-odd"');

$list_box_contents[0][] = array('params' => 'class="productListing-data"',

'text' => TEXT_NO_PRODUCTS);

new productListingBox($list_box_contents);

}

 

}

if ($base_nav && !$empty_list) echo $drop;

if (($listing_split->number_of_rows > (int)$max_results) && $base_nav) echo $page_nav;

 

if (!strstr(PRODUCT_THUMBNAIL_VIEW, 'list') && 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>';

 

?>

Link to comment
Share on other sites

Not sure where its got too (this contrib has got a bit big!!), your missing the sql instruction to add the column in the dbase!! blush.gif

 

apply this with phpmyadmin:

 

ALTER TABLE `manufacturers_info` ADD `manufacturers_description` varchar(64) NULL; 

smile.gif

 

I forgot to tell you that I also had run the sql. I checked and put again the alter table manufacturers_info but get:

SQL-query:

 

ALTER TABLE `manufacturers_info` ADD `manufacturers_description` varchar( 64 ) NULL

 

MySQL retourneerde: Documentatie

#1060 - Duplicate column name 'manufacturers_description'

 

so it's seems the same issue as from october 25th.

 

Angelique

Link to comment
Share on other sites

I forgot to tell you that I also had run the sql. I checked and put again the alter table manufacturers_info but get:

SQL-query:

 

ALTER TABLE `manufacturers_info` ADD `manufacturers_description` varchar( 64 ) NULL

 

MySQL retourneerde: Documentatie

#1060 - Duplicate column name 'manufacturers_description'

 

so it's seems the same issue as from october 25th.

 

Angelique

 

 

That means you have errors in your index.php, check your edit there, you must be trying to get the column but not specifing table

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

 

 

Its the header spacing, find:

 

'params' => 'class="smallText" width="'.(PRODUCTS_PER_ROW ? (100/PRODUCTS_PER_ROW) : '').'%" valign="top"',  'text' =>  ' ');

 

change the

 

'text' =>  ' '

 

to

 

'text' =>  ''

 

 

it actually has & n b s p ; there, but the forum wont show it!!

Edited by spooks

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

That means you have errors in your index.php, check your edit there, you must be trying to get the column but not specifing table

 

:o

 

now I get the error: 1054 - Unknown column 'pd.short_desc' in 'field list'

 

select p.products_image, m.manufacturers_name, pd.products_name, pd.short_desc, 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 products_description pd, products p left join manufacturers m on p.manufacturers_id = m.manufacturers_id left join specials s on p.products_id = s.products_id, products_to_categories p2c where p.products_status = '1' and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '4' and p2c.categories_id = '40' order by pd.products_name limit 0, 30

 

 

this is the index.php


<?php
/*
 $Id: index.php 1739 2007-12-20 00:52:16Z hpdl $

 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');
 // fix manufacture reset bug
if (isset($_GET['manufacturers_id']) && !tep_not_null($_GET['manufacturers_id'])) { tep_redirect(tep_href_link(FILENAME_DEFAULT));}   


 #################
$page_query = tep_db_query("select 
                              p.pages_id, 
                              p.sort_order, 
                              p.status, 
                              s.pages_title, 
                              s.pages_html_text
                           from 
                              " . TABLE_PAGES . " p LEFT JOIN " .TABLE_PAGES_DESCRIPTION . " s on p.pages_id = s.pages_id 
                           where 
                              p.status = 1
                           and
                              s.language_id = '" . (int)$languages_id . "'
                           and 
                              p.page_type = 1");


$page_check = tep_db_fetch_array($page_query);

$pagetext=stripslashes($page_check[pages_html_text]);


#####################



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

   }
 }

 require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_DEFAULT);
?>
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">
<html <?php echo HTML_PARAMS; ?>>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET; ?>">
<?php 
# cDynamic Meta Tags
/*<title><?php echo TITLE; ?>*/
require(DIR_WS_INCLUDES . 'meta_tags.php');
#
?>
<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">
<!-- header //-->
<?php require(DIR_WS_INCLUDES . 'header.php'); ?>
<!-- header_eof //-->

<!-- body //-->
<table border="0" width="100%" cellspacing="3" cellpadding="3">
 <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, 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 echo $breadcrumb->last(' » '); ?></td>
<td class="pageHeading" align="center"><?php echo tep_image(DIR_WS_IMAGES . $category['categories_image'], $category['categories_name'], 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="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="accountCategory" 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

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

         </tr>
         <tr>

         </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;
	}
   }
$select_column_list .= 'pd.short_desc, ';


// 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 left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_MANUFACTURERS . " m, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c 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 left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_MANUFACTURERS . " m 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 left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_MANUFACTURERS . " m, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c 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 left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c 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);

     switch ($column_list[$sort_col-1]) {
       case 'PRODUCT_LIST_MODEL':
         $listing_sql .= " order by p.products_model " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name";
         break;
       case 'PRODUCT_LIST_NAME':
         $listing_sql .= " order by pd.products_name " . ($sort_order == 'd' ? 'desc' : '');
         break;
       case 'PRODUCT_LIST_MANUFACTURER':
         $listing_sql .= " order by m.manufacturers_name " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name";
         break;
       case 'PRODUCT_LIST_QUANTITY':
         $listing_sql .= " order by p.products_quantity " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name";
         break;
       case 'PRODUCT_LIST_IMAGE':
         $listing_sql .= " order by pd.products_name";
         break;
       case 'PRODUCT_LIST_WEIGHT':
         $listing_sql .= " order by p.products_weight " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name";
         break;
       case 'PRODUCT_LIST_PRICE':
         $listing_sql .= " order by final_price " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name";
         break;
     }
   }
?>
   <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 $breadcrumb->last(' » '); ?></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', $_GET['sort']).(isset($_GET['list']) ? tep_draw_hidden_field('list', $_GET['list']) : '') . (isset($_GET['max']) ? tep_draw_hidden_field('max', $_GET['max']) : '');
       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 tep_hide_session_id() . '</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"> </td>
         </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_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 $breadcrumb->last(' » '); ?></td>
<td class="pageHeading" align="center"><?php  ?></td>
         </tr>
       </table></td>
     </tr>
    <?php
// BOF: Store Mode
 if (STORE_MODE == 'Closed') {
?>
     <tr>
       <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
     </tr>
     <tr>
       <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
     </tr>
     <tr>
       <td class="stockWarning" align="center"><?php echo CLOSED_MESSAGE . ONLINE_DATE_TIME ?></td>
     </tr>
     <tr>
       <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
     </tr>
<?php
 }
// EOF: Store Mode
?>


     <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><!-- BEGIN newsdesk -->
<tr><td><?php include(DIR_WS_MODULES . FILENAME_NEWSDESK_STICKY); ?></td></tr>
<!-- //END newsdesk -->
<!-- BEGIN newsdesk -->
<tr><td><?php include(DIR_WS_MODULES . FILENAME_NEWSDESK); ?></td></tr>
<!-- //END newsdesk -->

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

<!-- footer //-->
<?php require(DIR_WS_INCLUDES . 'footer.php'); ?>
<!-- footer_eof //-->
<br>
</body>
</html>
<?php require(DIR_WS_INCLUDES . 'application_bottom.php'); ?>

Link to comment
Share on other sites

I would like to know how can I change the order in which my products are being displayed. At this time my products are being displayed in alphabetical order within each category. I would like to choose which items show are the top/1st,2nd,3rd, etc...

 

Thank you

Link to comment
Share on other sites

Its the header spacing, find:

 

'params' => 'class="smallText" width="'.(PRODUCTS_PER_ROW ? (100/PRODUCTS_PER_ROW) : '').'%" valign="top"',  'text' =>  ' ');

 

change the

 

'text' =>  ' '

 

to

 

'text' =>  ''

 

 

it actually has & n b s p ; there, but the forum wont show it!!

 

Hey Spooks! That did the trick! Thanks so much!

Link to comment
Share on other sites

error: 1054 - Unknown column 'pd.short_desc' in 'field list'

 

 

The instructions said:

IF YOU HAVE THE SHORT DESCIPTION MOD ADD:

 

$select_column_list .= 'pd.short_desc, ';

 

it would appear you ignored the first line & added the 2nd regardless, you need to delete that addition! wink.gif

 

 

 

 

 

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

error: 1054 - Unknown column 'pd.short_desc' in 'field list'

 

 

The instructions said:

 

 

it would appear you ignored the first line & added the 2nd regardless, you need to delete that addition! wink.gif

 

aaaah that's the short description and not the manufacturer description. Oke. :blush:

I removed that but I still didn't get the manufacturer description on top of the product list when I select the manufacturer. I put in de admin a text.

In the code of the product listing there's 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 ? (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);	

 

but why isn't there a description in the productlist when I click on a manufacturer?

 

Angelique

Link to comment
Share on other sites

manufacturer description wont show

 

 

In admin/product listing:

 

have you set list style to manufacturer ?

 

have you set display manufacturer description to true?

 

does the manufacturer you have given a description to have products that are enabled?

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

manufacturer description wont show

 

 

 

In admin/product listing:

 

have you set list style to manufacturer ? no

 

have you set display manufacturer description to true? yep

 

does the manufacturer you have given a description to have products that are enabled? yes

 

:blush: :blush: :sweating: I now see the manufacturer description is only visible by th style manufacturer.

Oke!

sorry

 

But I have another question :wacko:

The right colomn (with the cart etc.) is removed to down cause the product listing is there. In your examples I see the right columns on their right place. I did played with the settings but It's still the same problem.

 

Sorry for all my questions.

 

Angelique

Link to comment
Share on other sites

colomn messed up

The right colomn (with the cart etc.) is removed to down cause the product listing is there. In your examples I see the right columns on their right place. I did played with the settings but It's still the same problem.

 

 

 

An unfortunate feature (if you can call it that) of osc is it is very tolarent of errors in table layouts (ie tables & or element being opened/closed in the wrong places)

 

The nature of some contributions (this being one of them) means that these errors do show up once the contribution is installed.

 

You need to go over your code & find where u have gone wrong, validating your site with w3c sometimes helps in finding them. Poeple often manage to mess suff up in their headers, check there first, it should have an equal number of open/close tables & elements.

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

Hello, I have a problem with the size of the pictures on my website after I installed this system. I know in a message long time ago you said:

 

"Have you run the setup file?, the setting in admin/configuration/product listing is Product Listing Image Width if that doesnt exist the image will be shown full size, whatever that is, it doesnt use any other settings.

 

The listing view use the SMALL_IMAGE_WIDTH / HEIGHT setiings if set to show a image."

 

I understand I have to run the setup file but where is it? How ca I Run it? I am trying the way to do it but I couldn't... sorry I know it may not be the first time someone ask this but I don't fine it. Please help me!!

 

You can see the error on my website: www.angelseductions.com/catalog/index.php?cPath=40

 

-------------------------------

 

I think I am suppose to see more options on Products Listing but this is the information I have on it:

 

 

Title Value Action

Display Product Image 1

Display Product Manufaturer Name 0

Display Product Model 0

Display Product Name 2

Display Product Price 3

Display Product Quantity 0

Display Product Weight 0

Display Buy Now column 4

Display Category/Manufacturer Filter (0=disable; 1=enable) 0

Location of Prev/Next Navigation Bar (1-top, 2-bottom, 3-both)

Link to comment
Share on other sites

Don't know how to install!!

 

In the doc it says:

 

Copy the included replacement product_listing.php to includes/modules/

Copy the included product_listing_setup.php to admin/

Copy the included button_details.gif and button_details_small.gif to includes/languages/english/images/buttons

Copy the included new_products.php to includes/modules/ if you wish to use it.

Copy the included products_new.php to your catalog root if you wish to use it.

 

did u do all that?

 

 

Then later on it says:

 

Log in to your admin, browse admin till the osCsiid no longer appears within the url, then goto the setup page by pasting into the url something like www.mysite.com/catalog/admin/product_listing_setup.php

If you have ssl you may need to preface with https ie: https//www.mysite.com/catalog/admin/product_listing_setup.php

 

did you miss that bit?

 

This thread may help yopu next time How do I install a contribution http://www.oscommerce.com/forums/index.php?showtopic=343384&st=0#entry1432157 smile.gif

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

Sorry!!! It is working now!!! I didn't know I was suppose to go to: www.mysite.com/catalog/admin/product_listing_setup.php

 

Thank you!!!! :D

Edited by SXM
Link to comment
Share on other sites

Hello, As I said the system is working good but I have another question. on "Sort Order:" it says: products NameAPHA_ORDER, PriceNUM_ORDER, etc... How can I change what it says? because I think my clients are not going to really know what it is. What exactly those terms mean?

Link to comment
Share on other sites

Hello, As I said the system is working good but I have another question. on "Sort Order:" it says: products NameAPHA_ORDER, PriceNUM_ORDER, etc... How can I change what it says? because I think my clients are not going to really know what it is. What exactly those terms mean?

 

 

It means there is other stuff you missed on the install as well, when you get these issues always triple check the install, 99% of times you have missed stuff or not followed instructions exactly. cool.gif

 

In this case you have failed to complete the changes to the language files, but best go over it all again, there could be more you missed!! smile.gif

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

Hi Spooks

 

Thanks for a Great Contribution. It looks very professional.

 

One thing that I am not too happy about is that I have to click ‘compatibility mode’ in IE8 to get the grid view to display the table spacing correctly. Is there anything I can do to avoid this from happening?

 

Also

 

I am trying to get this to W3 validate

 

I am using 3 products per row grid view which throws up errors for

"infoBoxGrid" width="33.333333333333%"

 

I’ve fixed this one by hardcoding 33% but I am sure there is a better way by adding an INT somewhere?

 

 

The one I am stuck with is

 

Warning: <form> anchor "cart_quantity" already defined

 

Any ideas on how to fix this Please?

 

Thanks

 

Ken

Link to comment
Share on other sites

 

 

The trouble with ie8 is that ms thinks its fully complient, but its ms, so of course it aint crying.gif , its a problem that occurs often, the only reliable solution I've found is to force compatibilty mode by adding:

 

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />

 

just after the doctype declaration, you'll need to do that in index.php & advanced_search_result.php

 

w3c issue

percent width, look for intances of:

 

width="'.(PRODUCTS_PER_ROW ? (100/PRODUCTS_PER_ROW) : '').'%"

 

replace with

 

width="'.(PRODUCTS_PER_ROW ? (int)(100/PRODUCTS_PER_ROW) : '').'%" 

 

For the form issue:

 

find:

$display .= $borderend . $form . '<br />' . (PRODUCT_LIST_OPTIONS == 'true' ? attribute_drop($products['products_id'],$products['products_tax_class_id']) . $button : $button) . '</form>';

add b4:

$form = 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'));

 

Not that the name is used anywhere!! smile.gif

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

Hi Spooks

 

Thank you very much for the code changes. It now W3 validates.

 

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7">

 

This line need to go into the head section and also need adding to New Products (if used)

 

There appears to be some defines missing from the New Products and from the instructions. I added these to \includes\languages\english\products_new.php

 

define('TABLE_HEADING_PRODUCTS', 'New Products');

define('TABLE_HEADING_PRICE', 'Price');

 

 

One more question if I may

 

I have this installed

1-2-3 Buttons for Mouseover Effect

http://www.oscommerce.com/community/contributions,4739

 

The mouseover effect is still working but the links no longer work.

 

Will I have to change back to standard buttons or is there any way to get these contributions to work together?

 

Thanks again

 

Ken

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...