add pagination to admin/user page to support large numbers of users

This commit is contained in:
Friendika 2011-06-17 16:21:11 -07:00
parent 4ca730e5d7
commit 484b248f73
2 changed files with 17 additions and 5 deletions

View file

@ -4,7 +4,7 @@ set_time_limit(0);
ini_set('pcre.backtrack_limit', 250000); 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 ( 'DFRN_PROTOCOL_VERSION', '2.21' );
define ( 'DB_UPDATE_VERSION', 1063 ); define ( 'DB_UPDATE_VERSION', 1063 );

View file

@ -385,6 +385,13 @@ function admin_page_users(&$a){
LEFT JOIN `user` ON `register`.`uid` = `user`.`uid`;"); LEFT JOIN `user` ON `register`.`uid` = `user`.`uid`;");
/* get users */ /* 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` $users = q("SELECT `user` . * , `contact`.`name` , `contact`.`url` , `contact`.`micro` , `lastitem`.`changed` AS `lastitem_date`
FROM ( FROM (
SELECT `item`.`changed` , `item`.`uid` SELECT `item`.`changed` , `item`.`uid`
@ -396,8 +403,12 @@ function admin_page_users(&$a){
WHERE `user`.`verified` =1 WHERE `user`.`verified` =1
AND `contact`.`self` =1 AND `contact`.`self` =1
AND `lastitem`.`uid` = `user`.`uid` 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){ function _setup_users($e){
$accounts = Array( $accounts = Array(
@ -415,7 +426,7 @@ function admin_page_users(&$a){
$users = array_map("_setup_users", $users); $users = array_map("_setup_users", $users);
$t = get_markup_template("admin_users.tpl"); $t = get_markup_template("admin_users.tpl");
return replace_macros($t, array( $o = replace_macros($t, array(
// strings // // strings //
'$title' => t('Administration'), '$title' => t('Administration'),
'$page' => t('Users'), '$page' => t('Users'),
@ -443,7 +454,8 @@ function admin_page_users(&$a){
'$pending' => $pending, '$pending' => $pending,
'$users' => $users, '$users' => $users,
)); ));
$o .= paginate($a);
return $o;
} }