function biblio_form_filter in Bibliography Module 7
Same name and namespace in other branches
- 5 biblio.module \biblio_form_filter()
- 6.2 includes/biblio.pages.inc \biblio_form_filter()
- 6 biblio.pages.inc \biblio_form_filter()
- 7.2 includes/biblio.pages.inc \biblio_form_filter()
1 call to biblio_form_filter()
- biblio_search_form in includes/
biblio.pages.inc
File
- includes/
biblio.pages.inc, line 1082 - Copyright (C) 2006-2011 Ron Jerome.
Code
function biblio_form_filter() {
$session = isset($_SESSION['biblio_filter']) ? $_SESSION['biblio_filter'] : array();
$filters = _get_biblio_filters();
$i = 0;
$form['filters'] = array(
'#type' => 'fieldset',
'#title' => t('Show only items where'),
'#theme' => 'exposed_filters__node',
'#collapsible' => TRUE,
'#collapsed' => TRUE,
);
foreach ($session as $filter) {
$type = key($filter);
$value = $filter[$type];
// list($type, $value) = $filter;.
if ($type == 'search') {
$session = array();
break;
}
if ($type == 'category') {
// Load term name from DB rather than search and parse options array.
$value = module_invoke('taxonomy', 'get_term', $value);
$value = $value->name;
}
else {
$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),
);
}
if (in_array($type, array(
'type',
'language',
))) {
// 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) {
$form['filters']['status']['filters'][$key] = array(
'#type' => 'select',
'#options' => $filter['options'],
'#title' => $filter['title'],
'#default_value' => 'any',
);
}
$form['filters']['status']['actions'] = array(
'#type' => 'actions',
'#attributes' => array(
'class' => array(
'container-inline',
),
),
);
$form['filters']['status']['actions']['submit'] = array(
'#type' => 'submit',
'#value' => count($session) ? t('Refine') : t('Filter'),
'#submit' => array(
'biblio_form_filter_submit',
),
);
if (count($session)) {
$form['filters']['status']['actions']['undo'] = array(
'#type' => 'submit',
'#value' => t('Undo'),
'#submit' => array(
'biblio_form_filter_submit',
),
);
$form['filters']['status']['actions']['reset'] = array(
'#type' => 'submit',
'#value' => t('Reset'),
'#submit' => array(
'biblio_form_filter_submit',
),
);
}
return $form;
}