$params * @param TemplateMaster $smarty * @return */ function smarty_function_pagination($params, &$smarty) { $globalParams = $smarty->_tpl_vars['param']; if( isset($globalParams[ROUTER_SORT_LABEL]) ) { $params[ROUTER_SORT_LABEL] = $globalParams[ROUTER_SORT_LABEL]; } if( isset($globalParams[ROUTER_DIR_LABEL]) ) { $params[ROUTER_DIR_LABEL] = $globalParams[ROUTER_DIR_LABEL]; } if( !isset($params['next']) ) { $params['next'] = PAGE_NEXT_LABEL; } if( !isset($params['prev']) ) { $params['prev'] = PAGE_PREV_LABEL; } // Jeżeli nie jest podany label to wstawiam current if( !isset($params['label']) ) { $params['label'] = 'current'; } if( isset($params['count']) ) { $count = $params['count']; } else { throw new Exception( 'Sortowanie: Wymagana ilość elementów - count!'); } if( isset($params['ajax']) ){ $ajax = $params['ajax']; } else { $ajax = null; } if( isset($params['max']) ){ $max = $params['max']; } else { $max = 2; } if( isset($params['number']) ){ $number = $params['number']; } else { $number = 0; } $pageArray = $smarty->_tpl_vars['_page']; if(is_array($pageArray)){ for ($i = 0; $i < $number+1; $i++) { $pageArray[$i] = isset($pageArray[$i])? $pageArray[$i] : 1; } } else { $pageArray = array(); for ($i = 0; $i < $number+1; $i++) { $pageArray[$i] = 1; } } // Wybór strony w tabeli o bierzącym numerku. $page = $pageArray[$number]; $page = max(1, $page); if ($count <= 1) return ''; $pageArray[$number] = max(1, $page - 1); $params[ROUTER_PAGE_LABEL] = $pageArray; ; $ret = ' 1 ? '' : ' class="disabled" onclick="return false;"') . '>' . (isset($params['prev']) ? $params['prev'] : '<<') . ($page > 1 ? '' : '') . ' '; if ($page - $max > 1) { $pageArray[$number] = 1; $params[ROUTER_PAGE_LABEL] = $pageArray; ; $ret .= '1 ... '; } for ($i = max(1, $page - $max) ; $i < $page; $i++) { $pageArray[$number] = $i; $params[ROUTER_PAGE_LABEL] = $pageArray; ; $ret .= '' . $i . ''; } $pageArray[$number] = $page; $params[ROUTER_PAGE_LABEL] = $pageArray; ; $ret .= '' . $page . ''; for ($i = min($page + 1, $count) ; $i < $page + $max + 1 && $i <= $count && $page != $count; $i++) { $pageArray[$number] = $i; $params[ROUTER_PAGE_LABEL] = $pageArray; ; $ret .= '' . $i . ''; } if ($page + $max < $count) { $pageArray[$number] = $count; $params[ROUTER_PAGE_LABEL] = $pageArray; ; $ret .= ' ... ' . $count . ''; } $pageArray[$number] = min($page + 1, $count); $params[ROUTER_PAGE_LABEL] = $pageArray; ; $ret .= '" . (isset($params['next']) ? $params['next'] : '>>') . ''; return $ret; } function pagination_generate_url($params, &$smarty) { include_once(dirname(__FILE__) . '/function.url.php'); $pageArray = $params[ROUTER_PAGE_LABEL]; if( array_sum($pageArray) <= count($pageArray)) $params[ROUTER_PAGE_LABEL] = null; else $params[ROUTER_PAGE_LABEL] = implode('-', $pageArray); return smarty_function_url($params, $smarty); } ?>