function template_preprocess_isotope_filter in Isotope (with Masonry and Packery) 8
Prepares variables for isotope filter template.
Parameters
array $variables: An associative array of variables.
File
- ./
isotope.theme.inc, line 115 - Preprocessors of isotope module.
Code
function template_preprocess_isotope_filter(&$variables) {
$multi_field_logic = 'OR';
// Assemble attributes.
$attributes['class'] = 'js-isotope-options';
if (!empty($variables['instance'])) {
$attributes['data-instance-id'] = 'isotope-instance-' . $variables['instance'];
}
if (!empty($variables['filter_name'])) {
$attributes['data-filter-group'] = $variables['filter_name'];
}
else {
$attributes['data-filter-group'] = 'unnamed_filter';
}
// Assemble items.
$items[] = [
'#theme' => 'isotope_filter_button',
'#value' => '',
'#label' => !empty($variables['default_label']) ? $variables['default_label'] : t('All'),
];
foreach ($variables['items'] as $key => $label) {
$keys = explode(',', $key);
foreach ($keys as $k => $v) {
$keys[$k] = '.' . IsotopeController::sanitize($v);
}
if ($multi_field_logic == 'OR') {
$keys = implode(', ', $keys);
}
else {
$keys = implode('', $keys);
}
$items[] = [
'#theme' => 'isotope_filter_button',
'#value' => $keys,
'#label' => $label,
];
}
$variables['filter'] = [
'#theme' => 'item_list',
'#items' => $items,
'#type' => 'ul',
'#title' => !empty($variables['filter_title']) ? $variables['filter_title'] : NULL,
'#attributes' => $attributes,
];
}