You are here

viewscarousel.module in Views carousel 6

Same filename and directory in other branches
  1. 5 viewscarousel.module
  2. 6.2 viewscarousel.module

Provides a Views style plugin for jQuery jcarousel.

File

viewscarousel.module
View source
<?php

/**
 * @file
 * Provides a Views style plugin for jQuery jcarousel.
 */

/**
 * Implementation of hook_views_api().
 */
function viewscarousel_views_api() {
  return array(
    'api' => 2,
  );
}
function template_preprocess_viewscarousel_view(&$vars) {
  drupal_add_css(drupal_get_path('module', 'viewscarousel') . '/jquery.jcarousel.css');
  drupal_add_css(drupal_get_path('module', 'viewscarousel') . '/skins/ie7/skin.css');
  drupal_add_js(drupal_get_path('module', 'viewscarousel') . '/jquery.jcarousel.pack.js');
  drupal_add_js(drupal_get_path('module', 'viewscarousel') . '/viewscarousel.js');
  $options = viewscarousel_get_options($vars);
  $view = $vars['view'];
  $vars['viewscarousel_id'] = 'viewscarousel-' . $view->name . '-' . $view->current_display;
  $vars['viewscarousel_class'] = viewscarousel_get_class($vars);
  drupal_add_js(array(
    'viewscarousel' => array(
      $vars['viewscarousel_id'] => $options,
    ),
  ), 'setting');
}

/**
 * Get the options to pass to jcarousel from the settings.
 *
 * @param array $vars
 *  Variables from a _preprocess_viewscarousel_view function
 *
 * @return array
 *  Options that can be passed to jcarousel
 */
function viewscarousel_get_options(&$vars) {
  $options = array();
  $options['vertical'] = $vars['options']['vertical'];
  $options['start'] = $vars['options']['start'];
  $options['scroll'] = $vars['options']['scroll'];
  $options['visible'] = $vars['options']['visible'];
  $options['animation'] = $vars['options']['animation'];
  $options['easing'] = $vars['options']['easing'];
  $options['auto'] = $vars['options']['auto'];
  $options['auto_pause'] = $vars['options']['auto_pause'];
  $options['wrap'] = $vars['options']['wrap'];
  foreach ($options as $key => $value) {
    if (empty($value)) {
      unset($options[$key]);
    }
  }

  // Bug fix. 1 is default. If you manually set 1 an empty row is added to left side.
  if ($options['start'] == 1) {
    unset($options['start']);
  }
  return $options;
}

/**
 * Get class for skin and add css file if available
 *
 * @param array $vars
 *  Variables from a _preprocess_viewscarousel_view function
 * @return string
 *  Class name to add to ul
 */
function viewscarousel_get_class($vars) {
  switch ($vars['options']['skin']) {
    case 'ie7':
      drupal_add_css(drupal_get_path('module', 'viewscarousel') . '/skins/ie7/skin.css');
      return 'jcarousel-skin-ie7';
      break;
    case 'tango':
      drupal_add_css(drupal_get_path('module', 'viewscarousel') . '/skins/tango/skin.css');
      return 'jcarousel-skin-tango';
      break;
    default:
      return;
      break;
  }
}

Functions

Namesort descending Description
template_preprocess_viewscarousel_view
viewscarousel_get_class Get class for skin and add css file if available
viewscarousel_get_options Get the options to pass to jcarousel from the settings.
viewscarousel_views_api Implementation of hook_views_api().