sql_query = preg_replace("/\n\r|\r\n|\n|\r/", " ", $query); $this->page_name = $page_holder; if (isset($_GET[$page_holder])) { $page = $_GET[$page_holder]; } elseif (isset($_POST[$page_holder])) { $page = $_POST[$page_holder]; } else { $page = 1; } if (empty($page) || !is_numeric($page) || $page < 0) $page = 1; $this->current_page_number = $page; $this->number_of_rows_per_page = $max_rows; $pos_to = strlen($this->sql_query); $pos_from = strpos($this->sql_query, 'FROM', 0); $pos_group_by = strpos($this->sql_query, ' GROUP BY', $pos_from); if (($pos_group_by < $pos_to) && ($pos_group_by != false)) $pos_to = $pos_group_by; $pos_having = strpos($this->sql_query, ' HAVING', $pos_from); if (($pos_having < $pos_to) && ($pos_having != false)) $pos_to = $pos_having; $pos_order_by = strpos($this->sql_query, ' ORDER BY', $pos_from); if (($pos_order_by < $pos_to) && ($pos_order_by != false)) $pos_to = $pos_order_by; $dbconn =& oosDBGetConn(); $sql = "SELECT COUNT(" . oos_db_input($count_key) . ") AS total " . substr($this->sql_query, $pos_from, ($pos_to - $pos_from)); $count = $dbconn->Execute($sql); $this->number_of_rows = $count->fields['total']; if ($this->number_of_rows_per_page > 0) { $this->number_of_pages = ceil($this->number_of_rows / $this->number_of_rows_per_page); } else { $this->number_of_pages = 0; } if ($this->current_page_number > $this->number_of_pages) { $this->current_page_number = $this->number_of_pages; } $offset = ($this->number_of_rows_per_page * ($this->current_page_number - 1)); if ($offset <= 0) { $offset = 0; } if ($this->current_page_number <=0) {$this->current_page_number = 1;} # $this->sql_query .= " LIMIT " . ($offset > 0 ? $offset . ", " : '') . $this->number_of_rows_per_page; $this->sql_query .= " LIMIT " . max($offset, 0) . ", " . $this->number_of_rows_per_page; } /** * display split-page-number-links * * @param $this->number_of_rows * @param $this->number_of_rows_per_page * @param $max_page_links * @param $current_page_number * @param $parameters * @return string */ public function display_links($max_page_links, $parameters = '') { global $aLang, $sContent; $display_link = ''; if ( oos_is_not_null($parameters) && (substr($parameters, -5) != '&') ) $parameters .= '&'; // previous button - not displayed on first page if ($this->current_page_number > 1) { $display_link .= '