You are here

function views_slideshow_ddblock_views_slideshow_options_form in Views Slideshow: Dynamic Display Block 6.2

Same name and namespace in other branches
  1. 6 views_slideshow_ddblock.views_slideshow.inc \views_slideshow_ddblock_views_slideshow_options_form()

Implements hook_views_slideshow_options_form().

File

./views_slideshow_ddblock.views_slideshow.inc, line 140
The default options available with Views Slideshow: ddblock.

Code

function views_slideshow_ddblock_views_slideshow_options_form(&$form, &$form_state, &$view, $form_state_values = array()) {

  // add views_slideshow_ddblock.admin. js file
  drupal_add_js(drupal_get_path('module', 'views_slideshow_ddblock') . '/js/views_slideshow_ddblock.admin.js');

  // hide the unordered list/ordered list type
  $form['type'] = NULL;

  // widget setting: Enable the dynamic display block setting for this block.
  $options = array(
    'default' => t('Default'),
    'cycle' => t('Cycleblock'),
  );

  // select widget
  $form['views_slideshow_ddblock']['widget'] = array(
    '#type' => 'radios',
    '#title' => t('Display Method'),
    '#default_value' => $view->options['views_slideshow_ddblock']['widget'],
    '#options' => $options,
    '#required' => TRUE,
    '#description' => t("Choose a way to display content."),
    '#weight' => -15,
  );

  // debug settings: Show debug info.
  $options = array(
    'none' => t('None'),
    'drupal' => t('Using drupal_set_message'),
  );
  if (module_exists('devel')) {
    $options['devel'] = t('Using devel module');
  }

  // Select how to show debug info
  $form['views_slideshow_ddblock']['debug_info'] = array(
    '#type' => 'select',
    '#title' => t('Show debug info'),
    '#default_value' => $view->options['views_slideshow_ddblock']['debug_info'],
    '#options' => $options,
    '#required' => FALSE,
    '#description' => t("Show debug info to determine view name/display id, fieldnames, settings, number of items"),
    '#weight' => -14,
  );

  // select themes from [Theme_name]/custom/modules/views_slideshow_ddblock
  $path_to_themes = _views_slideshow_ddblock_get_theme_path() . '/custom/modules/views_slideshow_ddblock';
  $dirs = _dir_scan_directory($path_to_themes, 'vsd');
  $options = array();
  $options['default'] = 'Default';
  if (!empty($dirs)) {
    asort($dirs);
    foreach ($dirs as $dir) {
      $options[$dir] = $dir;
    }
  }
  $options['custom'] = 'Custom';

  // Set the cache to true to create a $form_state cache on submit
  $form['#cache'] = TRUE;

  // Template.
  $form['views_slideshow_ddblock']['template'] = array(
    '#type' => 'select',
    '#title' => t('Template'),
    '#default_value' => $view->options['views_slideshow_ddblock']['template'],
    '#options' => $options,
    '#multiple' => FALSE,
    '#required' => FALSE,
    '#description' => t("Template for themable output. Template name will become:<br />views-slideshow-ddblock-cycle-block-content-[TEMPLATENAME].tpl.php"),
    '#weight' => -13,
    '#ahah' => array(
      'path' => 'views_slideshow_ddblock/js',
      // a path defined in hook_menu
      'wrapper' => 'select-template-size-wrapper',
      // the HTML that wraps the element that needs to be changed
      'method' => 'replace',
      // what needs to be done: replacing the element with something else
      'event' => 'change',
      'effect' => 'none',
    ),
  );

  // Custom template.
  $form['views_slideshow_ddblock']['custom_template'] = array(
    '#type' => 'textfield',
    '#title' => t('Custom template'),
    '#default_value' => $view->options['views_slideshow_ddblock']['custom_template'],
    '#required' => FALSE,
    '#prefix' => '<div id="ddblock-custom-template-settings-wrapper">',
    '#suffix' => '</div>',
    '#description' => t("Custom template for themable output. Template name will become: <br />views-slideshow-ddblock-cycle-block-content-[TEMPLATENAME].tpl.php"),
    '#weight' => -12,
  );
  if (isset($form_state['form_state_values'])) {
    $form_state_values = $form_state['form_state_values'] + (array) $form_state_values;
  }
  $template = isset($form_state_values['style_options']['views_slideshow_ddblock']['template']) ? $form_state_values['style_options']['views_slideshow_ddblock']['template'] : $view->options['views_slideshow_ddblock']['template'];
  $template_sizes = _views_slideshow_ddblock_get_template_size($template);

  // Since a #select element can't have it's own #submit handler, we have to create an extra
  // submit button to which we attach the correct callback function that's going to be called on a change
  // We'll hide this with '#access' => FALSE.
  $form['views_slideshow_ddblock']['template_submit'] = array(
    '#type' => 'submit',
    '#value' => t('get template sizes'),
    '#submit' => array(
      'views_slideshow_ddblock_views_slideshow_options_form_submit',
    ),
    '#weight' => -11,
    //  '#access'=> FALSE, // hide the button
    '#description' => t('Get the possible themesizes after selecting a theme'),
  );

  // We define a <div> wrapper that contains the select box that needs to be refilled with data
  $form['views_slideshow_ddblock']['template_size_wrapper'] = array(
    '#tree' => TRUE,
    '#prefix' => '<div id="select-template-size-wrapper">',
    '#suffix' => '</div>',
    '#weight' => -11,
  );

  // This is the actual select that needs to be refreshed depending on what happens in the 'template' select
  $form['views_slideshow_ddblock']['template_size_wrapper']['template_size'] = array(
    '#type' => 'select',
    '#title' => t('Template size'),
    '#options' => $template_sizes,
    '#default_value' => $view->options['views_slideshow_ddblock']['template_size_wrapper']['template_size'],
    '#description' => t('The slideshow template_size css file to use'),
    '#attributes' => array(
      'class' => 'template-size-select',
    ),
    '#prefix' => '<div id="select-template-size">',
    '#suffix' => '</div>',
  );

  // Custom template size.
  $form['views_slideshow_ddblock']['custom_template_size'] = array(
    '#type' => 'textfield',
    '#title' => t('Custom template size'),
    '#default_value' => $view->options['views_slideshow_ddblock']['custom_template_size'],
    '#required' => FALSE,
    '#prefix' => '<div id="ddblock-custom-template-size-settings-wrapper">',
    '#suffix' => '</div>',
    '#description' => t("Custom size css file for the theme"),
    '#weight' => -10,
  );

  // get the possible source fields form the view
  $source_fields = array(
    '' => t('<None>'),
  );
  if ($view->row_plugin
    ->uses_fields()) {
    foreach ($view->display->handler
      ->get_handlers('field') as $field => $handler) {
      $format = isset($handler->options['format']) ? ' - ' . $handler->options['format'] : '';
      if ($label = $handler
        ->label()) {
        $source_fields[$field] = $label . $format;
      }
      else {
        $source_fields[$field] = $handler
          ->ui_name() . $format;
      }
    }
  }

  // Wrapper in which to place both the mapped fields and the 'add mapping' form.
  $form['views_slideshow_ddblock']['mapping_wrapper'] = array(
    '#tree' => TRUE,
    '#weight' => -5,
    '#prefix' => '<div class="clear-block" id="views-slideshow-ddblock-mapping-wrapper">',
    '#suffix' => '</div>',
  );

  // Wrapper in which to place both the mapped fields and the 'add mapping' form.
  $form['views_slideshow_ddblock']['mapping_wrapper']['helptext'] = array(
    '#type' => 'item',
    '#title' => t('Field mappings'),
    '#description' => t('In this part you map available fields to ddblock theme fields.<br />The ddblock theme fields are the target.<br />Source fields are fields available from your view.'),
  );

  // Wrapper to display existing mappingss.
  $form['views_slideshow_ddblock']['mapping_wrapper']['mappings'] = array(
    '#tree' => TRUE,
    '#prefix' => '<div id="views-slideshow-ddblock-mappings">',
    '#suffix' => '</div>',
    '#theme' => 'views_slideshow_ddblock_mappings_table',
  );
  $mappings = $view->options['views_slideshow_ddblock']['mapping_wrapper']['mappings'];

  // Get number of mappings.
  $mapping_count = empty($mappings) ? 0 : count($mappings);

  // Add the existing mappings to the form.
  for ($delta = 0; $delta < $mapping_count; $delta++) {
    $target = isset($mappings[$delta]['target']) ? $mappings[$delta]['target'] : '';
    $source = isset($mappings[$delta]['source']) ? $mappings[$delta]['source'] : '';

    // Display existing mappings using helper function views_slideshow_ddblock_mapping_display_form().
    $form['views_slideshow_ddblock']['mapping_wrapper']['mappings'][$delta] = views_slideshow_ddblock_mapping_display_form($delta, $target, $source, $source_fields);
  }
  if ($widget == 'default') {
    $collapsed = TRUE;
  }
  else {
    $collapsed = FALSE;
  }

  // content container settings.
  $form['views_slideshow_ddblock']['content_container'] = array(
    '#type' => 'fieldset',
    '#collapsible' => TRUE,
    '#collapsed' => FALSE,
    '#title' => t('Content container settings'),
    '#weight' => -2,
  );
  $form['views_slideshow_ddblock']['content_container']['container'] = array(
    '#type' => 'textfield',
    '#title' => t('Content container'),
    '#default_value' => $view->options['views_slideshow_ddblock']['content_container']['container'],
    '#required' => FALSE,
    '#description' => t("Container of the content to slide, eg. CSS selector img, to show images.<br />This can be any CSS selector containing a slide. e.g div.slide"),
  );
  $form['views_slideshow_ddblock']['content_container']['overflow'] = array(
    '#type' => 'checkbox',
    '#title' => t('Overflow hidden'),
    '#default_value' => $view->options['views_slideshow_ddblock']['content_container']['overflow'],
    '#prefix' => '<div id="ddblock-advanced-content-container-overflow-wrapper"' . $extra . '>',
    '#suffix' => '</div>',
    '#required' => FALSE,
    '#description' => t("Hide the overflow of the container"),
  );

  // content settings: what to use as content for the dynamic display block.
  $form['views_slideshow_ddblock']['settings'] = array(
    '#type' => 'fieldset',
    '#collapsible' => TRUE,
    '#collapsed' => $collapsed,
    '#title' => t('Dynamic display block settings'),
    '#weight' => 1,
  );
  $options = _views_slideshow_ddblock_get_effects();
  $form['views_slideshow_ddblock']['settings']['fx'] = array(
    '#type' => 'select',
    '#title' => t('Transition Effect'),
    '#default_value' => $view->options['views_slideshow_ddblock']['settings']['fx'],
    '#options' => $options,
    '#multiple' => FALSE,
    '#required' => TRUE,
    '#description' => t("The transition effect between content. Multiple effects can be set in the Custom jQuery Cycle Plugin Settings."),
  );
  $options = drupal_map_assoc(array(
    0,
    125,
    250,
    500,
    750,
    1000,
    1250,
    1500,
    1750,
    2000,
    2250,
    2500,
    2750,
    3000,
    4000,
  ));
  $form['views_slideshow_ddblock']['settings']['speed'] = array(
    '#type' => 'select',
    '#title' => t('Speed'),
    '#default_value' => $view->options['views_slideshow_ddblock']['settings']['speed'],
    '#options' => $options,
    '#required' => TRUE,
    '#description' => t("Speed of the transitions (1000 = 1 second, 0 = direct)."),
  );
  $options = drupal_map_assoc(array(
    0,
    250,
    500,
    1000,
    2000,
    3000,
    4000,
    5000,
    6000,
    7000,
    8000,
    9000,
    10000,
    15000,
    20000,
    30000,
  ));
  $form['views_slideshow_ddblock']['settings']['timeout'] = array(
    '#type' => 'select',
    '#title' => t('Timeout'),
    '#default_value' => $view->options['views_slideshow_ddblock']['settings']['timeout'],
    '#options' => $options,
    '#required' => TRUE,
    '#description' => t("The time (in milliseconds) between transitions (1000 = 1 second, 0 to disable auto advance)."),
  );
  $form['views_slideshow_ddblock']['settings']['order'] = array(
    '#type' => 'select',
    '#title' => t('Sort Order'),
    '#default_value' => $view->options['views_slideshow_ddblock']['settings']['order'],
    '#options' => array(
      'none' => t('None'),
      'asc' => t('Ascending'),
      'desc' => t('Descending'),
      'random' => t('Random'),
    ),
    '#multiple' => FALSE,
    '#required' => TRUE,
    '#description' => t("The display order of the content. None for using the original content order."),
  );
  $form['views_slideshow_ddblock']['settings']['pause'] = array(
    '#type' => 'checkbox',
    '#title' => t('Pause'),
    '#default_value' => $view->options['views_slideshow_ddblock']['settings']['pause'],
    '#description' => t("Enable users to pause the cycle by hovering on the content."),
  );
  $form['views_slideshow_ddblock']['settings']['next'] = array(
    '#type' => 'checkbox',
    '#title' => t('Next'),
    '#default_value' => $view->options['views_slideshow_ddblock']['settings']['next'],
    '#description' => t("Enable users to advanced to the next content by clicking on the content."),
  );

  // pager settings togg;e
  $form['views_slideshow_ddblock']['settings']['pager_toggle'] = array(
    '#type' => 'checkbox',
    '#title' => t('Use Pager'),
    '#id' => 'pager-toggle-checkbox',
    '#default_value' => $view->options['views_slideshow_ddblock']['settings']['pager_toggle'],
    '#required' => FALSE,
    '#description' => t("Use a pager to select slides"),
  );

  // pager settings.

  //show fields when using pager

  //$extra = (empty($view->options['views_slideshow_ddblock']['pager_toggle'])) ? ' style="display:none"' : '';
  $form['views_slideshow_ddblock']['settings']['pager_settings'] = array(
    '#type' => 'fieldset',
    '#collapsible' => TRUE,
    '#collapsed' => FALSE,
    '#prefix' => '<div id="ddblock-pager-settings-wrapper">',
    //. $extra .'>',
    '#suffix' => '</div>',
    '#title' => t('Pager settings'),
  );
  $options = array(
    'none' => t('None'),
    'number-pager' => t('Number pager'),
    'prev-next-pager' => t('Prev next pager'),
    'custom-pager' => t('Custom pager'),
    'scrollable-pager' => t('Scrollable pager'),
  );
  $form['views_slideshow_ddblock']['settings']['pager_settings']['pager'] = array(
    '#type' => 'select',
    '#title' => t('Pager'),
    '#default_value' => $view->options['views_slideshow_ddblock']['settings']['pager_settings']['pager'],
    '#options' => $options,
    '#required' => TRUE,
    '#description' => t("Type of pager to add."),
  );
  $form['views_slideshow_ddblock']['settings']['pager_settings']['pager_container'] = array(
    '#type' => 'textfield',
    '#title' => t('Pager container'),
    '#default_value' => $view->options['views_slideshow_ddblock']['settings']['pager_settings']['pager_container'],
    '#required' => FALSE,
    '#description' => t("Container of a pager-item, eg. CSS selector li.<br />This can be any CSS selector containing a pager-item.<br /> For a custom pager this needs to be .custom-pager-item<br />For a scrollable pager this needs to be .scrollable-pager-item"),
  );
  $form['views_slideshow_ddblock']['settings']['pager_settings']['nr_of_pager_items'] = array(
    '#type' => 'textfield',
    '#title' => t('Nr of pager items'),
    '#default_value' => $view->options['views_slideshow_ddblock']['settings']['pager_settings']['nr_of_pager_items'],
    '#required' => FALSE,
    '#prefix' => '<div id="ddblock-nr-of-pager-items-wrapper">',
    '#suffix' => '</div>',
    '#description' => t("Number of pager items used in a scrollable pager."),
  );
  $options = drupal_map_assoc(array(
    1,
    100,
    200,
    300,
    400,
    500,
    600,
    700,
    800,
    900,
    1000,
    1250,
    1500,
    1750,
    2000,
  ));
  $form['views_slideshow_ddblock']['settings']['pager_settings']['pager_speed'] = array(
    '#type' => 'select',
    '#title' => t('Pager speed'),
    '#default_value' => $view->options['views_slideshow_ddblock']['settings']['pager_settings']['pager_speed'],
    '#options' => $options,
    '#required' => TRUE,
    '#prefix' => '<div id="ddblock-pager-speed-wrapper">',
    '#suffix' => '</div>',
    '#description' => t("Speed of the pager. Used in a scrollable pager. (1000 = 1 second, 1 = direct)."),
  );
  $options = array(
    'top' => t('Top'),
    'right' => t('Right'),
    'bottom' => t('Bottom'),
    'left' => t('Left'),
  );
  $form['views_slideshow_ddblock']['settings']['pager_settings']['pager_position'] = array(
    '#type' => 'select',
    '#title' => t('Pager position'),
    '#default_value' => $view->options['views_slideshow_ddblock']['settings']['pager_settings']['pager_position'],
    '#prefix' => '<div id="ddblock-pager-position-wrapper">',
    '#suffix' => '</div>',
    '#options' => $options,
    '#required' => FALSE,
    '#description' => t("Possible position for the pager.<br />The position must be supported by the template used to be effective."),
  );
  $options = array(
    'click' => t('Click'),
    'mouseover' => t('Mouseover'),
  );
  $form['views_slideshow_ddblock']['settings']['pager_settings']['pager_event'] = array(
    '#type' => 'select',
    '#title' => t('Pager event'),
    '#default_value' => $view->options['views_slideshow_ddblock']['settings']['pager_settings']['pager_event'],
    '#prefix' => '<div id="ddblock-pager-event-wrapper">',
    '#suffix' => '</div>',
    '#options' => $options,
    '#required' => FALSE,
    '#description' => t("The event on which the pager reacts."),
  );
  $form['views_slideshow_ddblock']['settings']['pager_settings']['pager_disable_click'] = array(
    '#type' => 'checkbox',
    '#title' => t('Pager disable click'),
    '#default_value' => $view->options['views_slideshow_ddblock']['settings']['pager_settings']['pager_disable_click'],
    '#prefix' => '<div id="ddblock-pager-pause-wrapper"' . $extra . '>',
    '#suffix' => '</div>',
    '#required' => FALSE,
    '#description' => t("Disable the click event when the hover event is used."),
  );
  $form['views_slideshow_ddblock']['settings']['pager_settings']['pager_fast'] = array(
    '#type' => 'checkbox',
    '#title' => t('Fast Pager'),
    '#default_value' => $view->options['views_slideshow_ddblock']['settings']['pager_settings']['pager_fast'],
    '#prefix' => '<div id="ddblock-pager-fast-wrapper">',
    '#suffix' => '</div>',
    '#required' => FALSE,
    '#description' => t("Use fast pager event when clicked or hovered."),
  );
  $form['views_slideshow_ddblock']['settings']['pager_settings']['pager_pause'] = array(
    '#type' => 'checkbox',
    '#title' => t('Pager pause'),
    '#default_value' => $view->options['views_slideshow_ddblock']['settings']['pager_settings']['pager_pause'],
    '#prefix' => '<div id="ddblock-pager-pause-wrapper"' . $extra . '>',
    '#suffix' => '</div>',
    '#required' => FALSE,
    '#description' => t("Pause the slideshow when pager hovered."),
  );

  // pager2 settings toggle
  $form['views_slideshow_ddblock']['settings']['pager2'] = array(
    '#type' => 'checkbox',
    '#title' => t('Use Prev/Next Pager'),
    '#default_value' => $view->options['views_slideshow_ddblock']['settings']['pager2'],
    '#required' => FALSE,
    '#description' => t("Use a Prev/Next Pager to select slides"),
  );

  // pager2 settings.

  //show fields when using pager
  $extra = empty($view->options['views_slideshow_ddblock']['settings']['pager2']) ? ' style="display:none"' : '';
  $form['views_slideshow_ddblock']['settings']['pager2_settings'] = array(
    '#type' => 'fieldset',
    '#collapsible' => TRUE,
    '#collapsed' => FALSE,
    '#prefix' => '<div id="ddblock-pager2-settings-wrapper"' . $extra . '>',
    '#suffix' => '</div>',
    '#title' => t('Prev/next pager settings'),
  );
  $form['views_slideshow_ddblock']['settings']['pager2_settings']['pager2_event'] = array(
    '#type' => 'select',
    '#title' => t('Pager event'),
    '#default_value' => $view->options['views_slideshow_ddblock']['settings']['pager2_settings']['pager2_event'],
    '#prefix' => '<div id="ddblock-pager2-slide-event-wrapper">',
    '#suffix' => '</div>',
    '#options' => $options,
    '#required' => FALSE,
    '#description' => t("The event on which the prev/next pager reacts."),
  );
  $options = array(
    'pager' => t('Pager'),
    'slide' => t('Slide'),
  );
  $form['views_slideshow_ddblock']['settings']['pager2_settings']['pager2_position'] = array(
    '#type' => 'checkboxes',
    '#title' => t('Pager position'),
    '#default_value' => $view->options['views_slideshow_ddblock']['settings']['pager2_settings']['pager2_position'] ? $view->options['views_slideshow_ddblock']['settings']['pager2_settings']['pager2_position'] : array(),
    '#prefix' => '<div id="ddblock-pager2-position-wrapper">',
    '#suffix' => '</div>',
    '#options' => $options,
    '#multiple' => TRUE,
    '#required' => FALSE,
    '#description' => t("Possible position for the prev/next pager.<br />The position must be supported by the template used to be effective."),
  );

  // pager2 settings pager.

  //show fields when using pager pager
  $extra = empty($view->options['views_slideshow_ddblock']['settings']['pager2']) ? ' style="display:none"' : '';
  $form['views_slideshow_ddblock']['settings']['pager2_settings']['pager2_pager'] = array(
    '#type' => 'fieldset',
    '#collapsible' => TRUE,
    '#collapsed' => FALSE,
    '#prefix' => '<div id="ddblock-pager2-pager-settings-wrapper"' . $extra . '>',
    '#suffix' => '</div>',
    '#title' => t('Pager Pager'),
  );
  $form['views_slideshow_ddblock']['settings']['pager2_settings']['pager2_pager']['pager2_pager_prev'] = array(
    '#type' => 'textfield',
    '#title' => t('Prev text in pager'),
    '#default_value' => $view->options['views_slideshow_ddblock']['settings']['pager2_settings']['pager2_pager']['pager2_pager_prev'],
    '#prefix' => '<div id="ddblock-pager2-pager-prev-text-wrapper">',
    '#size' => 30,
    '#suffix' => '</div>',
    '#required' => FALSE,
    '#description' => t("Caption for the prev pager in the pager.<br />Can also be empty if you use an image to go to the previous slide."),
  );
  $form['views_slideshow_ddblock']['settings']['pager2_settings']['pager2_pager']['pager2_pager_next'] = array(
    '#type' => 'textfield',
    '#title' => t('Next text in pager'),
    '#default_value' => $view->options['views_slideshow_ddblock']['settings']['pager2_settings']['pager2_pager']['pager2_pager_next'],
    '#prefix' => '<div id="ddblock-pager2-pager-next-text-wrapper">',
    '#size' => 30,
    '#suffix' => '</div>',
    '#required' => FALSE,
    '#description' => t("Caption for the next pager in the pager.<br />Can also be empty if you use an image to go to the next slide."),
  );

  // hide prev/next pager when no prev/next slide available
  $form['views_slideshow_ddblock']['settings']['pager2_settings']['pager2_pager']['pager2_pager_hide'] = array(
    '#type' => 'checkbox',
    '#title' => t('Prev/Next Hide'),
    '#default_value' => $view->options['views_slideshow_ddblock']['settings']['pager2_settings']['pager2_pager']['pager2_pager_hide'],
    '#required' => FALSE,
    '#description' => t("Hide Prev/Next Pager when no slide available."),
  );

  // pager2 settings slide.

  //show fields when using slide pager
  $extra = empty($view->options['views_slideshow_ddblock']['settings']['pager2']) ? ' style="display:none"' : '';
  $form['views_slideshow_ddblock']['settings']['pager2_settings']['pager2_slide'] = array(
    '#type' => 'fieldset',
    '#collapsible' => TRUE,
    '#collapsed' => FALSE,
    '#prefix' => '<div id="ddblock-pager2-slide-settings-wrapper"' . $extra . '>',
    '#suffix' => '</div>',
    '#title' => t('Slide Pager'),
  );
  $options = array(
    'click' => t('Click'),
    'mouseover' => t('Mouseover'),
  );
  $form['views_slideshow_ddblock']['settings']['pager2_settings']['pager2_slide']['pager2_slide_prev'] = array(
    '#type' => 'textfield',
    '#title' => t('Prev text on slide'),
    '#default_value' => $view->options['views_slideshow_ddblock']['settings']['pager2_settings']['pager2_slide']['pager2_slide_prev'],
    '#prefix' => '<div id="ddblock-pager2-slide-prev-text-wrapper">',
    '#size' => 30,
    '#suffix' => '</div>',
    '#required' => FALSE,
    '#description' => t("Caption for the prev pager on the slide.<br />Can also be empty if you use an image to go to the previous slide."),
  );
  $form['views_slideshow_ddblock']['settings']['pager2_settings']['pager2_slide']['pager2_slide_next'] = array(
    '#type' => 'textfield',
    '#title' => t('Next text on slide'),
    '#default_value' => $view->options['views_slideshow_ddblock']['settings']['pager2_settings']['pager2_slide']['pager2_slide_next'],
    '#prefix' => '<div id="ddblock-pager2-slide-next-text-wrapper">',
    '#size' => 30,
    '#suffix' => '</div>',
    '#required' => FALSE,
    '#description' => t("Caption for the next pager on the slide.<br />Can also be empty if you use an image to go to the next slide."),
  );

  // hide prev/next pager when no prev/next slide available
  $form['views_slideshow_ddblock']['settings']['pager2_settings']['pager2_slide']['pager2_slide_hide'] = array(
    '#type' => 'checkbox',
    '#title' => t('Prev/Next Hide'),
    '#default_value' => $view->options['views_slideshow_ddblock']['settings']['pager2_settings']['pager2_slide']['pager2_slide_hide'],
    '#required' => FALSE,
    '#description' => t("Hide Prev/Next Pager when no slide available."),
  );
  $form['views_slideshow_ddblock']['settings']['slide_text'] = array(
    '#type' => 'checkbox',
    '#title' => t('Use slide text'),
    '#default_value' => $view->options['views_slideshow_ddblock']['settings']['slide_text'],
    '#required' => FALSE,
    '#description' => t("Show slide text when available in content."),
  );
  $form['views_slideshow_ddblock']['settings']['slide_text_settings'] = array(
    '#type' => 'fieldset',
    '#collapsible' => TRUE,
    '#title' => t('Slide text settings'),
    '#prefix' => '<div id="ddblock-slide-text-settings-wrapper">',
    '#suffix' => '</div>',
  );

  // slide text container field.
  $form['views_slideshow_ddblock']['settings']['slide_text_settings']['slide_text_container'] = array(
    '#type' => 'textfield',
    '#title' => t('Slide text container'),
    '#default_value' => $view->options['views_slideshow_ddblock']['settings']['slide_text_settings']['slide_text_container'],
    '#required' => FALSE,
    '#description' => t("Container of the slide text."),
  );
  $options = array(
    'top' => t('Top'),
    'right' => t('Right'),
    'bottom' => t('Bottom'),
    'left' => t('Left'),
  );
  $form['views_slideshow_ddblock']['settings']['slide_text_settings']['slide_text_position'] = array(
    '#type' => 'select',
    '#title' => t('Slide text position'),
    '#default_value' => $view->options['views_slideshow_ddblock']['settings']['slide_text_settings']['slide_text_position'],
    '#options' => $options,
    '#multiple' => FALSE,
    '#required' => FALSE,
    '#description' => t("Position of the slide text."),
  );
  $form['views_slideshow_ddblock']['settings']['slide_text_settings']['slide_text_jquery'] = array(
    '#type' => 'checkbox',
    '#title' => t('Use jQuery effects for text of a slide'),
    '#default_value' => $view->options['views_slideshow_ddblock']['settings']['slide_text_settings']['slide_text_jquery'],
    '#required' => FALSE,
    '#description' => t("The jQuery effects will be added to the text in the Slide text container"),
    '#weight' => 6,
  );

  //show fields when using jQuery effects for text of a slide
  $extra = empty($view->options['views_slideshow_ddblock']['settings']['slide_text_settings']['slide_text_jquery']) ? ' style="display:none"' : '';

  // if the checkbox: jQuery effects for text of a slide is not checked, hide the advanced settings
  $form['views_slideshow_ddblock']['settings']['slide_text_settings']['slide_jquery'] = array(
    '#type' => 'fieldset',
    '#collapsible' => TRUE,
    '#collapsed' => FALSE,
    '#prefix' => '<div id="ddblock-slide-jquery-settings-wrapper"' . $extra . '>',
    '#suffix' => '</div>',
    '#title' => t('Slide text jquery settings'),
    '#weight' => 7,
  );
  $before_effect_options = array(
    'hide' => t('Basics - Hide'),
    'fadeOut' => t('Fading - Fade Out'),
    'slideUp' => t('Sliding - Slide Up'),
  );
  $form['views_slideshow_ddblock']['settings']['slide_text_settings']['slide_jquery']['slide_text_before_effect'] = array(
    '#type' => 'select',
    '#title' => t('Before effect'),
    '#default_value' => $view->options['views_slideshow_ddblock']['settings']['slide_text_settings']['slide_jquery']['slide_text_before_effect'],
    '#options' => $before_effect_options,
    '#multiple' => FALSE,
    '#required' => FALSE,
    '#description' => t("The before event is before a slide is shown, here the slidetext of the\nprevious slide will be hidden."),
  );
  $speed_options = drupal_map_assoc(array(
    0,
    250,
    500,
    1000,
    2000,
    3000,
    4000,
    5000,
  ));
  $form['views_slideshow_ddblock']['settings']['slide_text_settings']['slide_jquery']['slide_text_before_speed'] = array(
    '#type' => 'select',
    '#title' => t('Speed before effect'),
    '#default_value' => $view->options['views_slideshow_ddblock']['settings']['slide_text_settings']['slide_jquery']['slide_text_before_speed'],
    '#options' => $speed_options,
    '#required' => FALSE,
    '#description' => t("Speed of the before effect (1000 = 1 second, 0 = direct)."),
  );
  $after_effect_options = array(
    'show' => t('Basics - Show'),
    'fadeIn' => t('Fading - Fade In'),
    'slideDown' => t('Sliding - Slide Down'),
  );
  $form['views_slideshow_ddblock']['settings']['slide_text_settings']['slide_jquery']['slide_text_after_effect'] = array(
    '#type' => 'select',
    '#title' => t('After effect'),
    '#default_value' => $view->options['views_slideshow_ddblock']['settings']['slide_text_settings']['slide_jquery']['slide_text_after_effect'],
    '#options' => $after_effect_options,
    '#multiple' => FALSE,
    '#required' => FALSE,
    '#description' => t("The after event is after a slide is shown, here the slidetext of the\ncurrent slide will be shown.\n"),
  );
  $form['views_slideshow_ddblock']['settings']['slide_text_settings']['slide_jquery']['slide_text_after_speed'] = array(
    '#type' => 'select',
    '#title' => t('Speed after effect'),
    '#default_value' => $view->options['views_slideshow_ddblock']['settings']['slide_text_settings']['slide_jquery']['slide_text_after_speed'],
    '#options' => $speed_options,
    '#required' => FALSE,
    '#description' => t("Speed of the before effect (1000 = 1 second, 0 = direct)."),
  );
  $form['views_slideshow_ddblock']['settings']['custom'] = array(
    '#type' => 'fieldset',
    '#collapsible' => TRUE,
    '#collapsed' => $collapsed,
    '#title' => t('Custom jQuery Cycle Plugin Settings'),
    '#description' => t('If you use custom jQuery options, they will override your other settings.'),
  );
  if ($view->options['views_slideshow_ddblock']['settings']['custom']['custom_jquery']) {
    $collapsed = FALSE;
  }
  else {
    $collapsed = TRUE;
  }
  $form['views_slideshow_ddblock']['settings']['custom']['custom_jquery'] = array(
    '#type' => 'textarea',
    '#title' => t('Custom Options'),
    '#default_value' => $view->options['views_slideshow_ddblock']['settings']['custom']['custom_jquery'],
    '#cols' => 60,
    '#rows' => 10,
    '#required' => FALSE,
    '#description' => t('Use valid JSON syntax, with double quotes for key/and string value pairs.<br />The total script needs to be enclosed in curly brackets.<br />No comma allowed after the last statement like in an array.<br />e.g.<br />{"fx":"fade",<br />"startingSlide":2,<br />"autostop":1}'),
  );
}