Same filename and directory in other branches
  1. 8.x-3.x quicktabs.theme.inc 1 comment

Theme for quicktabs views.

File

./quicktabs.theme.inc

View source
<?php


/**
 * @file
 * Theme for quicktabs views.
 */

/**
 * Prepares variables for quicktabs view template.
 *
 * Default template: quicktabs-view-quicktabs.html.twig.
 *
 * Create a tabbed view
 *
 * @param array $variables
 *   An associative array.
 */
function template_preprocess_quicktabs_view_quicktabs(array &$variables) {
    $view = $variables['view'];
    $rows = $variables['rows'];
    $style = $view->style_plugin;
    $options = $style->options;
    $variables['default_row_class'] = !empty($options['default_row_class']);
    $variables['total_rows'] = $view->total_rows;
    $quicktab_id = str_replace('_', '-', $view->id());
    $variables['quicktab_id'] = $quicktab_id;
    foreach ($rows as $id => $row) {
        $variables['rows'][$id] = [];
        $variables['rows'][$id]['content'] = $row;
        $attributes = [];
        $quicktab_classes = [];
        if ($options['default_row_class']) {
            $quicktab_classes[] = 'views-row';
        }
        if (!empty($options['row_class'])) {
            $quicktab_classes[] = $options['row_class'];
        }
        $attributes['class'] = $quicktab_classes;
        $variables['rows'][$id]['content']['#theme_wrappers'] = [
            'container' => [
                '#attributes' => $attributes,
            ],
        ];
    }
    $set_mapping = $style->getSetMapping();
    $variables['#attached']['drupalSettings']['quicktabs']['qt_' . $quicktab_id] = new stdClass();
    $variables['#attached']['drupalSettings']['quicktabs']['qt_' . $quicktab_id]->tabs = [];
    if (!empty($style->getTabs())) {
        $current_set = 0;
        $rows_with_page_starts = [];
        $rows_with_page_endings = [];
        foreach ($set_mapping as $index => $row_numbers) {
            $rows_with_page_starts[] = reset($row_numbers);
            $rows_with_page_endings[] = array_pop($row_numbers);
            // Add each tab to the js settings.
            $object = new stdClass();
            $object->tab_page = $current_set;
            $object->title = $index;
            $variables['#attached']['drupalSettings']['quicktabs']['qt_' . $quicktab_id]->tabs[] = $object;
            $current_set++;
        }
        // The tab is effectively the title.
        unset($variables['title']);
        // Use these in the template to determine
        // where to insert quicktabs markup.
        $rows_with_tabs = [
            0,
        ];
        $variables['tabs'] = $style->getTabs();
        $variables['rows_with_tabs'] = $rows_with_tabs;
        $variables['rows_with_page_starts'] = $rows_with_page_starts;
        $variables['rows_with_page_endings'] = $rows_with_page_endings;
    }
}

Functions

Title Deprecated Summary
template_preprocess_quicktabs_view_quicktabs Prepares variables for quicktabs view template.