diff --git a/root/portal/includes/functions.php b/root/portal/includes/functions.php index 391b4337..02e57c52 100644 --- a/root/portal/includes/functions.php +++ b/root/portal/includes/functions.php @@ -431,98 +431,99 @@ function ap_validate($str) { } /** -* Pagination routine, generates page number sequence -* tpl_prefix is for using different pagination blocks at one page +* Pagination routine, generates archive number sequence */ -function generate_portal_pagination($base_url, $num_items, $per_page, $start_item, $type, $add_prevnext_text = false, $tpl_prefix = '') -{ - global $template, $user; + function generate_portal_pagination($base_url, $num_items, $per_page, $start_item, $type, $add_prevnext_text = false, $tpl_prefix = '') + { + global $template, $user; - switch( $type ) - { - case "announcements": - $pagination_type = 'ap'; - break; - case "news": - case "news_all": - $pagination_type = 'np'; - break; - } - - // Make sure $per_page is a valid value - $per_page = ($per_page <= 0) ? 1 : $per_page; + switch( $type ) + { + case "announcements": + $pagination_type = 'ap'; + $anker = '#a0'; + break; + case "news": + case "news_all": + $pagination_type = 'np'; + $anker = '#n0'; + break; + } + + // Make sure $per_page is a valid value + $per_page = ($per_page <= 0) ? 1 : $per_page; - $seperator = '' . $user->lang['COMMA_SEPARATOR'] . ''; - $total_pages = ceil($num_items / $per_page); + $seperator = '' . $user->lang['COMMA_SEPARATOR'] . ''; + $total_pages = ceil($num_items / $per_page); - if ($total_pages == 1 || !$num_items) - { - return false; - } + if ($total_pages == 1 || !$num_items) + { + return false; + } - $on_page = floor($start_item / $per_page) + 1; - $url_delim = (strpos($base_url, '?') === false) ? '?' : '&'; + $on_page = floor($start_item / $per_page) + 1; + $url_delim = (strpos($base_url, '?') === false) ? '?' : '&'; - $page_string = ($on_page == 1) ? '1' : '1'; + $page_string = ($on_page == 1) ? '1' : '1'; - if ($total_pages > 5) - { - $start_cnt = min(max(1, $on_page - 4), $total_pages - 5); - $end_cnt = max(min($total_pages, $on_page + 4), 6); + if ($total_pages > 5) + { + $start_cnt = min(max(1, $on_page - 4), $total_pages - 5); + $end_cnt = max(min($total_pages, $on_page + 4), 6); - $page_string .= ($start_cnt > 1) ? ' ... ' : $seperator; + $page_string .= ($start_cnt > 1) ? ' ... ' : $seperator; - for ($i = $start_cnt + 1; $i < $end_cnt; $i++) - { - $page_string .= ($i == $on_page) ? '' . $i . '' : '' . $i . ''; - if ($i < $end_cnt - 1) - { - $page_string .= $seperator; - } - } + for ($i = $start_cnt + 1; $i < $end_cnt; $i++) + { + $page_string .= ($i == $on_page) ? '' . $i . '' : '' . $i . ''; + if ($i < $end_cnt - 1) + { + $page_string .= $seperator; + } + } - $page_string .= ($end_cnt < $total_pages) ? ' ... ' : $seperator; - } - else - { - $page_string .= $seperator; + $page_string .= ($end_cnt < $total_pages) ? ' ... ' : $seperator; + } + else + { + $page_string .= $seperator; - for ($i = 2; $i < $total_pages; $i++) - { - $page_string .= ($i == $on_page) ? '' . $i . '' : '' . $i . ''; - if ($i < $total_pages) - { - $page_string .= $seperator; - } - } - } + for ($i = 2; $i < $total_pages; $i++) + { + $page_string .= ($i == $on_page) ? '' . $i . '' : '' . $i . ''; + if ($i < $total_pages) + { + $page_string .= $seperator; + } + } + } - $page_string .= ($on_page == $total_pages) ? '' . $total_pages . '' : '' . $total_pages . ''; + $page_string .= ($on_page == $total_pages) ? '' . $total_pages . '' : '' . $total_pages . ''; - if ($add_prevnext_text) - { - if ($on_page != 1) - { - $page_string = '' . $user->lang['PREVIOUS'] . ' ' . $page_string; - } + if ($add_prevnext_text) + { + if ($on_page != 1) + { + $page_string = '' . $user->lang['PREVIOUS'] . ' ' . $page_string; + } - if ($on_page != $total_pages) - { - $page_string .= ' ' . $user->lang['NEXT'] . ''; - } - } + if ($on_page != $total_pages) + { + $page_string .= ' ' . $user->lang['NEXT'] . ''; + } + } - $template->assign_vars(array( - $tpl_prefix . 'BASE_URL' => $base_url, - 'A_' . $tpl_prefix . 'BASE_URL' => addslashes($base_url), - $tpl_prefix . 'PER_PAGE' => $per_page, + $template->assign_vars(array( + $tpl_prefix . 'BASE_URL' => $base_url, + 'A_' . $tpl_prefix . 'BASE_URL' => addslashes($base_url), + $tpl_prefix . 'PER_PAGE' => $per_page, - $tpl_prefix . 'PREVIOUS_PAGE' => ($on_page == 1) ? '' : $base_url . "{$url_delim}" . $pagination_type . '=' . (($on_page - 2) * $per_page), - $tpl_prefix . 'NEXT_PAGE' => ($on_page == $total_pages) ? '' : $base_url . "{$url_delim}" . $pagination_type . '=' . ($on_page * $per_page), - $tpl_prefix . 'TOTAL_PAGES' => $total_pages, - )); + $tpl_prefix . 'PREVIOUS_PAGE' => ($on_page == 1) ? '' : $base_url . "{$url_delim}" . $pagination_type . '=' . (($on_page - 2) * $per_page) . $anker, + $tpl_prefix . 'NEXT_PAGE' => ($on_page == $total_pages) ? '' : $base_url . "{$url_delim}" . $pagination_type . '=' . ($on_page * $per_page) . $anker, + $tpl_prefix . 'TOTAL_PAGES' => $total_pages, + )); - return $page_string; -} + return $page_string; + } ?> \ No newline at end of file diff --git a/root/styles/prosilver/template/portal/block/announcements_compact.html b/root/styles/prosilver/template/portal/block/announcements_compact.html index f7451ed6..599019b4 100644 --- a/root/styles/prosilver/template/portal/block/announcements_compact.html +++ b/root/styles/prosilver/template/portal/block/announcements_compact.html @@ -1,4 +1,5 @@ +