You are here

function template_preprocess_foundation_accordion in ZURB Section 7.3

Same name and namespace in other branches
  1. 8.5 foundation_group.module \template_preprocess_foundation_accordion()
  2. 7 foundation_group.module \template_preprocess_foundation_accordion()

Implements template_preprocess_foundation_accordion().

File

./foundation_group.module, line 153

Code

function template_preprocess_foundation_accordion(&$variables) {
  $toggable = isset($variables['element']['#settings']['toggable']) ? $variables['element']['#settings']['toggable'] : FALSE;

  // Prepare accordion items for rendering.
  $items_processed = array();
  foreach (element_children($variables['element'], TRUE) as $key) {
    $item =& $variables['element'][$key];
    if (!empty($item) && $item['#type'] === 'foundation_accordion_item') {

      // Add classes array for drupal_attributes().
      $item['#attributes']['class'] = $item['#settings']['classes'];
      $item_processed = array(
        'title' => $item['#title'],
        'content' => drupal_render($item),
        'container_attributes' => $item['#attributes'],
        'content_attributes' => array(),
      );
      if ($item['#formatter'] === 'open') {
        $item_processed['container_attributes']['class'][] = 'active';
        $item_processed['content_attributes']['class'][] = 'active';
      }

      // Add required classes.
      $item_processed['content_attributes']['class'][] = 'content';
      $items_processed[] = $item_processed;
    }
  }

  // Replace items with processed version but keep original version.
  $variables['items'] = $items_processed;

  // Setup data-options.
  $data_options = array();

  // Setup attributes.
  $attributes =& $variables['element']['#attributes'];
  if (!empty($data_options)) {
    $attributes['data-options'] = implode('; ', $data_options);
  }

  // Add classes.
  $attributes['class'] = $variables['element']['#settings']['classes'];
}