You are here

function _views_slideshow_cycle_preprocess_views_slideshow_pager_fields in Views Slideshow 8.4

Same name and namespace in other branches
  1. 8.3 modules/views_slideshow_cycle/views_slideshow_cycle.theme.inc \_views_slideshow_cycle_preprocess_views_slideshow_pager_fields()

Implements hook_preprocess_views_slideshow_pager_fields().

Related topics

1 call to _views_slideshow_cycle_preprocess_views_slideshow_pager_fields()
views_slideshow_cycle_preprocess_views_slideshow_pager_fields in modules/views_slideshow_cycle/views_slideshow_cycle.module
Implements hook_preprocess_views_slideshow_pager_fields().

File

modules/views_slideshow_cycle/views_slideshow_cycle.theme.inc, line 197
Theme & preprocess functions for the Views Slideshow: cycle module.

Code

function _views_slideshow_cycle_preprocess_views_slideshow_pager_fields(&$vars) {
  $slide_count = count($vars['view']->result);
  $options = $vars['view']->style_plugin->options['views_slideshow_cycle'];
  $items_per_slide = $options['items_per_slide'];
  if ($vars['settings']['hide_on_single_slide'] && $slide_count == 1) {
    return;
  }
  $vars['rendered_field_items'] = [];
  for ($slide = 0, $count = 0; $slide < $slide_count; $count++) {
    $rendered_fields = [];
    foreach ($vars['settings']['views_slideshow_pager_fields']['views_slideshow_pager_fields_fields'] as $field => $use) {
      if ($use !== 0 && is_object($vars['view']->field[$field])) {
        $rendered_fields[] = [
          '#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($slide, $field),
          '#css_identifier' => Html::cleanCssIdentifier($vars['view']->field[$field]->field),
        ];
      }
    }
    if (empty($vars['rendered_field_items']) && $options['items_per_slide_first']) {
      $slide += $options['items_per_slide_first_number'];
    }
    elseif ($options['items_per_slide']) {
      $slide += $options['items_per_slide'];
    }
    else {
      $slide += 1;
    }
    $vars['rendered_field_items'][] = [
      '#theme' => $vars['view']
        ->buildThemeFunctions('views_slideshow_pager_field_item'),
      '#vss_id' => $vars['vss_id'],
      '#item' => $rendered_fields,
      '#count' => $count,
      '#location' => $vars['location'],
    ];
  }
}