From d4ceeed0570fb10d95adeb115cbe127461bda1db Mon Sep 17 00:00:00 2001 From: Simon Date: Wed, 30 Mar 2011 12:48:08 +0200 Subject: Pagination in clients --- .../modules/user/controllers/ClientController.php | 14 ++--- .../modules/user/views/scripts/client/index.phtml | 2 +- library/Pbs/Pagination.php | 71 +++++++--------------- public/media/css/style.css | 17 +++--- 4 files changed, 38 insertions(+), 66 deletions(-) diff --git a/application/modules/user/controllers/ClientController.php b/application/modules/user/controllers/ClientController.php index 023de4a..7d0e7e7 100644 --- a/application/modules/user/controllers/ClientController.php +++ b/application/modules/user/controllers/ClientController.php @@ -48,7 +48,7 @@ class User_ClientController extends Zend_Controller_Action $clientsInGroup = $clientMapper->findBy('groupID',$this->membership->getGroupID()); #print_a($clientsInGroup); - $perpage = 5; + $perpage = 10; $req_page = $this->_request->getParam('page'); $all = count($clientsInGroup); $numpages = ceil($all/$perpage); @@ -56,12 +56,11 @@ class User_ClientController extends Zend_Controller_Action $req_page = 0; if($req_page >= $numpages) $req_page = $numpages-1; - $startitem = $req_page * $perpage; - $this->pagination = array('max' => $numpages, 'selected' => $req_page); + $startitem = $req_page * $perpage; - print_a($all,$numpages,$startitem,$req_page); - $pagination = new Pbs_Pagination(); - $this->pagination = $pagination->pagination('/user/client/index',$req_page,$numpages); + $pagination = new Pbs_Pagination(); + $str = $pagination->pagination('/user/client/index',$req_page,$numpages); + $this->view->pagination = $str; $this->view->clients = array_slice($clientsInGroup,$startitem,$perpage); } @@ -80,8 +79,7 @@ class User_ClientController extends Zend_Controller_Action $this->view->addclient = $addclient; } else{ - $addclient = new user_Form_Client(array('buttontext' => 'Create Client'),$_POST); - print_a($_POST); + $addclient = new user_Form_Client(array('buttontext' => 'Create Client'),$_POST); if ($addclient->isValid($_POST) || ($mac != '' && $hh != '') ) { $client = new Application_Model_Client($_POST); $mac = ($mac!='')?$mac:$_POST['macadress']; diff --git a/application/modules/user/views/scripts/client/index.phtml b/application/modules/user/views/scripts/client/index.phtml index dd791ad..dd7aad2 100644 --- a/application/modules/user/views/scripts/client/index.phtml +++ b/application/modules/user/views/scripts/client/index.phtml @@ -36,7 +36,7 @@ - + pagination; ?>

There are no clients to display.

diff --git a/library/Pbs/Pagination.php b/library/Pbs/Pagination.php index 39b0567..179f2f7 100644 --- a/library/Pbs/Pagination.php +++ b/library/Pbs/Pagination.php @@ -2,62 +2,37 @@ class Pbs_Pagination{ public function pagination($url,$selected,$max){ - $str = "
"; - if ( 5 <= $selected) + #print_a($url,$selected,$max); + $str = "
"; + if ( 1 <= $selected){ $str .= "<<"; - if ( 1 <= $selected) - $str .= ""; - # - for($i=1;$i<(max);$i++){ - if($selected == ($i-1)) - echo "".$i ." "; - else if(($i-1) >= $selected -4 && ($i-1) <= $selected+4) - echo "".$i ." "; + $str .= ""; + }else{ + $str .= "<<"; + $str .= "<"; } # - if ( $max-2 >= $selected) - $str .= "> "; - if ( $max-5 >= $selected) + $rightleft = 2; + for($i=0;$i<($max);$i++){ + if($selected == $i) + $str .= "".($i+1) ." "; + else if($i >= $selected -$rightleft && $i <= $selected+$rightleft) + $str .= "".($i+1) ." "; + } + + # + if ( $max-2 >= $selected){ + $str .= "> "; $str .= ">> "; + }else{ + $str .= "> "; + $str .= ">> "; + } + $str .= "
"; return $str; } } - -/* - echo ""; -*/ diff --git a/public/media/css/style.css b/public/media/css/style.css index 21042c4..f71cf8b 100644 --- a/public/media/css/style.css +++ b/public/media/css/style.css @@ -426,38 +426,37 @@ td.action img { color: #777; } /* Pagination */ -#pbs_pagination { +.pbs_pagination { display:block; - text-align:left; + text-align:center; height:22px; line-height:21px; - clear:both; padding-top:3px; font-family:Arial, Helvetica, sans-serif; font-size:12px; font-weight:normal; } -#pbs_pagination a:link, #pbs_pagination a:visited{ +.pbs_pagination a:link, .pbs_pagination a:visited{ padding:7px; padding-top:2px; padding-bottom:2px; border:1px solid #EBEBEB; margin-left:10px; text-decoration:none; - background-color:#F5F5F5; + background-color:#FFF; color:#0072bc; width:22px; font-weight:normal; } -#pbs_pagination a:hover { +.pbs_pagination a:hover { background-color:#DDEEFF; border:1px solid #BBDDFF; color:#0072BC; } -#pbs_pagination .active { +.pbs_pagination .active { padding:7px; padding-top:2px; padding-bottom:2px; @@ -469,14 +468,14 @@ td.action img { cursor:default; } -#pbs_pagination .disabled { +.pbs_pagination .disabled { padding:7px; padding-top:2px; padding-bottom:2px; border:1px solid #EBEBEB; margin-left:10px; text-decoration:none; - background-color:#F5F5F5; + background-color:#FFF; color:#D7D7D7; cursor:default; } -- cgit v1.2.3-55-g7522