array( 'variables' => array('vss_id' => NULL, 'slides' => NULL, 'plugin' => NULL), 'file' => 'theme/views_slideshow.theme.inc', ), 'views_slideshow_pager_widget_render' => array( 'variables' => array('vss_id' => NULL, 'view' => NULL, 'settings' => array(), 'location' => NULL, 'rows' => array()), 'file' => 'theme/views_slideshow.theme.inc', ), 'views_slideshow_pager_fields' => array( 'variables' => array('vss_id' => NULL, 'view' => NULL, 'settings' => array(), 'location' => NULL, 'attributes' => array()), 'template' => 'theme/views-slideshow-pager-fields', ), 'views_slideshow_pager_field_field' => array( 'variables' => array('view' => NULL, 'field' => NULL, 'count' => NULL), 'template' => 'theme/views-slideshow-pager-field-field', 'file' => 'theme/views_slideshow.theme.inc', ), 'views_slideshow_pager_field_item' => array( 'variables' => array('vss_id' => NULL, 'item' => NULL, 'count' => NULL, 'location' => NULL), 'template' => 'theme/views-slideshow-pager-field-item', ), 'views_slideshow_controls_widget_render' => array( 'variables' => array('vss_id' => NULL, 'view' => NULL, 'settings' => array(), 'location' => NULL, 'rows' => array()), 'file' => 'theme/views_slideshow.theme.inc', ), 'views_slideshow_controls_text' => array( 'variables' => array('vss_id' => NULL, 'view' => NULL, 'settings' => array(), 'location' => NULL, 'rows' => array()), 'template' => 'theme/views-slideshow-controls-text', ), 'views_slideshow_controls_text_previous' => array( 'variables' => array('vss_id' => NULL, 'view' => NULL, 'settings' => array()), 'template' => 'theme/views-slideshow-controls-text-previous', ), 'views_slideshow_controls_text_pause' => array( 'variables' => array('vss_id' => NULL, 'view' => NULL, 'settings' => array()), 'template' => 'theme/views-slideshow-controls-text-pause', ), 'views_slideshow_controls_text_next' => array( 'variables' => array('vss_id' => NULL, 'view' => NULL, 'settings' => array()), 'template' => 'theme/views-slideshow-controls-text-next', ), 'views_slideshow_slide_counter_widget_render' => array( 'variables' => array('vss_id' => NULL, 'view' => NULL, 'settings' => array(), 'location' => NULL, 'rows' => array()), 'file' => 'theme/views_slideshow.theme.inc', ), 'views_slideshow_slide_counter' => array( 'variables' => array('vss_id' => NULL, 'view' => NULL, 'settings' => array(), 'location' => NULL, 'rows' => array()), 'template' => 'theme/views-slideshow-slide-counter', ), ); } /** * Implements hook_views_api(). */ function views_slideshow_views_api() { return array( 'api' => '3', ); } /** * Implements hook_help(). */ function views_slideshow_help($path, $arg) { switch ($path) { case 'admin/help#views_slideshow': return '

Check the Views Slideshow project page documentation for tutorials and videos on how to use this module.

'; } } /** * Implements hook_init(). */ function views_slideshow_init() { // Load javascript on the page in init to help fool caching. drupal_add_js(drupal_get_path('module', 'views_slideshow') . '/js/views_slideshow.js'); $vs_path = drupal_get_path('module', 'views_slideshow'); drupal_add_css($vs_path . '/views_slideshow.css'); } /** * Implementation of hook_views_slideshow_skin_info(). */ function views_slideshow_views_slideshow_skin_info() { return array( 'default' => array( 'name' => t('Default'), ), ); } /** * Implements hook_views_slideshow_widget_info(). */ function views_slideshow_views_slideshow_widget_info() { return array( 'views_slideshow_pager' => array( 'name' => t('Pager'), 'accepts' => array( 'transitionBegin' => array('required' => TRUE), 'goToSlide', 'previousSlide', 'nextSlide', ), 'calls' => array( 'goToSlide', 'pause', 'play', ), ), 'views_slideshow_controls' => array( 'name' => t('Controls'), 'accepts' => array( 'pause' => array('required' => TRUE), 'play' => array('required' => TRUE), ), 'calls' => array( 'nextSlide', 'pause', 'play', 'previousSlide', ), ), 'views_slideshow_slide_counter' => array( 'name' => t('Slide Counter'), 'accepts' => array( 'transitionBegin' => array('required' => TRUE), 'goToSlide', 'previousSlide', 'nextSlide', ), 'calls' => array(), ), ); } /** * Implements [widget]_views_slideshow_widget_form_options(). */ function views_slideshow_pager_views_slideshow_widget_form_options(&$form, &$form_state, &$view, $defaults, $dependency) { // Get all the pager info from other modules. // hook_views_slideshow_pager_info($view, $option_values, $dependency_prefix) $pagers = module_invoke_all('views_slideshow_widget_pager_info', $view); if (!empty($pagers)) { $pager_options = array(); foreach($pagers as $pager_id => $pager_info) { $pager_options[$pager_id] = $pager_info['name']; } asort($pager_options); // Need to wrap this so it indents correctly. $form['views_slideshow_pager_wrapper'] = array( '#markup' => '
', ); // Add field to see if they would like to hide pager if there is only one // slide. $form['hide_on_single_slide'] = array( '#type' => 'checkbox', '#title' => t('Hide pager if there is only one slide'), '#default_value' => $defaults['hide_on_single_slide'], '#description' => t('Should the pager be hidden if there is only one slide.'), '#states' => array( 'visible' => array( ':input[name="' . $dependency . '[enable]"]' => array('checked' => TRUE), ), ), ); // Create the widget type field. $form['type'] = array( '#type' => 'select', '#title' => t('Pager Type'), '#description' => t('Style of the pager'), '#default_value' => $defaults['type'], '#options' => $pager_options, '#states' => array( 'visible' => array( ':input[name="' . $dependency . '[enable]"]' => array('checked' => TRUE), ), ), ); // Add any additional form elements // Build our arguments to pass to // [pager-type]_views_slideshow_widget_pager_form_options $arguments = array( &$form, &$form_state, &$view, $defaults, $dependency, ); foreach ($pagers as $pager_key => $pager_info) { $function = $pager_key . '_views_slideshow_widget_pager_form_options'; if (function_exists($function)) { call_user_func_array($function, $arguments); } } $form['views_slideshow_pager_wrapper_close'] = array( '#markup' => '
', ); } else { $form['enable_pager'] = array( '#markup' => 'There are no pagers available.', ); } } /** * Implementation of hook_views_slideshow_widget_pager_info */ function views_slideshow_views_slideshow_widget_pager_info($view) { $settings = array(); // Settings for fields pager. // First verfiy that the view is using fields. if ($view->row_plugin->uses_fields()) { $settings = array( 'views_slideshow_pager_fields' => array( 'name' => t('Fields'), ), ); } return $settings; } /** * Implementation [widget-type]_views_slideshow_pager_form_options */ function views_slideshow_pager_fields_views_slideshow_widget_pager_form_options(&$form, &$form_state, &$view, $defaults, $dependency) { // Settings for fields pager. $options = array(); // Get each field and it's name. foreach ($view->display->handler->get_handlers('field') as $field => $handler) { $options[$field] = $handler->ui_name(); } // Need to wrap this so it indents correctly. $form['views_slideshow_pager_fields_wrapper'] = array( '#markup' => '
', ); // Add ability to choose which fields to show in the pager. $form['views_slideshow_pager_fields_fields'] = array( '#type' => 'checkboxes', '#title' => t('Pager fields'), '#options' => $options, '#default_value' => $defaults['views_slideshow_pager_fields_fields'], '#description' => t("Choose the fields that will appear in the pager."), '#process' => array( 'form_process_checkboxes', ), '#states' => array( 'visible' => array( ':input[name="' . $dependency . '[enable]"]' => array('checked' => TRUE), ':input[name="' . $dependency . '[type]"]' => array('value' => 'views_slideshow_pager_fields'), ), ), ); // Add field to see if they would like to activate slide and pause on pager // hover $form['views_slideshow_pager_fields_hover'] = array( '#type' => 'checkbox', '#title' => t('Activate Slide and Pause on Pager Hover'), '#default_value' => $defaults['views_slideshow_pager_fields_hover'], '#description' => t('Should the slide be activated and paused when hovering over a pager item.'), '#states' => array( 'visible' => array( ':input[name="' . $dependency . '[enable]"]' => array('checked' => TRUE), ':input[name="' . $dependency . '[type]"]' => array('value' => 'views_slideshow_pager_fields'), ), ), ); $form['views_slideshow_pager_fields_wrapper_close'] = array( '#markup' => '
', ); } /** * Implements [widget]_views_slideshow_widget_form_options(). */ function views_slideshow_controls_views_slideshow_widget_form_options(&$form, &$form_state, &$view, $defaults, $dependency) { // Get all the control info from other modules. // hook_views_slideshow_controls_settings($view, $option_values, $dependency_prefix) $controls = module_invoke_all('views_slideshow_widget_controls_info', $view); if (!empty($controls)) { $control_type_options = array(); foreach($controls as $control_id => $control_info) { $control_type_options[$control_id] = $control_info['name']; } asort($control_type_options); // Need to wrap this so it indents correctly. $form['views_slideshow_controls_wrapper'] = array( '#markup' => '
', ); // Add field to see if they would like to hide controls if there is only one // slide $form['hide_on_single_slide'] = array( '#type' => 'checkbox', '#title' => t('Hide controls if there is only one slide'), '#default_value' => $defaults['hide_on_single_slide'], '#description' => t('Should the controls be hidden if there is only one slide.'), '#states' => array( 'visible' => array( ':input[name="' . $dependency . '[enable]"]' => array('checked' => TRUE), ), ), ); // Create the widget type field. $form['type'] = array( '#type' => 'select', '#title' => t('Controls Type'), '#description' => t('Style of the controls'), '#default_value' => $defaults['type'], '#options' => $control_type_options, '#states' => array( 'visible' => array( ':input[name="' . $dependency . '[enable]"]' => array('checked' => TRUE), ), ), ); // Add any additional form elements // Build our arguments to pass to // [pager-type]_views_slideshow_widget_pager_form_options $arguments = array( &$form, &$form_state, &$view, $defaults, $dependency, ); foreach ($controls as $control_key => $control_info) { $function = $control_key . '_views_slideshow_widget_controls_form_options'; if (function_exists($function)) { call_user_func_array($function, $arguments); } } $form['controls_wrapper_close'] = array( '#markup' => '
', ); } else { $form['enable_controls'] = array( '#markup' => 'There are no controls available.', ); } } /** * Implementation of hook_views_slideshow_controls_info */ function views_slideshow_views_slideshow_widget_controls_info($view) { return array( 'views_slideshow_controls_text' => array( 'name' => t('Text'), ) ); } /** * Implements hook_views_slideshow_option_definition. */ function views_slideshow_views_slideshow_option_definition() { // Default slideshow type and skins $options['slideshow_type'] = array('default' => ''); $options['slideshow_skin'] = array('default' => ''); $options['skin_info'] = array( 'default' => array( 'class' => 'default', 'name' => t('Untitled skin'), 'module' => 'views_slideshow', 'path' => '', 'stylesheets' => array(), ), ); // Set default widgets and weight values. $widgets = module_invoke_all('views_slideshow_widget_info'); if ($widgets) { $locations = array('top', 'bottom'); foreach ($locations as $location) { foreach ($widgets as $widget_id => $widget_name) { $options['widgets']['contains'][$location]['contains'][$widget_id]['contains']['enable'] = array('default' => 0); $options['widgets']['contains'][$location]['contains'][$widget_id]['contains']['weight'] = array('default' => 1); } } } // Defaults for the pager widget. foreach ($locations as $location) { $options['widgets']['contains'][$location]['contains']['views_slideshow_pager']['contains']['hide_on_single_slide'] = array('default' => 0); $options['widgets']['contains'][$location]['contains']['views_slideshow_pager']['contains']['type'] = array('default' => 0); $options['widgets']['contains'][$location]['contains']['views_slideshow_pager']['contains']['views_slideshow_pager_numbered_hover'] = array('default' => 0); $options['widgets']['contains'][$location]['contains']['views_slideshow_pager']['contains']['views_slideshow_pager_numbered_click_to_page'] = array('default' => 0); $options['widgets']['contains'][$location]['contains']['views_slideshow_pager']['contains']['views_slideshow_pager_thumbnails_hover'] = array('default' => 0); $options['widgets']['contains'][$location]['contains']['views_slideshow_pager']['contains']['views_slideshow_pager_thumbnails_click_to_page'] = array('default' => 0); $options['widgets']['contains'][$location]['contains']['views_slideshow_pager']['contains']['views_slideshow_pager_fields_fields'] = array('default' => array()); $options['widgets']['contains'][$location]['contains']['views_slideshow_pager']['contains']['views_slideshow_pager_fields_hover'] = array('default' => 0); $options['widgets']['contains'][$location]['contains']['views_slideshow_controls']['contains']['hide_on_single_slide'] = array('default' => 0); $options['widgets']['contains'][$location]['contains']['views_slideshow_controls']['contains']['type'] = array('default' => 0); } return $options; } /** * Need to have preprocess functions here because drupal doesn't cache them * correctly in the theme.inc file. * * If you would like to override the preprocess functions make sure to look at * the associated function in theme.inc. */ // Trying to make sure the theme.inc get's loaded. include_once('theme/views_slideshow.theme.inc'); function template_preprocess_views_slideshow(&$vars) { _views_slideshow_preprocess_views_slideshow($vars); } function template_preprocess_views_slideshow_pager_fields(&$vars) { _views_slideshow_preprocess_views_slideshow_pager_fields($vars); } function template_preprocess_views_slideshow_pager_field_item(&$vars) { _views_slideshow_preprocess_views_slideshow_pager_field_item($vars); } function template_preprocess_views_slideshow_controls_text(&$vars) { _views_slideshow_preprocess_views_slideshow_controls_text($vars); } function template_preprocess_views_slideshow_controls_text_previous(&$vars) { _views_slideshow_preprocess_views_slideshow_controls_text_previous($vars); } function template_preprocess_views_slideshow_controls_text_pause(&$vars) { _views_slideshow_preprocess_views_slideshow_controls_text_pause($vars); } function template_preprocess_views_slideshow_controls_text_next(&$vars) { _views_slideshow_preprocess_views_slideshow_controls_text_next($vars); } function template_preprocess_views_slideshow_slide_counter(&$vars) { _views_slideshow_preprocess_views_slideshow_slide_counter($vars); }