albundy Posted February 3, 2007 Posted February 3, 2007 hi there, i have problems with products_listing.php file which belongs to a template of monstertemplate. Everything works fine but if there are more then one page of products to show i get a blank page and the whole site hangs. I have try to find the problem but can't find it. Maybe somebody here can look at the file and tell me what is wrong? Thank you for your help Marcel source products_listing.php <?php /* $Id: product_listing_col.php,v 1.1.1.1 2004/03/04 23:41:11 ccwjr Exp $ */ $listing_sql = preg_replace('/pd\.products_name/i', 'pd.products_name, pd.products_description', $listing_sql); $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) { $listing_query = tep_db_query($listing_split->sql_query); $row = 0; $column = 0; // Eversun mod for sppp // while ($listing = tep_db_fetch_array($listing_query)) { // $rows++; $no_of_listings = tep_db_num_rows($listing_query); 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']; } $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]['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++) for ($x = 0; $x < $no_of_listings; $x++) { $rows++; // Eversun mod for spp $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 = ''; // Eversun mod for spp // $lc_text = ' ' . $listing['products_model'] . ' '; // $lc_text = ' ' . $listing[$x]['products_model'] . ' '; // Eversun mod for spp break; case 'PRODUCT_LIST_NAME': $lc_align = ''; $lc_name = '<a href="' . tep_href_link(FILENAME_PRODUCT_INFO, ($cPath ? 'cPath=' . $cPath . '&' : '') . 'products_id=' . $listing[$x]['products_id']) . '" class=ml2>' . $listing[$x]['products_name'] . '</a> '; $lc_link = tep_href_link(FILENAME_PRODUCT_INFO, ($cPath ? 'cPath=' . $cPath . '&' : '') . 'products_id=' . $listing[$x]['products_id']); break; case 'PRODUCT_LIST_MANUFACTURER': $lc_align = ''; $lc_manu = ' <a href="' . tep_href_link(FILENAME_DEFAULT, 'manufacturers_id=' . $listing[$x]['manufacturers_id']) . '">' . $listing[$x]['manufacturers_name'] . '</a> '; break; case 'PRODUCT_LIST_PRICE': $lc_align = 'right'; $pf->loadProduct($listing[$x]['products_id'],$languages_id); $lc_price = preg_replace('/ /i', ' ', $pf->getPriceStringShort()); break; case 'PRODUCT_LIST_QUANTITY': $lc_align = 'right'; $lc_qty = ' ' . $listing[$x]['products_quantity'] . ' '; break; case 'PRODUCT_LIST_WEIGHT': $lc_align = 'right'; $lc_weight = ' ' . $listing[$x]['products_weight'] . ' '; break; case 'PRODUCT_LIST_IMAGE': if (isset($HTTP_GET_VARS['manufacturers_id'])) { $lc_image = '<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,'align="left" style="margin:0px 10px 0px 0px "') . '</a>'; } else { $lc_image = '<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,'align="left" style="margin:0px 10px 0px 0px "') . '</a> '; } break; case 'PRODUCT_LIST_BUY_NOW': $lc_align = 'center'; $lc_buy_now = '<a href="' . tep_href_link(basename($PHP_SELF), tep_get_all_get_params(array('action')) . 'action=buy_now&products_id=' . $listing[$x]['products_id']) . '" class="margin5">' . tep_template_image_button('button_in_cart.gif', IMAGE_BUTTON_BUY_NOW) . '</a>'; break; } $product_contents[] = $lc_text; } $lc_text = implode('<br>', $product_contents); $list_box_contents[$row][$column] = array('id' => $listing[$x]['products_id'], 'description' => $listing[$x]['products_description'], 'align' => 'center', 'params' => 'class="productListing-data"', 'name' => $lc_name, 'image' => $lc_image, 'price' => $lc_price, 'weight' => $lc_weight, 'buy_now' => $lc_buy_now, 'manu' => $lc_manu, 'qty' => $lc_qty, 'text' => $lc_text, 'link' => $lc_link); $column ++; if ($column >= COLUMN_COUNT) { $row ++; $column = 0; } } echo '<table cellspacing=0 cellpadding=0 width=100%>'; while(list($row_id, $row) = each($list_box_contents)){ while(list($cell_id, $cell) = each($row)){ echo '<tr><td> <table border="0" cellpadding="0" cellspacing="0"> <tr> <td> <!--Products Image goes here//--> <a href="' . $cell['link'] . '">' . $cell['image']. '</a> </td> <td><img alt="" src="'.DIR_WS_TEMPLATES . TEMPLATE_NAME.'/images/ch_r1.gif" style="margin:12px 4px 0 0;"></td> <td><table border="0" cellpadding="0" cellspacing="0"> <tr><td class="deep"> <strong> <!--Products Link goes here//--> <a href=" ' . $cell['link'] . ' "> <!--Products Name goes here//--> '.$cell['name']. ' </a></strong><br><br style="line-height:5px;"> <!--Products Description goes here//--> '.substr($cell['description'],0,25).' <br><br style="line-height:9px;"> <b> <!--Products Price goes here//--> '.$cell['price'].' </b><br><br style="line-height:9px;"> <!--Buttons go here SAME //--> <a href="' . $cell['link'] . '" class="margin4" style="margin:0px 1px 0px 0px ">' . tep_image_button('small_view.gif') . '</a><a href="' . $cell['link']. 'action=buy_now' . '"style="margin-left:3px;">' .tep_image_button('button_in_cart.gif').'</a> </td></tr> </table></td> </tr> </table> </td> </tr> <tr><td><img alt="" src="'.DIR_WS_TEMPLATES . TEMPLATE_NAME.'/images/spacer.gif" width="1" height="7"></td></tr>'; } } echo '</table>'; } 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 } ?>
khime Posted February 3, 2007 Posted February 3, 2007 Its quite hard to look at the code and see where its going wrong, normally when I encounter a blank screen (meaning there is a bug) I usually got to my hosting company website admin and look for the "error logs" this should show where your website crashed (probably /index.php?) and the error it encountered. Usually for me its a missing or extra ' or " I hope this helps
albundy Posted February 3, 2007 Author Posted February 3, 2007 Its quite hard to look at the code and see where its going wrong, normally when I encounter a blank screen (meaning there is a bug) I usually got to my hosting company website admin and look for the "error logs" this should show where your website crashed (probably /index.php?) and the error it encountered. Usually for me its a missing or extra ' or " I hope this helps i just look into the error.log file but there is nothing only a complain the a picture not exist. The other strange thing that on my local server where i run easyphp under windows xp the error not exist.
jonquil Posted February 3, 2007 Posted February 3, 2007 albundy is running on CRE Loaded 6.0. The site is actually locking up any browser (which requires a relaunch :(). I have advised that he post his issue to the relevant forum. jon It's all just ones and zeros....
Recommended Posts
Archived
This topic is now archived and is closed to further replies.