getOffset(); $params['step'] = $resultSet->getMaxRecords(); $params['estimate'] = $resultSet->getEstimate(); } $html = ''; $default_type = 'absolute_path'; // Check main params and return no pagination links if there is a mistake if (! isset($params['cant']) || $params['cant'] <= 0) { return ''; } if (isset($params['step']) && $params['step'] == -1) { return '';// display all } if (! isset($params['offset'])) { $params['offset'] = 0; } if (! isset($params['offset_arg'])) { $params['offset_arg'] = 'offset'; } if (! isset($params['zero_based_offset'])) { $params['zero_based_offset'] = 'y'; } if (! isset($params['show_numbers'])) { $params['show_numbers'] = 'y'; } if (! isset($params['_onclick'])) { $params['_onclick'] = ''; } if ($params['zero_based_offset'] != 'y') { //$params['offset']--; $zero_based_min = 1; $zero_based_maxminus = 0; } else { $zero_based_min = 0; $zero_based_maxminus = 1; } $params['_ajax'] = isset($params['_ajax']) ? $params['_ajax'] : 'y'; if ( isset($params['reloff']) && ( $params['reloff'] + $params['offset'] >= $params['cant'] || $params['reloff'] + $params['offset'] < $zero_based_min ) ) { return ''; } if (! isset($params['reloff']) && ($params['offset'] >= $params['cant'] + $zero_based_min || $params['offset'] < $zero_based_min)) { return ''; } // Include smarty functions used below $smarty->loadPlugin('smarty_block_ajax_href'); $smarty->loadPlugin('smarty_function_query'); $smarty->loadPlugin('smarty_function_icon'); // Make sure every params are initialized if (! isset($params['itemname'])) { $params['itemname'] = 'Page'; } if (! isset($params['noimg'])) { $params['noimg'] = ($prefs['pagination_icons'] == 'n'); } if (! isset($params['usedots'])) { $params['usedots'] = 'y'; } if (! isset($params['class'])) { $params['class'] = 'mini'; } if (! isset($params['htmlelement'])) { $params['htmlelement'] = 'tiki-center'; } if (! isset($params['template'])) { $params['template'] = basename($_SERVER['PHP_SELF'], '.php') . '.tpl'; if ($params['template'] == 'tiki-index.tpl') { $params['template'] = 'tiki-show_page.tpl'; } } if (! file_exists('templates/' . $params['template']) || $params['template'] == 'noauto') { $params['htmlelement'] = ''; $params['template'] = ''; } if (! isset($params['step']) || $params['step'] <= 0) { $params['step'] = 1; $nb_pages = $params['cant']; } else { $nb_pages = ceil($params['cant'] / $params['step']); } if ($nb_pages == 0 || ($nb_pages == 1 && $prefs['pagination_hide_if_one_page'] == 'y')) { return ''; } if (empty($url) || preg_match('/^\s*$/', $url)) { $url = smarty_function_query(['_type' => $default_type], $smarty); } // remove empty url arguments (done by default) if (! isset($params['clean']) || $params['clean'] == 'y') { $url = preg_replace('/(?<=\?|&)[^=]+=(?=&|$)/U', '', $url); } // remove old arguments that will be replaced and add new ones $url = preg_replace('/(?<=&|&|\?)(move|reloff|' . $params['offset_arg'] . ')=[^&]*/', '', trim($url)); // remove & that are redundant or at the end of url $url = preg_replace('/(?:(\?|&)(&)+|(\?|&))$/', '\\1', $url); $url_args_pos = strpos($url, '?'); if ($url_args_pos === false) { $url .= '?'; } elseif ($url_args_pos < strlen($url) - 1) { $url .= '&'; } if (isset($params['reloff'])) { $prev_offset = 'reloff=' . ($params['reloff'] - $params['step']) . '&' . $params['offset_arg'] . '=' . $params['offset']; $next_offset = 'reloff=' . ($params['reloff'] + $params['step']) . '&' . $params['offset_arg'] . '=' . $params['offset']; $prev_fast_offset = 'reloff=' . ($params['reloff'] - $params['step'] * ceil( $nb_pages / 10 )) . '&' . $params['offset_arg'] . '=' . $params['offset']; $next_fast_offset = 'reloff=' . ($params['reloff'] + $params['step'] * ceil( $nb_pages / 10 )) . '&' . $params['offset_arg'] . '=' . $params['offset']; $real_offset = $params['offset'] + $params['reloff']; } else { $prev_offset_val = max($zero_based_min, $params['offset'] - $params['step']); $prev_offset = $params['offset_arg'] . '=' . $prev_offset_val; $next_offset_val = min($params['cant'] - $zero_based_maxminus, $params['offset'] + $params['step']); $next_offset = $params['offset_arg'] . '=' . $next_offset_val; $prev_fast_offset_val = max($zero_based_min, $params['offset'] - $params['step'] * ceil($nb_pages / 10)); $prev_fast_offset = $params['offset_arg'] . '=' . $prev_fast_offset_val; $next_fast_offset_val = min( $params['cant'] - $zero_based_maxminus, $params['offset'] + $params['step'] * ceil($nb_pages / 10) ); $next_fast_offset = $params['offset_arg'] . '=' . $next_fast_offset_val; $real_offset = $params['offset']; } if (! isset($params['next'])) { $params['next'] = ($real_offset < ($nb_pages - $zero_based_maxminus) * $params['step']) ? 'y' : 'n'; } if (! isset($params['prev'])) { $params['prev'] = ($real_offset > $zero_based_min) ? 'y' : 'n'; } // Max. number of links when using direct pagination $max_middle_links = max(0, $prefs['direct_pagination_max_middle_links']); $max_ending_links = ($prefs['pagination_firstlast'] != 'n') ? max( 0, $prefs['direct_pagination_max_ending_links'] ) : 0; $max_links = (1 + $max_ending_links + $max_middle_links) * 2 + 1; if ($params['cant'] > 0) { $make_prevnext_link = function ($url, $content, $params, $class = 'prevnext', $linkoffset = 0) { $smarty = TikiLib::lib('smarty'); $link = ' $params['template'], 'htmlelement' => $params['htmlelement'], '_ajax' => $params['_ajax'], '_onclick' => $params['_onclick'], ], $url, $smarty, false ); } else { $link .= " href=\"$url\" "; } $link .= '>' . $content . ''; return $link; }; if (($prefs['direct_pagination'] == 'y' || $prefs['nextprev_pagination'] === 'y') && $nb_pages > 1) { $html .= '