function skinr_ui_filter_form in Skinr 7.2
Same name and namespace in other branches
- 8.2 skinr_ui/skinr_ui.admin.inc \skinr_ui_filter_form()
- 6.2 skinr_ui.admin.inc \skinr_ui_filter_form()
Form builder for the Skinr administration filters form.
3 calls to skinr_ui_filter_form()
- skinr_context_ui_admin_list in skinr_context/
skinr_context_ui.admin.inc - Menu callback: skin configuration groups administration.
- skinr_context_ui_admin_skin_list in skinr_context/
skinr_context_ui.admin.inc - Overrides skinr_ui_list().
- skinr_ui_list in ./
skinr_ui.admin.inc - Menu callback: skin configurations administration.
File
- ./
skinr_ui.admin.inc, line 167 - Admin page callbacks for the Skinr UI module.
Code
function skinr_ui_filter_form($filters_callback, &$form_state) {
$form_state['#callback'] = $filters_callback;
$session =& $_SESSION[$filters_callback];
$session = is_array($session) ? $session : array();
$filters = $filters_callback();
$i = 0;
$form['filters'] = array(
'#type' => 'fieldset',
'#title' => t('Show only items where'),
'#theme' => 'exposed_filters__skinr',
);
foreach ($session as $filter) {
list($type, $value) = $filter;
$value = $filters[$type]['options'][$value];
$t_args = array(
'%property' => $filters[$type]['title'],
'%value' => $value,
);
if ($i++) {
$form['filters']['current'][] = array(
'#markup' => t('and where %property is %value', $t_args),
);
}
else {
$form['filters']['current'][] = array(
'#markup' => t('where %property is %value', $t_args),
);
}
// Remove the option if it is already being filtered on.
unset($filters[$type]);
}
$form['filters']['status'] = array(
'#type' => 'container',
'#attributes' => array(
'class' => array(
'clearfix',
),
),
'#prefix' => $i ? '<div class="additional-filters">' . t('and where') . '</div>' : '',
);
$form['filters']['status']['filters'] = array(
'#type' => 'container',
'#attributes' => array(
'class' => array(
'filters',
),
),
);
foreach ($filters as $key => $filter) {
$names[$key] = $filter['title'];
$form['filters']['status']['filters'][$key] = array(
'#type' => 'select',
'#title' => $filter['title'],
'#options' => $filter['options'],
'#default_value' => '[any]',
);
}
$form['filters']['status']['actions'] = array(
'#type' => 'actions',
'#id' => 'skinr-exposed-filters',
'#attributes' => array(
'class' => array(
'container-inline',
),
),
);
if (count($filters)) {
$form['filters']['status']['actions']['submit'] = array(
'#type' => 'submit',
'#value' => count($session) ? t('Refine') : t('Filter'),
);
}
if (count($session)) {
$form['filters']['status']['actions']['undo'] = array(
'#type' => 'submit',
'#value' => t('Undo'),
);
$form['filters']['status']['actions']['reset'] = array(
'#type' => 'submit',
'#value' => t('Reset'),
);
}
drupal_add_js('misc/form.js');
return $form;
}