You are here

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,
  ];
}