- user list updated : ability to filter list on status. Function get_enums

comes back to retrieve the list of possible status in the database.


git-svn-id: http://piwigo.org/svn/trunk@777 68402e56-0260-453c-a942-63ccdbb3a9ee
This commit is contained in:
plegall 2005-04-30 14:36:57 +00:00
commit 9cfba96167
4 changed files with 81 additions and 0 deletions

View file

@ -155,6 +155,29 @@ while ($row = mysql_fetch_array($result))
));
}
$blockname = 'status_option';
$template->assign_block_vars(
$blockname,
array(
'VALUE'=> -1,
'CONTENT' => '------------',
'SELECTED' => ''
));
foreach (get_enums(USERS_TABLE, 'status') as $status)
{
$selected = (isset($_GET['status']) and $_GET['status'] == $status) ?
'selected="selected"' : '';
$template->assign_block_vars(
$blockname,
array(
'VALUE' => $status,
'CONTENT' => $lang['user_status_'.$status],
'SELECTED' => $selected
));
}
// +-----------------------------------------------------------------------+
// | filter |
// +-----------------------------------------------------------------------+
@ -186,6 +209,11 @@ if (isset($_GET['group'])
$filter['group'] = $_GET['group'];
}
if (isset($_GET['status'])
and in_array($_GET['status'], get_enums(USERS_TABLE, 'status')))
{
$filter['status'] = $_GET['status'];
}
// +-----------------------------------------------------------------------+
// | navigation bar |
@ -205,6 +233,11 @@ if (isset($filter['group']))
$query.= '
AND group_id = '.$filter['group'];
}
if (isset($filter['status']))
{
$query.= '
AND status = \''.$filter['status']."'";
}
$query.= '
;';
list($counter) = mysql_fetch_row(pwg_query($query));
@ -258,6 +291,11 @@ if (isset($filter['group']))
$query.= '
AND group_id = '.$filter['group'];
}
if (isset($filter['status']))
{
$query.= '
AND status = \''.$filter['status']."'";
}
$query.= '
ORDER BY '.$order_by.' '.$direction.'
LIMIT '.$start.', '.$conf['users_page'].'

View file

@ -1,3 +1,9 @@
2005-04-30 Pierrick LE GALL
* user list updated : ability to filter list on status. Function
get_enums comes back to retrieve the list of possible status in
the database.
2005-04-28 Pierrick LE GALL
* user list updated : ability to filter list on group

View file

@ -34,6 +34,36 @@ include_once( PHPWG_ROOT_PATH .'include/functions_html.inc.php' );
//----------------------------------------------------------- generic functions
/**
* returns an array containing the possible values of an enum field
*
* @param string tablename
* @param string fieldname
*/
function get_enums($table, $field)
{
// retrieving the properties of the table. Each line represents a field :
// columns are 'Field', 'Type'
$result = pwg_query('desc '.$table);
while ($row = mysql_fetch_array($result))
{
// we are only interested in the the field given in parameter for the
// function
if ($row['Field'] == $field)
{
// retrieving possible values of the enum field
// enum('blue','green','black')
$options = explode(',', substr($row['Type'], 5, -1));
foreach ($options as $i => $option)
{
$options[$i] = str_replace("'", '',$option);
}
}
}
mysql_free_result($result);
return $options;
}
// get_boolean transforms a string to a boolean value. If the string is
// "false" (case insensitive), then the boolean value false is returned. In
// any other case, true is returned.

View file

@ -22,6 +22,13 @@
username <input type="text" name="username" value="{F_USERNAME}" />
status
<select name="status">
<!-- BEGIN status_option -->
<option value="{status_option.VALUE}" {status_option.SELECTED} > {status_option.CONTENT}</option>
<!-- END status_option -->
</select>
group
<select name="group">
<!-- BEGIN group_option -->