From 1f658bf8eb838efcb29d68a75fbf6161be1312e5 Mon Sep 17 00:00:00 2001 From: Evgeny Gryaznov Date: Tue, 3 Jul 2007 21:06:39 +0000 Subject: [PATCH] add_params, div, pagination git-svn-id: https://webim.svn.sourceforge.net/svnroot/webim/trunk@15 c66351dc-e62f-0410-b875-e3a5c0b9693f --- src/webim/libs/common.php | 15 ++++++ src/webim/libs/pagination.php | 99 +++++++++++++++++++++++++++++++++++ 2 files changed, 114 insertions(+) create mode 100644 src/webim/libs/pagination.php diff --git a/src/webim/libs/common.php b/src/webim/libs/common.php index 81fe1942..aefb7971 100644 --- a/src/webim/libs/common.php +++ b/src/webim/libs/common.php @@ -240,4 +240,19 @@ function get_gifimage_size($file) { return array(0,0); } +function add_params($servlet, $params) { + $infix = '?'; + if( strstr($servlet,$infix) !== FALSE ) + $infix = '&'; + foreach($params as $k => $v) { + $servlet .= $infix.$k."=".$v; + $infix = '&'; + } + return $servlet; +} + +function div($a,$b) { + return ($a-($a % $b)) / $b; +} + ?> \ No newline at end of file diff --git a/src/webim/libs/pagination.php b/src/webim/libs/pagination.php new file mode 100644 index 00000000..52a6fa0e --- /dev/null +++ b/src/webim/libs/pagination.php @@ -0,0 +1,99 @@ +$title"; +} + +function generate_pagination_image($id) { + global $webimroot; + return ""; +} + +function setup_pagination($items) { + global $page; + + if( $items ) { + $items_per_page = verifyparam("items", "/^\d{1,3}$/", 2); + if( $items_per_page < 2 ) + $items_per_page = 2; + + $total_pages = div(count($items) + $items_per_page - 1, $items_per_page); + $curr_page = verifyparam("page", "/^\d{1,6}$/", 1); + + if( $curr_page < 1 ) + $curr_page = 1; + if( $curr_page > $total_pages ) + $curr_page = $total_pages; + + $start_index = ($curr_page-1)*$items_per_page; + $end_index = min($start_index+$items_per_page, count($items)); + $page['pagination.items'] = array_slice($items, $start_index, $end_index-$start_index); + $page['pagination'] = + array( "page" => $curr_page, "items" => $items_per_page, "total" => $total_pages, + "count" => count($items), "start" => $start_index, "end" => $end_index ); + } else { + $page['pagination.items'] = false; + $page['pagination'] = true; + } +} + +function setup_empty_pagination() { + global $page; + $page['pagination.items'] = false; + $page['pagination'] = false; +} + +function generate_pagination($pagination) { + global $pagination_spacing, $links_on_page; + $result = getstring2("tag.pagination.info", + array($pagination['page'],$pagination['total'],$pagination['start']+1,$pagination['end'],$pagination['count']))."
"; + + if( $pagination['total'] > 1 ) { + $result.="
"; + } + return $result; +} + +?> \ No newline at end of file