This is a discussion on Product display issue within the osCMax v2 Installation issues forums, part of the osCMax v2.0 Forums category; I am in the process of migrating our site to v2 from v1.55. Something unexpected is displaying after the last ...
| |||||||
| Register | FAQ | Members List | Calendar | Mark Forums Read |
|
#1
| |||
| |||
| I am in the process of migrating our site to v2 from v1.55. Something unexpected is displaying after the last product on the page. Here is a link to a sample page: http://66.197.244.229/~patricia/index.php?cPath=25 Look under the last item (the green Romantic Roses purse) and you can see what looks like a column of gray bars. They look as though there was an attempt to list more items, but there was nothing there to be listed. The number of 'gray bars' that appear on any given page increases as the number of products on the page increase. When I look at the source for the page displayed, I see this after the products: <tr class="productListing-even"> <td class="productListing-even"></td> </tr> <tr class="productListing-odd"> <td class="productListing-odd"></td> </tr> <tr class="productListing-even"> <td class="productListing-even"></td> </tr> <tr class="productListing-odd"> <td class="productListing-odd"></td> </tr> <tr class="productListing-even"> <td class="productListing-even"></td> </tr> <tr class="productListing-odd"> <td class="productListing-odd"></td> </tr> This same setup worked fine in v1.55. Thank you in advance for any help.
__________________ Learning osCommerce - a lifelong project? |
| Sponsored Links | ||
| ||
| |
|
#2
| |||
| |||
| I wanted to bring this issue to the top again to see if anyone has an idea of the cause of the problem. I uploaded and installed a stock store as a test. I also created a new database. I then created multiple products and the problem is still showing. When I display the products in one continuous column, the problem is not there. The problem only shows up when displaying multiple columns. TIA
__________________ Learning osCommerce - a lifelong project? |
|
#3
| |||
| |||
| I have submitted a bug report on this issue as I have seen the same problem on other osCMax sites.
__________________ Learning osCommerce - a lifelong project? |
|
#4
| |||
| |||
| the cause is a php error in the loop that is doing the line count. Which display module are you using (product_listing_col)?
__________________ so endith the lesson<think>sometimes I just sit's and thinks</think> "Here you are with a hand full of holes, a thumb up your ass, and a big grin to pass the time of day with." - TWB |
|
#5
| |||
| |||
| I am not sure which module I am using. How can I tell? I am displaying products in multiple columns as opposed to one continuous column.
__________________ Learning osCommerce - a lifelong project? |
|
#6
| |||
| |||
| OK, it appears that I am using product_listing_col . Here is the code: <?php /* $Id: product_listing_col.php,v 1.3.4.1 2005/09/18 22:38:26 Michael Sasek Exp $ */ $listing_split = new splitPageResults($listing_sql, MAX_DISPLAY_SEARCH_RESULTS, 'p.products_id'); if ( ($listing_split->number_of_rows > 0) && ( (PREV_NEXT_BAR_LOCATION == '1') || (PREV_NEXT_BAR_LOCATION == '3') ) ) { ?> <table border="0" width="100%" cellspacing="0" cellpadding="2"> <tr> <td class="smallText"><?php echo $listing_split->display_count(TEXT_DISPLAY_NUMBER_OF_PRODUCTS); ?></td> <td class="smallText" align="right"><?php echo TEXT_RESULT_PAGE . ' ' . $listing_split->display_links(MAX_DISPLAY_PAGE_LINKS, tep_get_all_get_params(array('page', 'info', 'x', 'y'))); ?></td> </tr> </table> <?php } $list_box_contents = array(); if ($listing_split->number_of_rows > 0) { $row = 0; $column = 0; $listing_query = tep_db_query($listing_split->sql_query); // BOF Separate Pricing per Customer $no_of_listings = tep_db_num_rows($listing_query); // global variable (session) $sppc_customer_group_id -> local variable customer_group_id if(!tep_session_is_registered('sppc_customer_group _id')) { $customer_group_id = '0'; } else { $customer_group_id = $sppc_customer_group_id; } while ($_listing = tep_db_fetch_array($listing_query)) { $listing[] = $_listing; $list_of_prdct_ids[] = $_listing['products_id']; } // next part is a debug feature, when uncommented it will print the info that this module receives /* echo '<pre>'; print_r($listing); echo '</pre>'; */ $select_list_of_prdct_ids = "products_id = '".$list_of_prdct_ids[0]."' "; if ($no_of_listings > 1) { for ($n = 1; $n < count($list_of_prdct_ids); $n++) { $select_list_of_prdct_ids .= "or products_id = '".$list_of_prdct_ids[$n]."' "; } } // get all product prices for products with the particular customer_group_id // however not necessary for customer_group_id = 0 if ($customer_group_id != '0') { $pg_query = tep_db_query("select pg.products_id, customers_group_price as price from " . TABLE_PRODUCTS_GROUPS . " pg where (".$select_list_of_prdct_ids.") and pg.customers_group_id = '".$customer_group_id."' "); // $no_of_pg_products = tep_db_num_rows($pg_query); while ($pg_array = tep_db_fetch_array($pg_query)) { $new_prices[] = array ('products_id' => $pg_array['products_id'], 'products_price' => $pg_array['price'], 'specials_new_products_price' => '', 'final_price' => $pg_array['price']); } for ($x = 0; $x < $no_of_listings; $x++) { // replace products prices with those from customers_group table if(!empty($new_prices)) { for ($i = 0; $i < count($new_prices); $i++) { if( $listing[$x]['products_id'] == $new_prices[$i]['products_id'] ) { $listing[$x]['products_price'] = $new_prices[$i]['products_price']; $listing[$x]['specials_new_products_price'] = $new_prices[$i]['specials_new_products_price']; $listing[$x]['final_price'] = $new_prices[$i]['final_price']; } } } // end if(!empty($new_prices) $listing[$x]['specials_new_products_price'] = ''; // makes sure that a retail specials price doesn't carry over to another customer group $listing[$x]['final_price'] = $listing[$x]['products_price']; // final price should not be the retail special price } // end for ($x = 0; $x < $no_of_listings; $x++) } // end if ($customer_group_id != '0') // an extra query is needed for all the specials $specials_query = tep_db_query("select products_id, specials_new_products_price from " . TABLE_SPECIALS . " where (".$select_list_of_prdct_ids.") and status = '1' and customers_group_id = '" .$customer_group_id. "'"); while ($specials_array = tep_db_fetch_array($specials_query)) { $new_s_prices[] = array ('products_id' => $specials_array['products_id'], 'products_price' => '', 'specials_new_products_price' => $specials_array['specials_new_products_price'] , 'final_price' => $specials_array['specials_new_products_price']); } // add the correct specials_new_products_price and replace final_price for ($x = 0; $x < $no_of_listings; $x++) { if(!empty($new_s_prices)) { for ($i = 0; $i < count($new_s_prices); $i++) { if( $listing[$x]['products_id'] == $new_s_prices[$i]['products_id'] ) { $listing[$x]['specials_new_products_price'] = $new_s_prices[$i]['specials_new_products_price']; $listing[$x]['final_price'] = $new_s_prices[$i]['final_price']; } } } // end if(!empty($new_s_prices) } // end for ($x = 0; $x < $no_of_listings; $x++) // while ($listing = tep_db_fetch_array($listing_query)) { (was original code) for ($x = 0; $x < $no_of_listings; $x++) { $rows++; if (($rows/2) == floor($rows/2)) { $list_box_contents[] = array('params' => 'class="productListing-even"'); } else { $list_box_contents[] = array('params' => 'class="productListing-odd"'); } $product_contents = array(); for ($col=0, $n=sizeof($column_list); $col<$n; $col++) { $lc_align = ''; switch ($column_list[$col]) { case 'PRODUCT_LIST_MODEL': $lc_align = ''; $lc_text = '&nbsp;' . $listing[$x]['products_model'] . '&nbsp;'; break; case 'PRODUCT_LIST_NAME': $lc_align = ''; if (isset($HTTP_GET_VARS['manufacturers_id'])) { $lc_text = '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'manufacturers_id=' . $HTTP_GET_VARS['manufacturers_id'] . '&products_id=' . $listing[$x]['products_id']) . '">' . $listing[$x]['products_name'] . '</a>'; } else { $lc_text = '&nbsp;<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, ($cPath ? 'cPath=' . $cPath . '&' : '') . 'products_id=' . $listing[$x]['products_id']) . '">' . $listing[$x]['products_name'] . '</a>&nbsp;'; } break; case 'PRODUCT_LIST_MANUFACTURER': $lc_align = ''; $lc_text = '&nbsp;<a href="' . tep_href_link(FILENAME_DEFAULT, 'manufacturers_id=' . $listing[$x]['manufacturers_id']) . '">' . $listing[$x]['manufacturers_name'] . '</a>&nbsp;'; break; case 'PRODUCT_LIST_PRICE': $lc_align = 'right'; if (tep_not_null($listing[$x]['specials_new_products_price'])) { $lc_text = '&nbsp;<s>' . $currencies->display_price($listing[$x]['products_price'], tep_get_tax_rate($listing[$x]['products_tax_class_id'])) . '</s><br>&nbsp;&nbsp;<span class="productSpecialPrice">' . $currencies->display_price($listing[$x]['specials_new_products_price'], tep_get_tax_rate($listing[$x]['products_tax_class_id'])) . '</span>&nbsp;'; } else { $lc_text = '&nbsp;' . $currencies->display_price($listing[$x]['products_price'], tep_get_tax_rate($listing[$x]['products_tax_class_id'])) . '&nbsp;'; } break; case 'PRODUCT_LIST_QUANTITY': $lc_align = 'right'; $lc_text = '&nbsp;' . $listing[$x]['products_quantity'] . '&nbsp;'; break; case 'PRODUCT_LIST_WEIGHT': $lc_align = 'right'; $lc_text = '&nbsp;' . $listing[$x]['products_weight'] . '&nbsp;'; break; case 'PRODUCT_LIST_IMAGE': $lc_align = 'center'; if (isset($HTTP_GET_VARS['manufacturers_id'])) { $lc_text = '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'manufacturers_id=' . $HTTP_GET_VARS['manufacturers_id'] . '&products_id=' . $listing[$x]['products_id']) . '">' . tep_image(DIR_WS_IMAGES . $listing[$x]['products_image'], $listing[$x]['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . '</a>'; } else { $lc_text = '&nbsp;<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, ($cPath ? 'cPath=' . $cPath . '&' : '') . 'products_id=' . $listing[$x]['products_id']) . '">' . tep_image(DIR_WS_IMAGES . $listing[$x]['products_image'], $listing[$x]['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . '</a>&nbsp;'; } break; // EOF Separate Pricing per Customer case 'PRODUCT_LIST_BUY_NOW': $lc_align = 'center'; $lc_text = '<a href="' . tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('action', 'pName')) . 'action=buy_now&products_id=' . $listing[$x]['products_id']) . '">' . tep_image_button('button_buy_now.gif', IMAGE_BUTTON_BUY_NOW) . '</a> '; break; } $product_contents[] = $lc_text; } $lc_text = implode('<br>', $product_contents); $list_box_contents[$row][$column] = array('align' => 'center', 'params' => 'class="productListing-data"', 'text' => $lc_text); $column ++; if ($column >= PRODUCT_LIST_NUM_COLUMNS) { $row ++; $column = 0; } } new productListingBox($list_box_contents); } 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 ( ($listing_split->number_of_rows > 0) && ((PREV_NEXT_BAR_LOCATION == '2') || (PREV_NEXT_BAR_LOCATION == '3')) ) { ?> <table border="0" width="100%" cellspacing="0" cellpadding="2"> <tr> <td class="smallText"><?php echo $listing_split->display_count(TEXT_DISPLAY_NUMBER_OF_PRODUCTS); ?></td> <td class="smallText" align="right"><?php echo TEXT_RESULT_PAGE . ' ' . $listing_split->display_links(MAX_DISPLAY_PAGE_LINKS, tep_get_all_get_params(array('page', 'info', 'x', 'y'))); ?></td> </tr> </table> <?php } ?>
__________________ Learning osCommerce - a lifelong project? |
|
#7
| |||
| |||
| I can't debug for you, but I can tell you where I would put the debug lines. After Code: for ($x = 0; $x < $no_of_listings; $x++) {
$rows++;
echo "start loop: rows =".$rows."<br>"; After Code: or ($col=0, $n=sizeof($column_list); $col<$n; $col++) {
$lc_align = '';
after Code: $list_box_contents[$row][$column] = array('align' => 'center',
'params' => 'class="productListing-data"',
'text' => $lc_text);
## The goal here is to see HOW the loop is running and what it's trying to put into the table datas and table rows. If you see that you are getting END output with no data, then you can see why (possibly the floor(), but I wouldn't know unless I started debugging to determine what is happening ion the loops). Debugging in a loop is real simple. - 1: check the start of the loop 2: check at the end of the loop If you see things that aren't adding up, it's some math error in the processing of the loop. Here are the keys. This code is what is loading the array for the column display Code: $list_box_contents[$row][$column] = array('align' => 'center',
'params' => 'class="productListing-data"',
'text' => $lc_text);
Code: new productListingBox($list_box_contents); example of loading the array and then printing it: Code:
$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);
Hope this helps you debug the code.
__________________ so endith the lesson<think>sometimes I just sit's and thinks</think> "Here you are with a hand full of holes, a thumb up your ass, and a big grin to pass the time of day with." - TWB |
| Sponsored Links | ||
| ||
| Thread Tools | |
| |
| ||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Issue with edit product description | auntie22 | osCMax v1.7 Discussion | 1 | 12-22-2005 04:27 PM |
| 1 product per line display - how? | jloyzaga | osCMax v1.7 Discussion | 0 | 03-25-2004 01:24 AM |
| Is there away to display the Product Name in the Title Bar? | interweb | osCommerce 2.2 Modification Help | 0 | 07-04-2003 07:09 PM |
| Anyone know of a mod to display multiple product images | Dr_Evil | osCommerce 2.2 Modification Help | 8 | 02-17-2003 12:54 AM |
| Editing New Product Display | ajabby | osCommerce 2.2 Modification Help | 0 | 02-05-2003 11:19 AM |