From 674c85fe31ef77e9132d25e316612e7156cdf5e8 Mon Sep 17 00:00:00 2001 From: plegall Date: Tue, 18 Mar 2014 22:22:06 +0000 Subject: bug 3053 fixed: columns "groups" and "privacy level" come back in Piwigo 2.6 user manager (which still needs improvement on filtering options...) git-svn-id: http://piwigo.org/svn/branches/2.6@27836 68402e56-0260-453c-a942-63ccdbb3a9ee --- admin/themes/default/template/user_list.tpl | 2 ++ admin/user_list_backend.php | 42 +++++++++++++++++++++++++++-- 2 files changed, 42 insertions(+), 2 deletions(-) diff --git a/admin/themes/default/template/user_list.tpl b/admin/themes/default/template/user_list.tpl index 79a2e4dd5..0fb47a0fc 100644 --- a/admin/themes/default/template/user_list.tpl +++ b/admin/themes/default/template/user_list.tpl @@ -880,6 +880,8 @@ span.infos, span.errors {background-image:none; padding:2px 5px; margin:0;border {'Username'|@translate} {'Status'|@translate} {'Email address'|@translate} + {'Groups'|@translate} + {'Privacy level'|@translate} {'registration date'|@translate} diff --git a/admin/user_list_backend.php b/admin/user_list_backend.php index 9d18f270b..b390ed1ec 100644 --- a/admin/user_list_backend.php +++ b/admin/user_list_backend.php @@ -35,7 +35,7 @@ check_status(ACCESS_ADMINISTRATOR); /* Array of database columns which should be read and sent back to DataTables. Use a space where * you want to insert a non-database field (for example a counter or static image) */ -$aColumns = array('id', 'username', 'status', 'mail_address', 'registration_date'); +$aColumns = array('id', 'username', 'status', 'mail_address', 'recent_period', 'level', 'registration_date'); $aColumns = trigger_change('user_list_columns', $aColumns); /* Indexed column (used for fast and accurate table cardinality) */ @@ -157,9 +157,13 @@ $output = array( "iTotalDisplayRecords" => $iFilteredTotal, "aaData" => array() ); - + +$user_ids = array(); + while ( $aRow = pwg_db_fetch_array( $rResult ) ) { + $user_ids[] = $aRow['id']; + $row = array(); for ( $i=0 ; $i 0) +{ + $groups_of_user = array(); + + $query = ' +SELECT + user_id, + GROUP_CONCAT(name ORDER BY name SEPARATOR ", ") AS groups + FROM '.USER_GROUP_TABLE.' + JOIN '.GROUPS_TABLE.' ON id = group_id + WHERE user_id IN ('.implode(',', $user_ids).') + GROUP BY user_id +;'; + $result = pwg_query($query); + while ($row = pwg_db_fetch_assoc($result)) + { + $groups_of_user[ $row['user_id'] ] = $row['groups']; + } + + $key_replace = array_search('recent_period', $aColumns); + + // replacement + foreach (array_keys($output['aaData']) as $idx) + { + $user_id = $output['aaData'][$idx][0]; + $output['aaData'][$idx][$key_replace] = isset($groups_of_user[$user_id]) ? $groups_of_user[$user_id] : ''; + } +} + $output = trigger_change('after_render_user_list', $output); echo json_encode( $output ); -- cgit v1.2.3