You are here

public static function FlickityBuilder::preRender in Flickity Carousel 3.0.x

Sets the flickity - #pre_render callback.

File

src/FlickityBuilder.php, line 17

Class

FlickityBuilder
Provides a trusted callback to alter the flickity output.

Namespace

Drupal\flickity

Code

public static function preRender(array $element) {
  $items = array();
  foreach ($element['#output']['items'] as $key => $item) {
    $items[] = array(
      '#theme' => 'flickity_item',
      '#item' => $item['row'],
      '#attributes' => array(
        'class' => array(
          'gallery-cell',
          'item-' . $key,
        ),
      ),
    );
  }

  // Build wrapper with Flickity items.
  $build = flickity_build($element['#output']['settings'], $items);

  // Provide pre render alter.
  \Drupal::moduleHandler()
    ->alter('pre_render', $build);

  // Render the complete Flickity element.
  $element['#children'] = \Drupal::service('renderer')
    ->render($build);
  return $element;
}