Skip to content

Instantly share code, notes, and snippets.

@bdecarne
Created September 10, 2013 13:01
Show Gist options
  • Save bdecarne/6509078 to your computer and use it in GitHub Desktop.
Save bdecarne/6509078 to your computer and use it in GitHub Desktop.
Views Slideshow Cycle : pagination adaptation for multiple items per slide
<?php
/**
* Implements hook_preprocess_views_slideshow_pager_fields()
*/
function MYTHEME_preprocess_views_slideshow_pager_fields(&$vars) {
$slide_count = count($vars['view']->result);
$items_per_slide = $vars['view']->style_options['views_slideshow_cycle']['items_per_slide'];
if ($vars['view']->style_options['slideshow_type'] == 'views_slideshow_cycle') {
$slide_count = $slide_count / $items_per_slide;
$slide_count = ceil($slide_count);
}
$vars['rendered_field_items'] = '';
if (empty($vars['settings']['hide_on_single_slide']) || $slide_count > 1) {
foreach ($vars['view']->result as $count => $node) {
if ($count < $slide_count) {
$rendered_fields = '';
foreach ($vars['settings']['views_slideshow_pager_fields_fields'] as $field => $use) {
if ($use !== 0 && is_object($vars['view']->field[$field])) {
$rendered_fields .= theme(views_theme_functions('views_slideshow_pager_field_field', $vars['view'], $vars['view']->display[$vars['view']->current_display]), array('view' => $vars['view'], 'field' => $field, 'count' => $count));
}
}
$vars['rendered_field_items'] .= theme(views_theme_functions('views_slideshow_pager_field_item', $vars['view'], $vars['view']->display[$vars['view']->current_display]), array('vss_id' => $vars['vss_id'], 'item' => $rendered_fields, 'count' => $count, 'location' => $vars['location']));
}
}
}
}
/**
* Implement hook_preprocess_views_slideshow_slide_counter()
*/
function MYTHEME_preprocess_views_slideshow_slide_counter(&$vars) {
if ($vars['view']->style_options['slideshow_type'] == 'views_slideshow_cycle') {
$vars['slide_count'] = $vars['slide_count'] / $vars['view']->style_options['views_slideshow_cycle']['items_per_slide'];
$vars['slide_count'] = ceil($vars['slide_count']);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment