osCommerce and osCMax shopping cart software forums

Shopping Cart Software

osCommerce with teeth!

 
 

Product display issue

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


Go Back   osCommerce and osCMax shopping cart software forums > osCMax v2.0 Forums > osCMax v2 Installation issues

Register FAQ Members List Calendar Mark Forums Read


Free community membership! Fast easy FREE membership
Closed Thread

 

LinkBack Thread Tools
  #1  
Old 01-29-2006, 04:11 PM
Member
 
Join Date: May 2004
Posts: 31
Thanks: 0
Thanked 0 Times in 0 Posts
Rep Power: 0
dmiles
Default Product display issue

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?
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Sponsored Links
Advertisement
  #2  
Old 02-08-2006, 10:47 AM
Member
 
Join Date: May 2004
Posts: 31
Thanks: 0
Thanked 0 Times in 0 Posts
Rep Power: 0
dmiles
Default

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?
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
  #3  
Old 02-08-2006, 03:39 PM
Member
 
Join Date: May 2004
Posts: 31
Thanks: 0
Thanked 0 Times in 0 Posts
Rep Power: 0
dmiles
Default

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?
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
  #4  
Old 02-13-2006, 03:23 PM
Active Member
 
Join Date: Oct 2005
Location: wherever I happen to be at the moment
Posts: 461
Thanks: 4
Thanked 79 Times in 73 Posts
Rep Power: 7
met00 is just really nicemet00 is just really nicemet00 is just really nicemet00 is just really nicemet00 is just really nice
Default

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
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
  #5  
Old 02-13-2006, 05:32 PM
Member
 
Join Date: May 2004
Posts: 31
Thanks: 0
Thanked 0 Times in 0 Posts
Rep Power: 0
dmiles
Default

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?
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
  #6  
Old 02-13-2006, 05:38 PM
Member
 
Join Date: May 2004
Posts: 31
Thanks: 0
Thanked 0 Times in 0 Posts
Rep Power: 0
dmiles
Default

OK, it appears that I am using product_listing_col . Here is the code:

&lt;?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) &amp;&amp; ( (PREV_NEXT_BAR_LOCATION == '1') || (PREV_NEXT_BAR_LOCATION == '3') ) ) {
?>
&lt;table border="0" width="100%" cellspacing="0" cellpadding="2">
&lt;tr>
&lt;td class="smallText">&lt;?php echo $listing_split->display_count(TEXT_DISPLAY_NUMBER_OF_PRODUCTS); ?>&lt;/td>
&lt;td class="smallText" align="right">&lt;?php echo TEXT_RESULT_PAGE . ' ' . $listing_split->display_links(MAX_DISPLAY_PAGE_LINKS, tep_get_all_get_params(array('page', 'info', 'x', 'y'))); ?>&lt;/td>
&lt;/tr>
&lt;/table>
&lt;?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 '&lt;pre>';
print_r($listing);
echo '&lt;/pre>';
*/
$select_list_of_prdct_ids = "products_id = '".$list_of_prdct_ids[0]."' ";
if ($no_of_listings > 1) {
for ($n = 1; $n &lt; 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 &lt; $no_of_listings; $x++) {
// replace products prices with those from customers_group table
if(!empty($new_prices)) {
for ($i = 0; $i &lt; 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 &lt; $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 &lt; $no_of_listings; $x++) {

if(!empty($new_s_prices)) {
for ($i = 0; $i &lt; 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 &lt; $no_of_listings; $x++)

// while ($listing = tep_db_fetch_array($listing_query)) { (was original code)
for ($x = 0; $x &lt; $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&lt;$n; $col++) {
$lc_align = '';

switch ($column_list[$col]) {
case 'PRODUCT_LIST_MODEL':
$lc_align = '';
$lc_text = '&amp;nbsp;' . $listing[$x]['products_model'] . '&amp;nbsp;';
break;
case 'PRODUCT_LIST_NAME':
$lc_align = '';
if (isset($HTTP_GET_VARS['manufacturers_id'])) {
$lc_text = '&lt;a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'manufacturers_id=' . $HTTP_GET_VARS['manufacturers_id'] . '&amp;products_id=' . $listing[$x]['products_id']) . '">' . $listing[$x]['products_name'] . '&lt;/a>';
} else {
$lc_text = '&amp;nbsp;&lt;a href="' . tep_href_link(FILENAME_PRODUCT_INFO, ($cPath ? 'cPath=' . $cPath . '&amp;' : '') . 'products_id=' . $listing[$x]['products_id']) . '">' . $listing[$x]['products_name'] . '&lt;/a>&amp;nbsp;';
}
break;
case 'PRODUCT_LIST_MANUFACTURER':
$lc_align = '';
$lc_text = '&amp;nbsp;&lt;a href="' . tep_href_link(FILENAME_DEFAULT, 'manufacturers_id=' . $listing[$x]['manufacturers_id']) . '">' . $listing[$x]['manufacturers_name'] . '&lt;/a>&amp;nbsp;';
break;
case 'PRODUCT_LIST_PRICE':
$lc_align = 'right';


if (tep_not_null($listing[$x]['specials_new_products_price'])) {
$lc_text = '&amp;nbsp;&lt;s>' . $currencies->display_price($listing[$x]['products_price'], tep_get_tax_rate($listing[$x]['products_tax_class_id'])) . '&lt;/s>&lt;br>&amp;nbsp;&amp;nbsp;&lt;span class="productSpecialPrice">' . $currencies->display_price($listing[$x]['specials_new_products_price'], tep_get_tax_rate($listing[$x]['products_tax_class_id'])) . '&lt;/span>&amp;nbsp;';
} else {
$lc_text = '&amp;nbsp;' . $currencies->display_price($listing[$x]['products_price'], tep_get_tax_rate($listing[$x]['products_tax_class_id'])) . '&amp;nbsp;';
}
break;
case 'PRODUCT_LIST_QUANTITY':
$lc_align = 'right';
$lc_text = '&amp;nbsp;' . $listing[$x]['products_quantity'] . '&amp;nbsp;';
break;
case 'PRODUCT_LIST_WEIGHT':
$lc_align = 'right';
$lc_text = '&amp;nbsp;' . $listing[$x]['products_weight'] . '&amp;nbsp;';
break;
case 'PRODUCT_LIST_IMAGE':
$lc_align = 'center';
if (isset($HTTP_GET_VARS['manufacturers_id'])) {
$lc_text = '&lt;a href="' . tep_href_link(FILENAME_PRODUCT_INFO, 'manufacturers_id=' . $HTTP_GET_VARS['manufacturers_id'] . '&amp;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) . '&lt;/a>';
} else {
$lc_text = '&amp;nbsp;&lt;a href="' . tep_href_link(FILENAME_PRODUCT_INFO, ($cPath ? 'cPath=' . $cPath . '&amp;' : '') . '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) . '&lt;/a>&amp;nbsp;';
}
break; // EOF Separate Pricing per Customer
case 'PRODUCT_LIST_BUY_NOW':
$lc_align = 'center';
$lc_text = '&lt;a href="' . tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('action', 'pName')) . 'action=buy_now&amp;products_id=' . $listing[$x]['products_id']) . '">' . tep_image_button('button_buy_now.gif', IMAGE_BUTTON_BUY_NOW) . '&lt;/a> ';
break;
}
$product_contents[] = $lc_text;

}
$lc_text = implode('&lt;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) &amp;&amp; ((PREV_NEXT_BAR_LOCATION == '2') || (PREV_NEXT_BAR_LOCATION == '3')) ) {
?>
&lt;table border="0" width="100%" cellspacing="0" cellpadding="2">
&lt;tr>
&lt;td class="smallText">&lt;?php echo $listing_split->display_count(TEXT_DISPLAY_NUMBER_OF_PRODUCTS); ?>&lt;/td>
&lt;td class="smallText" align="right">&lt;?php echo TEXT_RESULT_PAGE . ' ' . $listing_split->display_links(MAX_DISPLAY_PAGE_LINKS, tep_get_all_get_params(array('page', 'info', 'x', 'y'))); ?>&lt;/td>
&lt;/tr>
&lt;/table>
&lt;?php
}
?>
__________________
Learning osCommerce - a lifelong project?
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
  #7  
Old 02-13-2006, 08:35 PM
Active Member
 
Join Date: Oct 2005
Location: wherever I happen to be at the moment
Posts: 461
Thanks: 4
Thanked 79 Times in 73 Posts
Rep Power: 7
met00 is just really nicemet00 is just really nicemet00 is just really nicemet00 is just really nicemet00 is just really nice
Default

I can't debug for you, but I can tell you where I would put the debug lines.

After
Code:
for ($x = 0; $x &lt; $no_of_listings; $x++) {

$rows++;
add

echo "start loop: rows =".$rows."&lt;br>";

After
Code:
or ($col=0, $n=sizeof($column_list); $col&lt;$n; $col++) {
$lc_align = '';
echo "start loop: col =".$col."&lt;br>";

after
Code:
 $list_box_contents[$row][$column] = array('align' => 'center',
'params' => 'class="productListing-data"',
'text' => $lc_text);
echo "END loop: data =".urlencode($lc_text)."&lt;br>";

##

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);
This code
Code:
 new productListingBox($list_box_contents);
it's creating the final content box and when that is called you want to what has been loaded into it (and that is the END loop output that you should have from the directions above.

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);
creates the column box with your no content/products message.

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
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Sponsored Links
Advertisement
Closed Thread

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On

Similar Threads

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


All times are GMT -8. The time now is 12:21 AM.


Powered by vBulletin®
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
SEO by vBSEO
http://www.oscmax.com/forums/
Copyright 2008 osCMax