You are here

function advuser_admin_filter_form in Advanced User 5

1 string reference to 'advuser_admin_filter_form'
advuser_admin_users in ./advuser.module

File

./advuser.module, line 166

Code

function advuser_admin_filter_form() {

  //print_r($_SESSION['advuser_user_filter']);
  $sess =& $_SESSION['advuser_user_filter'];
  $sess = is_array($sess) ? $sess : array();
  $session = $sess;
  asort($session);
  $filters = advuser_admin_filters();
  $i = 0;
  $form['filters'] = array(
    '#type' => 'fieldset',
    '#title' => t('Show only items where'),
    '#theme' => 'advuser_filters',
  );
  $types_used = array();
  foreach ($session as $filter) {
    list($type, $value) = $filter;
    $original = $filters[$type];
    $em = 'and';
    if (array_search($type, $types_used) !== FALSE) {
      $em = 'or';
    }
    $string = $i++ ? '<em>' . $em . '</em> where <strong>%a</strong> is <strong>%b</strong>' : '<strong>%a</strong> is <strong>%b</strong>';
    $txt_value = $value;
    if ($original['type'] == 'selection') {
      $txt_value = $original['options'][$value];
    }
    $form['filters']['current'][] = array(
      '#value' => t($string, array(
        '%a' => $filters[$type]['title'],
        '%b' => $txt_value,
      )),
    );
    $types_used[] = $type;
  }
  foreach ($filters as $key => $filter) {
    $names[$key] = $filter['title'];
    if ($filter['type'] == 'selection') {
      $form['filters']['status'][$key] = array(
        '#type' => 'select',
        '#options' => $filter['options'],
      );
    }
    else {
      $form['filters']['status'][$key] = array(
        '#type' => 'textfield',
      );
    }
  }
  $names_keys = array_keys($names);
  $form['filters']['filter'] = array(
    '#type' => 'radios',
    '#options' => $names,
    '#default_value' => $names_keys[0],
  );
  $form['filters']['buttons']['submit'] = array(
    '#type' => 'submit',
    '#value' => count($session) ? t('Refine') : t('Filter'),
  );
  if (count($session)) {
    $form['filters']['buttons']['undo'] = array(
      '#type' => 'submit',
      '#value' => t('Undo'),
    );
    $form['filters']['buttons']['reset'] = array(
      '#type' => 'submit',
      '#value' => t('Reset'),
    );
  }

  //  return drupal_get_form('advuser_admin_filter_form', $form);
  return $form;
}