function theme_isotope_filter in Brainstorm profile 7
Default theme implementation for the filter list.
Parameters
array $vars: Variables for theming.
Return value
string Markup.
2 theme calls to theme_isotope_filter()
- template_preprocess_views_isotope_views_filter in modules/
custom/ views_isotope/ views/ views_isotope_views.theme.inc - Preprocess function to build isotope filter blocks.
- views_isotope_example_theme_page in modules/
custom/ views_isotope/ views_isotope_example/ views_isotope_example.module - Page callback.
File
- modules/
custom/ views_isotope/ views_isotope.module, line 481 - Load the isotope library and provide configuration and theme options.
Code
function theme_isotope_filter(array $vars) {
$multi_field_logic = 'OR';
$attributes['class'] = 'isotope-options clearfix';
if (!empty($vars['instance'])) {
$attributes['data-instance-id'] = 'isotope-instance-' . $vars['instance'];
}
if (!empty($vars['filtername'])) {
$attributes['data-filter-group'] = $vars['filtername'];
}
else {
$attributes['data-filter-group'] = 'unnamed_filter';
}
$title = !empty($vars['filtertitle']) ? $vars['filtertitle'] : NULL;
$items[] = l(t('All'), '', [
'attributes' => [
'class' => 'filterbutton',
'data-filter' => '',
],
'fragment' => 'filter',
'external' => TRUE,
]);
foreach ($vars['items'] as $key => $label) {
$keys = explode(',', $key);
foreach ($keys as $k => $v) {
$keys[$k] = '.' . views_isotope_sanitize($v);
}
if ($multi_field_logic == 'OR') {
$keys = implode(', ', $keys);
}
else {
$keys = implode('', $keys);
}
$items[] = l($label, '', [
'attributes' => [
'class' => 'filterbutton',
'data-filter' => $keys,
],
'fragment' => 'filter',
'external' => TRUE,
'html' => TRUE,
]);
}
$return = [
'#theme' => 'item_list',
'#items' => $items,
'#type' => 'ul',
'#title' => $title,
'#attributes' => $attributes,
];
return drupal_render($return);
}