[ Index ] |
PHP Cross Reference of osCMax 2.0.4 |
[Summary view] [Print] [Text view]
1 <?php 2 /* 3 $Id: split_page_results.php 14 2006-07-28 17:42:07Z user $ 4 5 osCMax Power E-Commerce 6 http://oscdox.com 7 8 Copyright 2006 osCMax2005 osCMax, 2002 osCommerce 9 10 Released under the GNU General Public License 11 */ 12 13 class splitPageResults { 14 function splitPageResults(&$current_page_number, $max_rows_per_page, &$sql_query, &$query_num_rows) { 15 if (empty($current_page_number)) $current_page_number = 1; 16 17 $pos_to = strlen($sql_query); 18 $pos_from = strpos($sql_query, ' from', 0); 19 20 $pos_group_by = strpos($sql_query, ' group by', $pos_from); 21 if (($pos_group_by < $pos_to) && ($pos_group_by != false)) $pos_to = $pos_group_by; 22 23 $pos_having = strpos($sql_query, ' having', $pos_from); 24 if (($pos_having < $pos_to) && ($pos_having != false)) $pos_to = $pos_having; 25 26 $pos_order_by = strpos($sql_query, ' order by', $pos_from); 27 if (($pos_order_by < $pos_to) && ($pos_order_by != false)) $pos_to = $pos_order_by; 28 29 $reviews_count_query = tep_db_query("select count(*) as total " . substr($sql_query, $pos_from, ($pos_to - $pos_from))); 30 $reviews_count = tep_db_fetch_array($reviews_count_query); 31 $query_num_rows = $reviews_count['total']; 32 33 $num_pages = ceil($query_num_rows / $max_rows_per_page); 34 if ($current_page_number > $num_pages) { 35 $current_page_number = $num_pages; 36 } 37 $offset = ($max_rows_per_page * ($current_page_number - 1)); 38 // LINE CHANGED: MS2 update 501112-Added max(... , 0) 39 // $sql_query .= " limit " . $offset . ", " . $max_rows_per_page; 40 $sql_query .= " limit " . max($offset, 0) . ", " . $max_rows_per_page; 41 } 42 43 function display_links($query_numrows, $max_rows_per_page, $max_page_links, $current_page_number, $parameters = '', $page_name = 'page') { 44 global $PHP_SELF; 45 46 if ( tep_not_null($parameters) && (substr($parameters, -1) != '&') ) $parameters .= '&'; 47 48 // calculate number of pages needing links 49 $num_pages = ceil($query_numrows / $max_rows_per_page); 50 51 $pages_array = array(); 52 for ($i=1; $i<=$num_pages; $i++) { 53 $pages_array[] = array('id' => $i, 'text' => $i); 54 } 55 56 if ($num_pages > 1) { 57 $display_links = tep_draw_form('pages', basename($PHP_SELF), '', 'get'); 58 59 if ($current_page_number > 1) { 60 $display_links .= '<a href="' . tep_href_link(basename($PHP_SELF), $parameters . $page_name . '=' . ($current_page_number - 1), 'NONSSL') . '" class="splitPageLink">' . PREVNEXT_BUTTON_PREV . '</a> '; 61 } else { 62 $display_links .= PREVNEXT_BUTTON_PREV . ' '; 63 } 64 65 $display_links .= sprintf(TEXT_RESULT_PAGE, tep_draw_pull_down_menu($page_name, $pages_array, $current_page_number, 'onChange="this.form.submit();"'), $num_pages); 66 67 if (($current_page_number < $num_pages) && ($num_pages != 1)) { 68 $display_links .= ' <a href="' . tep_href_link(basename($PHP_SELF), $parameters . $page_name . '=' . ($current_page_number + 1), 'NONSSL') . '" class="splitPageLink">' . PREVNEXT_BUTTON_NEXT . '</a>'; 69 } else { 70 $display_links .= ' ' . PREVNEXT_BUTTON_NEXT; 71 } 72 73 if ($parameters != '') { 74 if (substr($parameters, -1) == '&') $parameters = substr($parameters, 0, -1); 75 $pairs = explode('&', $parameters); 76 while (list(, $pair) = each($pairs)) { 77 list($key,$value) = explode('=', $pair); 78 $display_links .= tep_draw_hidden_field(rawurldecode($key), rawurldecode($value)); 79 } 80 } 81 82 $display_links .= tep_hide_session_id() . '</form>'; 83 } else { 84 $display_links = sprintf(TEXT_RESULT_PAGE, $num_pages, $num_pages); 85 } 86 87 return $display_links; 88 } 89 90 function display_count($query_numrows, $max_rows_per_page, $current_page_number, $text_output) { 91 $to_num = ($max_rows_per_page * $current_page_number); 92 if ($to_num > $query_numrows) $to_num = $query_numrows; 93 $from_num = ($max_rows_per_page * ($current_page_number - 1)); 94 if ($to_num == 0) { 95 $from_num = 0; 96 } else { 97 $from_num++; 98 } 99 100 return sprintf($text_output, $from_num, $to_num, $query_numrows); 101 } 102 } 103 ?>
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Fri Jan 1 13:43:16 2010 | Cross-referenced by PHPXref 0.7 |