You are here

function advuser_filter_ui in Advanced User 7.3

Same name and namespace in other branches
  1. 6.3 forms/advuser_filter_ui.inc \advuser_filter_ui()

The phase controller.

1 string reference to 'advuser_filter_ui'
advuser_admin in forms/advuser_admin.inc
Callback form controller.

File

forms/advuser_filter_ui.inc, line 13
This provides a multipart form for the filtering options.

Code

function advuser_filter_ui($form_state) {
  $advuser =& $_SESSION['advuser'];
  $phase =& $advuser['phase'];
  $filters =& $advuser['filters'];
  $accounts =& $advuser['accounts'];
  $selectall =& $advuser['selectall'];
  $form['filters'] = array(
    '#type' => 'fieldset',
    '#title' => t('Show only users'),
    '#collapsible' => TRUE,
    '#collapsed' => FALSE,
    '#theme' => 'exposed_filters__user',
  );
  if (empty($phase)) {
    $phase['id'] = 0;
  }
  if ($phase['id'] == 0 && (count($accounts) || $selectall)) {
    $form['filters']['#collapsed'] = TRUE;
  }
  if (empty($filters)) {
    $filters = array();
  }
  $filter_fields = advuser_filters();
  $i = 0;
  $filtersCnt = count($filters);
  foreach ($filters as $filter) {
    list($field, $conjunction, $operations, $data) = array_values($filter);
    $conjunction = $conjunction == ') OR (' ? 'OR' : $conjunction;
    if ($i == 0) {
      $oparen = '(';
    }
    elseif ($filtersCnt > 1) {
      $oparen = '';
    }
    if ($i == $filtersCnt - 1) {
      $cparen = ')';
    }
    if ($i + 1 < $filtersCnt) {
      if ($filters[$i + 1]['conjunction'] == ') OR (') {
        $cparen = ')';
      }
      else {
        $cparen = '';
      }
    }
    if ($conjunction == 'OR') {
      $oparen = '(';
    }
    $params = array(
      '%property' => $filter_fields[$field]['title'],
      '%value' => _advuser_filter_ui_data_display($field, $data),
    );
    $form['filters']['current'][] = array(
      '#markup' => t((!empty($conjunction) ? "<em>{$conjunction}</em> " : NULL) . $oparen . 'where <strong>%property</strong> ' . _advuser_filter_ui_symbols($operations) . ' <strong>%value</strong>', $params) . $cparen,
    );
    $oparen = '';
    $i++;
  }
  $function = "_advuser_filter_ui_{$phase['id']}";
  $function($form, $form_state);
  drupal_add_library('system', 'drupal.form');
  return $form;
}