From 484b248f735b22e7a28f4720c3997746f5c10ced Mon Sep 17 00:00:00 2001 From: Friendika Date: Fri, 17 Jun 2011 16:21:11 -0700 Subject: [PATCH] add pagination to admin/user page to support large numbers of users --- boot.php | 2 +- mod/admin.php | 20 ++++++++++++++++---- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/boot.php b/boot.php index 673623fafc..f369856403 100644 --- a/boot.php +++ b/boot.php @@ -4,7 +4,7 @@ set_time_limit(0); ini_set('pcre.backtrack_limit', 250000); -define ( 'FRIENDIKA_VERSION', '2.2.1013' ); +define ( 'FRIENDIKA_VERSION', '2.2.1014' ); define ( 'DFRN_PROTOCOL_VERSION', '2.21' ); define ( 'DB_UPDATE_VERSION', 1063 ); diff --git a/mod/admin.php b/mod/admin.php index e657c80533..e452ea856f 100644 --- a/mod/admin.php +++ b/mod/admin.php @@ -385,6 +385,13 @@ function admin_page_users(&$a){ LEFT JOIN `user` ON `register`.`uid` = `user`.`uid`;"); /* get users */ + + $total = q("SELECT count(*) as total FROM `user` where 1"); + if(count($total)) { + $a->set_pager_total($total[0]['total']); + $a->set_pager_itemspage(100); + } + $users = q("SELECT `user` . * , `contact`.`name` , `contact`.`url` , `contact`.`micro` , `lastitem`.`changed` AS `lastitem_date` FROM ( SELECT `item`.`changed` , `item`.`uid` @@ -396,8 +403,12 @@ function admin_page_users(&$a){ WHERE `user`.`verified` =1 AND `contact`.`self` =1 AND `lastitem`.`uid` = `user`.`uid` - ORDER BY `contact`.`name` - "); + ORDER BY `contact`.`name` LIMIT %d, %d + ", + intval($a->pager['start']), + intval($a->pager['itemspage']) + + ); function _setup_users($e){ $accounts = Array( @@ -415,7 +426,7 @@ function admin_page_users(&$a){ $users = array_map("_setup_users", $users); $t = get_markup_template("admin_users.tpl"); - return replace_macros($t, array( + $o = replace_macros($t, array( // strings // '$title' => t('Administration'), '$page' => t('Users'), @@ -443,7 +454,8 @@ function admin_page_users(&$a){ '$pending' => $pending, '$users' => $users, )); - + $o .= paginate($a); + return $o; }