[ Index ]
 

Code source de Zen Cart E-Commerce Shopping Cart 1.3.7.1

Accédez au Source d'autres logiciels libres

Classes | Fonctions | Variables | Constantes | Tables

title

Body

[fermer]

/admin/includes/classes/ -> split_page_results.php (source)

   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>&nbsp;&nbsp;';
  78          } else {
  79            $display_links .= PREVNEXT_BUTTON_PREV . '&nbsp;&nbsp;';
  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 .= '&nbsp;&nbsp;<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 .= '&nbsp;&nbsp;' . 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  ?>


Généré le : Mon Nov 26 16:45:43 2007 par Balluche grâce à PHPXref 0.7
  Clicky Web Analytics