Same name and namespace in other branches
  1. 5.0.x views_slideshow.theme.inc \template_preprocess_views_slideshow_pager_fields() 1 comment
  2. 7.x-3.x theme/views_slideshow.theme.inc \template_preprocess_views_slideshow_pager_fields() 1 comment
  3. 8.x-4.x views_slideshow.theme.inc \template_preprocess_views_slideshow_pager_fields() 1 comment

Theme pager fields.

File

./views_slideshow.theme.inc, line 212

Code

function template_preprocess_views_slideshow_pager_fields(&$vars) {
    // Add javascript settings for the field.
    $vars['#attached']['library'][] = 'views_slideshow/widget_info';
    $vars['#attached']['drupalSettings']['viewsSlideshowPagerFields'][$vars['vss_id']] = array(
        $vars['location'] => array(
            'activatePauseOnHover' => $vars['settings']['views_slideshow_pager_fields_hover'],
        ),
    );
    // Add hover intent library.
    // @todo Check if there is a better way to detect optional libraries.
    if ($vars['settings']['views_slideshow_pager_fields_hover']) {
        $hoverIntent = \Drupal::service('library.discovery')->getLibraryByName('views_slideshow', 'jquery_hoverIntent');
        if (isset($hoverIntent['js'][0]['data']) && file_exists($hoverIntent['js'][0]['data'])) {
            $vars['#attached']['library'][] = 'views_slideshow/jquery_hoverIntent';
        }
    }
    $vars['widget_id'] = $vars['attributes']['id'];
    // Add our class to the wrapper.
    $vars['attributes']['class'][] = 'views_slideshow_pager_field';
    // Render all the fields unless there is only 1 slide and the user specified
    // to hide them when there is only one slide.
    $vars['rendered_field_items'] = '';
    if (empty($vars['settings']['hide_on_single_slide']) || count($vars['view']->result) > $vars['view']->style_options['views_slideshow_cycle']['items_per_slide']) {
        foreach ($vars['view']->result as $count => $node) {
            $rendered_fields = '';
            foreach ($vars['settings']['views_slideshow_pager_fields_fields'] as $field => $use) {
                if ($use !== 0 && is_object($vars['view']->field[$field])) {
                    $rendered_fields[] = array(
                        '#theme' => $vars['view']->buildThemeFunctions('views_slideshow_pager_field_field'),
                        '#view' => $vars['view'],
                        '#label' => $vars['view']->field[$field]->options['label'],
                        '#output' => $vars['view']->style_plugin
                            ->getField($count, $field),
                        '#css_identifier' => Html::cleanCssIdentifier($vars['view']->field[$field]->field),
                    );
                }
            }
            $vars['rendered_field_items'][] = array(
                '#theme' => $vars['view']->buildThemeFunctions('views_slideshow_pager_field_item'),
                '#vss_id' => $vars['vss_id'],
                '#item' => $rendered_fields,
                '#count' => $count,
                '#location' => $vars['location'],
                '#length' => count($vars['view']->result),
            );
        }
    }
}