aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--admin/user_list.php95
-rw-r--r--doc/ChangeLog4
-rw-r--r--template/default/admin/user_list.tpl7
3 files changed, 91 insertions, 15 deletions
diff --git a/admin/user_list.php b/admin/user_list.php
index 8e50f9c02..9bfbacd33 100644
--- a/admin/user_list.php
+++ b/admin/user_list.php
@@ -122,7 +122,36 @@ foreach ($direction_items as $item => $label)
array(
'VALUE' => $item,
'CONTENT' => $label,
- 'SELECTED' => $selected
+ 'SELECTED' => $selected
+ ));
+}
+
+$blockname = 'group_option';
+
+$template->assign_block_vars(
+ $blockname,
+ array(
+ 'VALUE'=> -1,
+ 'CONTENT' => '------------',
+ 'SELECTED' => ''
+ ));
+
+$query = '
+SELECT id, name
+ FROM '.GROUPS_TABLE.'
+;';
+$result = pwg_query($query);
+
+while ($row = mysql_fetch_array($result))
+{
+ $selected = (isset($_GET['group']) and $_GET['group'] == $row['id']) ?
+ 'selected="selected"' : '';
+ $template->assign_block_vars(
+ $blockname,
+ array(
+ 'VALUE' => $row['id'],
+ 'CONTENT' => $row['name'],
+ 'SELECTED' => $selected
));
}
@@ -130,27 +159,53 @@ foreach ($direction_items as $item => $label)
// | filter |
// +-----------------------------------------------------------------------+
-$username = !empty($_GET['username']) ? $_GET['username'] : '%';
-$username = str_replace('*', '%', $username);
-if (function_exists('mysql_real_escape_string'))
+$filter = array();
+
+if (isset($_GET['username']) and !empty($_GET['username']))
{
- $username = mysql_real_escape_string($username);
+ $username = str_replace('*', '%', $_GET['username']);
+ if (function_exists('mysql_real_escape_string'))
+ {
+ $username = mysql_real_escape_string($username);
+ }
+ else
+ {
+ $username = mysql_escape_string($username);
+ }
+
+ if (!empty($username))
+ {
+ $filter['username'] = $username;
+ }
}
-else
+
+if (isset($_GET['group'])
+ and -1 != $_GET['group']
+ and is_numeric($_GET['group']))
{
- $username = mysql_escape_string($username);
+ $filter['group'] = $_GET['group'];
}
-$username = !empty($username) ? $username : '%';
+
// +-----------------------------------------------------------------------+
// | navigation bar |
// +-----------------------------------------------------------------------+
$query = '
-SELECT count(*)
- FROM '.USERS_TABLE.'
- WHERE id != 2
- AND username LIKE \''.$username.'\'
+SELECT COUNT(DISTINCT(id))
+ FROM '.USERS_TABLE.' LEFT JOIN '.USER_GROUP_TABLE.' ON id = user_id
+ WHERE id != 2';
+if (isset($filter['username']))
+{
+ $query.= '
+ AND username LIKE \''.$filter['username'].'\'';
+}
+if (isset($filter['group']))
+{
+ $query.= '
+ AND group_id = '.$filter['group'];
+}
+$query.= '
;';
list($counter) = mysql_fetch_row(pwg_query($query));
@@ -191,9 +246,19 @@ if (isset($_GET['direction'])
$query = '
SELECT id, username, mail_address, status
- FROM '.USERS_TABLE.'
- WHERE id != 2
- AND username LIKE \''.$username.'\'
+ FROM '.USERS_TABLE.' LEFT JOIN '.USER_GROUP_TABLE.' ON id = user_id
+ WHERE id != 2';
+if (isset($filter['username']))
+{
+ $query.= '
+ AND username LIKE \''.$filter['username'].'\'';
+}
+if (isset($filter['group']))
+{
+ $query.= '
+ AND group_id = '.$filter['group'];
+}
+$query.= '
ORDER BY '.$order_by.' '.$direction.'
LIMIT '.$start.', '.$conf['users_page'].'
;';
diff --git a/doc/ChangeLog b/doc/ChangeLog
index b1d7224bc..b3e45227c 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,3 +1,7 @@
+2005-04-28 Pierrick LE GALL
+
+ * user list updated : ability to filter list on group
+
2005-04-25 Pierrick LE GALL
* include/config.inc.php becomes include/config_default.inc.php :
diff --git a/template/default/admin/user_list.tpl b/template/default/admin/user_list.tpl
index 906828afa..5aa108298 100644
--- a/template/default/admin/user_list.tpl
+++ b/template/default/admin/user_list.tpl
@@ -22,6 +22,13 @@
username <input type="text" name="username" value="{F_USERNAME}" />
+ group
+ <select name="group">
+ <!-- BEGIN group_option -->
+ <option value="{group_option.VALUE}" {group_option.SELECTED} > {group_option.CONTENT}</option>
+ <!-- END group_option -->
+ </select>
+
{L_ORDER_BY}
<select name="order_by">
<!-- BEGIN order_by -->