mirror of
https://github.com/Mibew/design.git
synced 2025-01-22 18:10:33 +03:00
add_params, div, pagination
git-svn-id: https://webim.svn.sourceforge.net/svnroot/webim/trunk@15 c66351dc-e62f-0410-b875-e3a5c0b9693f
This commit is contained in:
parent
d6c670ce3a
commit
1f658bf8eb
@ -240,4 +240,19 @@ function get_gifimage_size($file) {
|
|||||||
return array(0,0);
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
?>
|
?>
|
99
src/webim/libs/pagination.php
Normal file
99
src/webim/libs/pagination.php
Normal file
@ -0,0 +1,99 @@
|
|||||||
|
<?php
|
||||||
|
/*
|
||||||
|
* This file is part of Web Instant Messenger project.
|
||||||
|
*
|
||||||
|
* Copyright (c) 2005-2007 Internet Services Ltd.
|
||||||
|
* All rights reserved. This program and the accompanying materials
|
||||||
|
* are made available under the terms of the Eclipse Public License v1.0
|
||||||
|
* which accompanies this distribution, and is available at
|
||||||
|
* http://www.eclipse.org/legal/epl-v10.html
|
||||||
|
*
|
||||||
|
* Contributors:
|
||||||
|
* Evgeny Gryaznov - initial API and implementation
|
||||||
|
*/
|
||||||
|
|
||||||
|
$pagination_spacing = " ";
|
||||||
|
$links_on_page = 5;
|
||||||
|
|
||||||
|
function generate_pagination_link($page,$title) {
|
||||||
|
$lnk = $_SERVER['REQUEST_URI'];
|
||||||
|
$href = preg_replace("/\?page=\d+\&/", "?", preg_replace("/\&page=\d+/", "", $lnk));
|
||||||
|
$href .= strstr($href,"?") ? "&page=$page" : "?page=$page";
|
||||||
|
return "<a href=\"$href\" class=\"pagelink\">$title</a>";
|
||||||
|
}
|
||||||
|
|
||||||
|
function generate_pagination_image($id) {
|
||||||
|
global $webimroot;
|
||||||
|
return "<img src=\"$webimroot/images/$id.gif\" border=\"0\"/>";
|
||||||
|
}
|
||||||
|
|
||||||
|
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']))."<br/>";
|
||||||
|
|
||||||
|
if( $pagination['total'] > 1 ) {
|
||||||
|
$result.="<br/><div class='pagination'>";
|
||||||
|
$curr_page = $pagination['page'];
|
||||||
|
|
||||||
|
$minPage = max( $curr_page - $links_on_page, 1 );
|
||||||
|
$maxPage = min( $curr_page + $links_on_page, $pagination['total'] );
|
||||||
|
|
||||||
|
if( $curr_page > 1 ) {
|
||||||
|
$result .= generate_pagination_link($curr_page-1, generate_pagination_image("prevpage")).$pagination_spacing;
|
||||||
|
}
|
||||||
|
|
||||||
|
for($i = $minPage; $i <= $maxPage; $i++ ) {
|
||||||
|
$title = abs($curr_page-$i) >= $links_on_page && $i != 1 ? "..." : $i;
|
||||||
|
if( $i != $curr_page)
|
||||||
|
$result .= generate_pagination_link($i, $title);
|
||||||
|
else
|
||||||
|
$result .= "<span class=\"pagecurrent\">$title</span>";
|
||||||
|
if( $i < $maxPage )
|
||||||
|
$result .= $pagination_spacing;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if( $curr_page < $pagination['total'] ) {
|
||||||
|
$result .= $pagination_spacing.generate_pagination_link($curr_page+1, generate_pagination_image("nextpage"));
|
||||||
|
}
|
||||||
|
$result.="</div>";
|
||||||
|
}
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
Loading…
Reference in New Issue
Block a user