[ Index ] |
|
Code source de Zen Cart E-Commerce Shopping Cart 1.3.7.1 |
1 <?php 2 // 3 // +----------------------------------------------------------------------+ 4 // |zen-cart Open Source E-commerce | 5 // +----------------------------------------------------------------------+ 6 // | Copyright (c) 2003 The zen-cart developers | 7 // | | 8 // | http://www.zen-cart.com/index.php | 9 // | | 10 // | Portions Copyright (c) 2003 osCommerce | 11 // +----------------------------------------------------------------------+ 12 // | This source file is subject to version 2.0 of the GPL license, | 13 // | that is bundled with this package in the file LICENSE, and is | 14 // | available through the world-wide-web at the following url: | 15 // | http://www.zen-cart.com/license/2_0.txt. | 16 // | If you did not receive a copy of the zen-cart license and are unable | 17 // | to obtain it through the world-wide-web, please send a note to | 18 // | license@zen-cart.com so we can mail you a copy immediately. | 19 // +----------------------------------------------------------------------+ 20 // $Id: split_page_results.php 4681 2006-10-06 19:46:03Z wilt $ 21 // 22 23 class splitPageResults { 24 function splitPageResults(&$current_page_number, $max_rows_per_page, &$sql_query, &$query_num_rows) { 25 global $db; 26 if (empty($current_page_number)) $current_page_number = 1; 27 $current_page_number = (int)$current_page_number; 28 29 $pos_to = strlen($sql_query); 30 $query_lower = strtolower($sql_query); 31 $pos_from = strpos($query_lower, ' from', 0); 32 33 $pos_group_by = strpos($query_lower, ' group by', $pos_from); 34 if (($pos_group_by < $pos_to) && ($pos_group_by != false)) $pos_to = $pos_group_by; 35 36 $pos_having = strpos($query_lower, ' having', $pos_from); 37 if (($pos_having < $pos_to) && ($pos_having != false)) $pos_to = $pos_having; 38 39 $pos_order_by = strpos($query_lower, ' order by', $pos_from); 40 if (($pos_order_by < $pos_to) && ($pos_order_by != false)) $pos_to = $pos_order_by; 41 42 43 $reviews_count = $db->Execute("select count(*) as total " . 44 substr($sql_query, $pos_from, ($pos_to - $pos_from))); 45 46 $query_num_rows = $reviews_count->fields['total']; 47 48 $num_pages = ceil($query_num_rows / $max_rows_per_page); 49 if ($current_page_number > $num_pages) { 50 $current_page_number = $num_pages; 51 } 52 $offset = ($max_rows_per_page * ($current_page_number - 1)); 53 54 // fix offset error on some versions 55 if ($offset < 0) { $offset = 0; } 56 57 $sql_query .= " limit " . $offset . ", " . $max_rows_per_page; 58 } 59 60 function display_links($query_numrows, $max_rows_per_page, $max_page_links, $current_page_number, $parameters = '', $page_name = 'page') { 61 global $PHP_SELF; 62 $current_page_number = (int)$current_page_number; 63 if ( zen_not_null($parameters) && (substr($parameters, -1) != '&') ) $parameters .= '&'; 64 65 // calculate number of pages needing links 66 $num_pages = ceil($query_numrows / $max_rows_per_page); 67 68 $pages_array = array(); 69 for ($i=1; $i<=$num_pages; $i++) { 70 $pages_array[] = array('id' => $i, 'text' => $i); 71 } 72 73 if ($num_pages > 1) { 74 $display_links = zen_draw_form('pages', basename($PHP_SELF), '', 'get'); 75 76 if ($current_page_number > 1) { 77 $display_links .= '<a href="' . zen_href_link(basename($PHP_SELF), $parameters . $page_name . '=' . ($current_page_number - 1), 'NONSSL') . '" class="splitPageLink">' . PREVNEXT_BUTTON_PREV . '</a> '; 78 } else { 79 $display_links .= PREVNEXT_BUTTON_PREV . ' '; 80 } 81 82 $display_links .= sprintf(TEXT_RESULT_PAGE, zen_draw_pull_down_menu($page_name, $pages_array, $current_page_number, 'onChange="this.form.submit();"'), $num_pages); 83 84 if (($current_page_number < $num_pages) && ($num_pages != 1)) { 85 $display_links .= ' <a href="' . zen_href_link(basename($PHP_SELF), $parameters . $page_name . '=' . ($current_page_number + 1), 'NONSSL') . '" class="splitPageLink">' . PREVNEXT_BUTTON_NEXT . '</a>'; 86 } else { 87 $display_links .= ' ' . PREVNEXT_BUTTON_NEXT; 88 } 89 90 if ($parameters != '') { 91 if (substr($parameters, -1) == '&') $parameters = substr($parameters, 0, -1); 92 $pairs = explode('&', $parameters); 93 while (list(, $pair) = each($pairs)) { 94 list($key,$value) = explode('=', $pair); 95 $display_links .= zen_draw_hidden_field(rawurldecode($key), rawurldecode($value)); 96 } 97 } 98 99 if (SID) $display_links .= zen_draw_hidden_field(zen_session_name(), zen_session_id()); 100 101 $display_links .= '</form>'; 102 } else { 103 $display_links = sprintf(TEXT_RESULT_PAGE, $num_pages, $num_pages); 104 } 105 106 return $display_links; 107 } 108 109 function display_count($query_numrows, $max_rows_per_page, $current_page_number, $text_output) { 110 $current_page_number = (int)$current_page_number; 111 $to_num = ($max_rows_per_page * $current_page_number); 112 if ($to_num > $query_numrows) $to_num = $query_numrows; 113 $from_num = ($max_rows_per_page * ($current_page_number - 1)); 114 if ($to_num == 0) { 115 $from_num = 0; 116 } else { 117 $from_num++; 118 } 119 120 return sprintf($text_output, $from_num, $to_num, $query_numrows); 121 } 122 } 123 ?>
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Mon Nov 26 16:45:43 2007 | par Balluche grâce à PHPXref 0.7 |
![]() |