You are here

function apply_for_role_admin_form in Apply for role 7.2

Same name and namespace in other branches
  1. 5 apply_for_role.module \apply_for_role_admin_form()
  2. 6 apply_for_role.admin.inc \apply_for_role_admin_form()
  3. 7 apply_for_role.admin.inc \apply_for_role_admin_form()
1 string reference to 'apply_for_role_admin_form'
apply_for_role_menu in ./apply_for_role.module
Implements hook_menu().

File

./apply_for_role.admin.inc, line 249
Administration forms for the Apply for Role (AFR) module.

Code

function apply_for_role_admin_form($form, $form_state) {
  $roles = array_map('check_plain', user_roles(TRUE));
  $header = array(
    array(
      'data' => t('Username'),
      'field' => 'u.name',
    ),
    array(
      'data' => t('Applying For'),
      'field' => 'rid',
    ),
    array(
      'data' => t('Applied'),
      'field' => 'apply_date',
      'sort' => 'desc',
    ),
    array(
      'data' => t('Status'),
      'field' => 'approved',
    ),
    array(
      'data' => t('Processed'),
      'field' => 'approve_date',
    ),
  );
  $select = db_select('users_roles_apply', 'a');
  $select
    ->fields('a', array(
    'uid',
    'rid',
    'approved',
    'apply_date',
    'approve_date',
    'message',
  ));
  $select
    ->join('users', 'u', 'a.uid = u.uid');
  $select
    ->extend('TableSort')
    ->orderByHeader($header);
  $results = $select
    ->orderBy('apply_date', 'DESC')
    ->extend('PagerDefault')
    ->limit(20)
    ->execute();
  if (!empty($results)) {
    foreach ($results as $row) {
      $user = user_load($row->uid);
      $form['apps'][$row->uid][$row->rid]['user'] = array(
        '#markup' => theme('username', array(
          'account' => $user,
        )),
      );
      $form['apps'][$row->uid][$row->rid]['role'] = array(
        '#markup' => isset($roles[$row->rid]) ? check_plain($roles[$row->rid]) : t('<em>Invalid Role</em>'),
      );
      $current_roles = array_slice($user->roles, 1);
      $form['apps'][$row->uid][$row->rid]['current_roles'] = array(
        '#markup' => filter_xss_admin(implode('<br />', $current_roles)),
      );
      $form['apps'][$row->uid][$row->rid]['apply_date'] = array(
        '#markup' => format_date($row->apply_date),
      );
      $form['apps'][$row->uid][$row->rid]['status'] = array(
        '#markup' => theme('apply_for_role_status', array(
          'status' => $row->approved,
        )),
      );
      $form['apps'][$row->uid][$row->rid]['approve_date'] = array(
        '#markup' => empty($row->approve_date) ? '' : format_date($row->approve_date),
      );
      $form['apps'][$row->uid][$row->rid]['message'] = array(
        '#markup' => empty($row->message) ? '' : check_plain($row->message),
      );
      if (!empty($row->uid) && isset($roles[$row->rid])) {
        if ($row->approved != APPLY_FOR_ROLE_APPROVED && $row->approved != APPLY_FOR_ROLE_DENIED && user_access('approve role applications')) {
          $form['apps'][$row->uid][$row->rid]['approve'] = array(
            '#markup' => l(t('Approve'), 'admin/people/apply_for_role/approve/' . $row->uid . '/' . $row->rid, array(
              'title' => t('Approve this user'),
            )),
          );
        }
        if ($row->approved != APPLY_FOR_ROLE_DENIED && $row->approved != APPLY_FOR_ROLE_APPROVED && user_access('deny role applications')) {
          $form['apps'][$row->uid][$row->rid]['deny'] = array(
            '#markup' => l(t('Deny'), 'admin/people/apply_for_role/deny/' . $row->uid . '/' . $row->rid, array(
              'title' => t('Deny this user'),
            )),
          );
        }
      }
      if (user_access('delete role applications')) {
        $form['apps'][$row->uid][$row->rid]['delete'] = array(
          '#markup' => l(t('Delete'), 'admin/people/apply_for_role/remove/' . $row->uid . '/' . $row->rid, array(
            'title' => t('Remove application'),
          )),
        );
      }
    }
  }
  return $form;
}