You are here

function slick_slideshow_field_formatter_view in Slick Slideshow Lite 7

Implements hook_field_formatter_view().

File

./slick_slideshow.module, line 148
Defines a system for adding the Slick responsive slideshow library to Drupal.

Code

function slick_slideshow_field_formatter_view($entity_type, $entity, $field, $instance, $langcode, $items, $display) {
  $element = array();

  // For now, just add Slick to image fields.
  switch ($field['type']) {
    case 'image':
      if ($display['type'] == 'slick_slideshow') {
        foreach ($items as $delta => $item) {
          $element[$delta] = array(
            '#theme' => 'slick_slideshow_image_slide',
            '#item' => $item,
            '#image_style' => isset($display['settings']['slickField']['image_style']) ? $display['settings']['slickField']['image_style'] : '',
            '#captions' => isset($display['settings']['slickField']['captions']) ? $display['settings']['slickField']['captions'] : '',
          );
        }
      }

      // Set image field's default settings
      if (isset($display['settings']['slickSettings']) && empty($display['settings']['slickSettings'])) {
        $display['settings']['slickSettings'] = array(
          'slidesToShow' => 1,
          'slidesToScroll' => 1,
        );
      }

      // Get image field's Slick slideshow settings.
      $settings = _slick_slideshow_settings_alter($display['settings']['slickSettings']);

      // Create Slick slideshow.
      $field_selector = '#slick-slideshow-' . str_replace('_', '-', $field['field_name']);
      $target = '.field-items';
      slick_slideshow_create($field_selector, $settings, $target);
      break;
  }
  return $element;
}