diff options
Diffstat (limited to '')
-rw-r--r-- | include/functions.inc.php | 69 | ||||
-rw-r--r-- | include/functions_html.inc.php | 147 | ||||
-rw-r--r-- | include/picture_comment.inc.php | 2 |
3 files changed, 70 insertions, 148 deletions
diff --git a/include/functions.inc.php b/include/functions.inc.php index 83c9980de..3f43b943a 100644 --- a/include/functions.inc.php +++ b/include/functions.inc.php @@ -1493,4 +1493,73 @@ function get_comment_post_key($image_id) ) ); } + +/** + * return an array which will be sent to template to display navigation bar + */ +function create_navigation_bar($url, $nb_element, $start, $nb_element_page, $clean_url = false) +{ + global $conf; + + $pages_around = $conf['paginate_pages_around']; + $start_str = $clean_url ? '/start-' : (strpos($url, '?')===false ? '?':'&').'start='; + + if (!isset($start) or !is_numeric($start) or (is_numeric($start) and $start < 0)) + { + $start = 0; + } + + $navbar = array(); + + // navigation bar useful only if more than one page to display ! + if ($nb_element > $nb_element_page) + { + // current page and last page + $cur_page = ceil($start / $nb_element_page) + 1; + $maximum = ceil($nb_element / $nb_element_page); + + $navbar['CURRENT_PAGE'] = $cur_page; + + // link to first page ? + if ($cur_page != 1) + { + $navbar['URL_FIRST'] = $url; + } + // link on previous page ? + if ($start != 0) + { + $previous = $start - $nb_element_page; + $navbar['URL_PREV'] = $url.($previous > 0 ? $start_str.$previous : ''); + } + // link on next page ? + if ($nb_element > $nb_element_page and $start + $nb_element_page < $nb_element) + { + $next = $start + $nb_element_page; + $navbar['URL_NEXT'] = $url.$start_str.$next; + } + // link to last page ? + if ($cur_page != $maximum) + { + $temp_start = ($maximum - 1) * $nb_element_page; + $navbar['URL_LAST'] = $url.$start_str.$temp_start; + } + + // pages to display + $navbar['pages'] = array(); + + $navbar['pages'][1] = $url; + $navbar['pages'][$maximum] = $url.$start_str. ($maximum - 1) * $nb_element_page; + + for ($i = $cur_page - $pages_around, $stop = $cur_page + $pages_around + 1; $i < $stop; $i++) + { + if ($i < 2 or $i > $maximum - 1) + { + continue; + } + $navbar['pages'][$i] = $url.$start_str. ($i - 1) * $nb_element_page; + } + ksort($navbar['pages']); + } + return $navbar; +} ?>
\ No newline at end of file diff --git a/include/functions_html.inc.php b/include/functions_html.inc.php index 9b045bfcb..45e5e04eb 100644 --- a/include/functions_html.inc.php +++ b/include/functions_html.inc.php @@ -73,153 +73,6 @@ function get_icon($date, $is_child_date = false) return $cache['get_icon']['_icons_'][$is_child_date]; } -function create_navigation_bar( - $url, $nb_element, $start, $nb_element_page, $clean_url = false - ) -{ - global $conf; - - $pages_around = $conf['paginate_pages_around']; - $start_str = $clean_url ? '/start-' : - ( ( strpos($url, '?')===false ? '?':'&') . 'start=' ); - - $navbar = ''; - - // current page detection - if (!isset($start) - or !is_numeric($start) - or (is_numeric($start) and $start < 0)) - { - $start = 0; - } - - // navigation bar useful only if more than one page to display ! - if ($nb_element > $nb_element_page) - { - // current page and last page - $cur_page = ceil($start / $nb_element_page) + 1; - $maximum = ceil($nb_element / $nb_element_page); - - // link to first page ? - if ($cur_page != 1) - { - $navbar.= - '<a href="'.$url.'" rel="first">' - .l10n('first_page') - .'</a>'; - } - else - { - $navbar.= l10n('first_page'); - } - $navbar.= ' | '; - // link on previous page ? - if ($start != 0) - { - $previous = $start - $nb_element_page; - - $navbar.= - '<a href="' - .$url.($previous > 0 ? $start_str.$previous : '') - .'" rel="prev">' - .l10n('previous_page') - .'</a>'; - } - else - { - $navbar.= l10n('previous_page'); - } - $navbar.= ' |'; - - if ($cur_page > $pages_around + 1) - { - $navbar.= ' <a href="'.$url.'">1</a>'; - - if ($cur_page > $pages_around + 2) - { - $navbar.= ' ...'; - } - } - - // inspired from punbb source code - for ($i = $cur_page - $pages_around, $stop = $cur_page + $pages_around + 1; - $i < $stop; - $i++) - { - if ($i < 1 or $i > $maximum) - { - continue; - } - else if ($i != $cur_page) - { - $temp_start = ($i - 1) * $nb_element_page; - - $navbar.= - ' ' - .'<a href="'.$url - .($temp_start > 0 ? $start_str.$temp_start : '') - .'">' - .$i - .'</a>'; - } - else - { - $navbar.= - ' ' - .'<span class="pageNumberSelected">' - .$i - .'</span>'; - } - } - - if ($cur_page < ($maximum - $pages_around)) - { - $temp_start = ($maximum - 1) * $nb_element_page; - - if ($cur_page < ($maximum - $pages_around - 1)) - { - $navbar.= ' ...'; - } - - $navbar.= ' <a href="'.$url.$start_str.$temp_start.'">'.$maximum.'</a>'; - } - - $navbar.= ' | '; - // link on next page ? - if ($nb_element > $nb_element_page - and $start + $nb_element_page < $nb_element) - { - $next = $start + $nb_element_page; - - $navbar.= - '<a href="'.$url.$start_str.$next.'" rel="next">' - .l10n('next_page') - .'</a>'; - } - else - { - $navbar.= l10n('next_page'); - } - - $navbar.= ' | '; - // link to last page ? - if ($cur_page != $maximum) - { - $temp_start = ($maximum - 1) * $nb_element_page; - - $navbar.= - '<a href="'.$url.$start_str.$temp_start.'" rel="last">' - .l10n('last_page') - .'</a>'; - } - else - { - $navbar.= l10n('last_page'); - } - } - return $navbar; -} - /** * returns the list of categories as a HTML string * diff --git a/include/picture_comment.inc.php b/include/picture_comment.inc.php index 73b245b6b..2682d9dab 100644 --- a/include/picture_comment.inc.php +++ b/include/picture_comment.inc.php @@ -112,7 +112,7 @@ SELECT COUNT(*) AS nb_comments $template->assign( array( 'COMMENT_COUNT' => $row['nb_comments'], - 'COMMENT_NAV_BAR' => $navigation_bar, + 'navbar' => $navigation_bar, ) ); |