function advuser_form_user_filter_form_add in Advanced User 7.4
AJAX callback for "Add Filter".
2 calls to advuser_form_user_filter_form_add()
- advuser_form_user_filter_form_alter in ./
advuser.module - Implements hook_form_FORM_ID_alter().
- advuser_form_user_filter_form_reset in ./
advuser.module - AJAX callback for "Clear Filters".
1 string reference to 'advuser_form_user_filter_form_add'
- advuser_form_user_filter_form_alter in ./
advuser.module - Implements hook_form_FORM_ID_alter().
File
- ./
advuser.module, line 246 - advuser.module
Code
function advuser_form_user_filter_form_add(&$form, &$form_state, $increment = TRUE) {
// Get user entity filters.
$filters = advuser_filters();
// Set filter operators.
$options_operator = array(
'',
'=',
'<>',
'>',
'>=',
'<',
'<=',
'STARTS_WITH',
'CONTAINS',
);
$options_operator = drupal_map_assoc($options_operator);
$default_operator = array_keys(array_slice($options_operator, 1, 1, TRUE));
$default_operator = $default_operator[0];
// Set filter fields.
$options_field = array();
foreach ($filters as &$group) {
foreach ($group as $key => &$meta) {
$options_field[$key] = $meta['#title'];
}
}
$default_field = array_keys(array_slice($options_field, 0, 1, TRUE));
$default_field = $default_field[0];
$form['filters']['advuser'] = array(
'#type' => 'container',
'#tree' => TRUE,
'#attributes' => array(
'id' => 'advuser',
'class' => array(
'filters',
),
),
);
$count = (!empty($_SESSION['advuser_overview_filter_count']) ? $_SESSION['advuser_overview_filter_count'] : 0) + ($increment ? 1 : 0);
$_SESSION['advuser_overview_filter_count'] = $count;
for ($i = 0; $i < $count; $i++) {
$filter_key = 'filter_' . $i;
// Get session filters.
$field = advuser_filter_get($filter_key, 'field', $default_field);
$operator = advuser_filter_get($filter_key, 'operator', $default_operator);
$value = advuser_filter_get($filter_key, 'value');
$form['filters']['advuser'][$filter_key] = array(
'#type' => 'container',
'#attributes' => array(
'id' => $filter_key,
'class' => array(
'container-inline',
'filter',
),
),
);
$form['filters']['advuser'][$filter_key]['field'] = array(
'#type' => 'select',
'#title' => t('Field'),
'#title_display' => 'invisible',
'#options' => $options_field,
'#default_value' => $field,
'#weight' => 0,
'#attributes' => array(
'data' => 'field',
'style' => 'width: 127px;',
),
);
$form['filters']['advuser'][$filter_key]['operator'] = array(
'#type' => 'select',
'#options' => $options_operator,
'#default_value' => $operator,
'#weight' => 1,
'#attributes' => array(
'data' => 'operator',
'style' => 'width: 80px;',
),
);
foreach ($filters as &$group) {
foreach ($group as $key => &$meta) {
if ($key == $field) {
$meta = array_merge($meta, array(
'#default_value' => $value,
'#title_display' => 'invisible',
'#weight' => 2,
'#attributes' => array(
'data' => 'value',
'style' => 'width: ' . ($meta['#type'] == 'select' ? '102' : '96') . 'px;',
),
));
$form['filters']['advuser'][$filter_key]['value'] = $meta;
}
}
}
$form['filters']['advuser'][$filter_key]['field']['#ajax']['callback'] = $form['filters']['advuser'][$filter_key]['operator']['#ajax']['callback'] = $form['filters']['advuser'][$filter_key]['value']['#ajax']['callback'] = 'advuser_form_user_filter_form_submit';
$form['filters']['advuser'][$filter_key]['field']['#attached']['js'][] = $form['filters']['advuser'][$filter_key]['operator']['#attached']['js'][] = $form['filters']['advuser'][$filter_key]['value']['#attached']['js'][] = drupal_get_path('module', 'advuser') . '/advuser.js';
$form['filters']['advuser'][$filter_key]['field']['#attributes']['class'][] = $form['filters']['advuser'][$filter_key]['operator']['#attributes']['class'][] = $form['filters']['advuser'][$filter_key]['value']['#attributes']['class'][] = 'advuser-filter';
}
return $form['filters']['advuser'];
}