[ Index ]

PHP Cross Reference of osCMax 2.0.4

title

Body

[close]

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

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


Generated: Fri Jan 1 13:43:16 2010 Cross-referenced by PHPXref 0.7