albundy Posted February 2, 2007 Share Posted February 2, 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 } ?> Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.