You are here

function slick_build_grids in Slick Carousel 7.2

Same name and namespace in other branches
  1. 7.3 includes/slick.global.inc \slick_build_grids()

Returns items as a grid display.

1 call to slick_build_grids()
slick_build in ./slick.module
Returns a cacheable renderable array of a single slick instance.

File

includes/slick.global.inc, line 252
Global functions across Slick field formatters and Views.

Code

function slick_build_grids(array $build, &$settings) {
  $grids = array();

  // Display all items if unslick is enforced for plain grid to lightbox.
  if (!empty($settings['unslick'])) {
    $settings['current_display'] = 'main';
    $settings['current_item'] = 'grid';
    $settings['count'] = 2;
    $slide['slide'] = array(
      '#theme' => 'slick_grid',
      '#items' => $build,
      '#delta' => 0,
      '#settings' => $settings,
    );
    $slide['settings'] = $settings;
    $grids[0] = $slide;
  }
  else {

    // Otherwise do chunks to have a grid carousel.
    $preserve_keys = !empty($settings['preserve_keys']);
    $grid_items = array_chunk($build, $settings['visible_slides'], $preserve_keys);
    $settings['count'] = count($grid_items);
    foreach ($grid_items as $delta => $grid_item) {
      $slide = array();
      $slide['slide'] = array(
        '#theme' => 'slick_grid',
        '#items' => $grid_item,
        '#delta' => $delta,
        '#settings' => $settings,
      );
      $slide['settings'] = $settings;
      $grids[] = $slide;
      unset($slide);
    }
  }
  return $grids;
}