Changeset 709 for trunk/profile.php


Ignore:
Timestamp:
Jan 20, 2005, 12:36:43 AM (19 years ago)
Author:
plg
Message:
  • new features : multipages users list. The list can be ordered by id (same effect than registration date) or by username. On each line, you can access properties and permissions for the user
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/profile.php

    r688 r709  
    3535  $userdata = getuserdata($_POST['username']);
    3636}
     37else if (defined('IN_ADMIN') and IN_ADMIN and isset($_GET['user_id']))
     38{
     39  $userdata = getuserdata(intval($_GET['user_id']));
     40}
    3741elseif (defined('IN_ADMIN') and isset($_POST['submit']))
    3842{
     
    227231
    228232  $admin_profile = add_session_id(PHPWG_ROOT_PATH.'admin.php?page=profile');
     233
     234  $conf['users_page'] = 20;
     235  $start = isset($_GET['start']) ? $_GET['start'] : 0;
     236
     237  $query = '
     238SELECT COUNT(*) AS counter
     239  FROM '.USERS_TABLE.'
     240  WHERE id != 2
     241;';
     242  list($counter) = mysql_fetch_row(pwg_query($query));
     243  $url = PHPWG_ROOT_PATH.'admin.php'.get_query_string_diff(array('start'));
     244  $navbar = create_navigation_bar($url,
     245                                  $counter,
     246                                  $start,
     247                                  $conf['users_page'],
     248                                  '');
    229249 
    230250  $template->assign_vars(
     
    235255      'L_AUTH_USER'=>$lang['permuser_only_private'],
    236256      'L_SUBMIT'=>$lang['submit'],
    237      
     257      'L_STATUS'=>$lang['user_status'],
     258      'L_USERNAME' => $lang['login'],
     259      'L_EMAIL' => $lang['mail_address'],
     260      'L_ORDER_BY' => $lang['order_by'],
     261      'L_ACTIONS' => $lang['actions'],
     262      'L_PERMISSIONS' => $lang['permissions'],
     263      'L_USERS_LIST' => $lang['title_liste_users'],
     264
     265      'NAVBAR'=>$navbar,
    238266      'F_SEARCH_USER_ACTION' => $admin_profile,
     267      'F_ORDER_ACTION' => $admin_profile,
    239268      'U_SEARCH_USER' => add_session_id(PHPWG_ROOT_PATH.'admin/search.php')
    240269      ));
     270
     271  $order_by_items = array('id' => $lang['registration_date'],
     272                          'username' => $lang['login']);
     273  foreach ($order_by_items as $item => $label)
     274  {
     275    $selected = (isset($_GET['order_by']) and $_GET['order_by'] == $item) ?
     276      'selected="selected"' : '';
     277    $template->assign_block_vars(
     278      'select_user.order_by',
     279      array(
     280        'VALUE' => $item,
     281        'CONTENT' => $label,
     282        'SELECTED' => $selected
     283        ));
     284  }
     285
     286  $direction_items = array('asc' => $lang['ascending'],
     287                           'desc' => $lang['descending']);
     288  foreach ($direction_items as $item => $label)
     289  {
     290    $selected = (isset($_GET['direction']) and $_GET['direction'] == $item) ?
     291      'selected="selected"' : '';
     292    $template->assign_block_vars(
     293      'select_user.direction',
     294      array(
     295        'VALUE' => $item,
     296        'CONTENT' => $label,
     297        'SELECTED' => $selected
     298        ));
     299  }
     300
     301  $profile_url = PHPWG_ROOT_PATH.'admin.php?page=profile&user_id=';
     302  $perm_url = PHPWG_ROOT_PATH.'admin.php?page=user_perm&user_id=';
     303
     304  $users = array();
     305  $user_ids = array();
     306  $groups_content = array();
     307
     308  $order_by = 'id';
     309  if (isset($_GET['order_by'])
     310      and in_array($_GET['order_by'], array_keys($order_by_items)))
     311  {
     312    $order_by = $_GET['order_by'];
     313  }
     314
     315  $direction = 'ASC';
     316  if (isset($_GET['direction'])
     317      and in_array($_GET['direction'], array_keys($direction_items)))
     318  {
     319    $direction = strtoupper($_GET['direction']);
     320  }
     321 
     322  $query = '
     323SELECT id, username, mail_address, status
     324  FROM '.USERS_TABLE.'
     325  WHERE id != 2
     326  ORDER BY '.$order_by.' '.$direction.'
     327  LIMIT '.$start.', '.$conf['users_page'].'
     328;';
     329  $result = pwg_query($query);
     330  while ($row = mysql_fetch_array($result))
     331  {
     332    array_push($users, $row);
     333    array_push($user_ids, $row['id']);
     334    $user_groups[$row['id']] = array();
     335  }
     336
     337  $query = '
     338SELECT user_id, group_id, name
     339  FROM '.USER_GROUP_TABLE.' INNER JOIN '.GROUPS_TABLE.' ON group_id = id
     340  WHERE user_id IN ('.implode(',', $user_ids).')
     341;';
     342  $result = pwg_query($query);
     343  while ($row = mysql_fetch_array($result))
     344  {
     345    $groups_content[$row['group_id']] = $row['name'];
     346    array_push($user_groups[$row['user_id']], $row['group_id']);
     347  }
     348
     349  foreach ($users as $item)
     350  {
     351    $groups = preg_replace('/(\d+)/e',
     352                           "\$groups_content['$1']",
     353                           implode(', ', $user_groups[$item['id']]));
     354   
     355    $template->assign_block_vars(
     356      'select_user.user',
     357      array(
     358        'U_MOD'=>add_session_id($profile_url.$item['id']),
     359        'U_PERM'=>add_session_id($perm_url.$item['id']),
     360        'USERNAME'=>$item['username'],
     361        'STATUS'=>$item['status'],
     362        'EMAIL'=>isset($item['mail_address']) ? $item['mail_address'] : '',
     363        'GROUPS'=>$groups
     364        ));
     365  }
    241366}
    242367else
     
    290415      'L_NO'=>$lang['no'],
    291416      'L_SUBMIT'=>$lang['submit'],
     417      'L_RESET'=>$lang['reset'],
    292418      'L_RETURN' =>  $lang['home'],
    293419      'L_RETURN_HINT' =>  $lang['home_hint'], 
Note: See TracChangeset for help on using the changeset viewer.