You are here

function ddblock_form_alter in Dynamic display block 6

Same name and namespace in other branches
  1. 7 ddblock.module \ddblock_form_alter()

Implementation of hook_form_alter().

Used to add dynamic display block configuration settings to dynamic display block instances.

File

./ddblock.module, line 757
Enables your site to display dynamic content in a block.

Code

function ddblock_form_alter(&$form, $form_state, $form_id) {
  $module = arg(4);
  $delta = arg(5);
  if (isset($delta) && $module == 'ddblock' && user_access('administer dynamic display blocks') && user_access('administer blocks') && $form_id == 'block_admin_configure') {

    // get original block_settings.
    $block = ddblock_get_blocks($delta);
    $module_original = $block->module;
    $delta_original = $block->delta_original;

    // check if module enabled in the dynamic display block settings.
    $block_enabled = FALSE;
    $blocks = ddblock_get_ddblock_enabled_module_blocks();
    foreach ($blocks as $block) {
      if ($block['module'] == $module_original && $block['delta'] == $delta_original) {
        $block_enabled = TRUE;
      }
    }
    if ($block_enabled) {

      // get module path to dynamic display block module
      $ddblock_path = drupal_get_path('module', 'ddblock');

      // add ddblock js file
      drupal_add_js($ddblock_path . '/js/ddblock.admin.js', 'module');
      drupal_add_js($ddblock_path . '/js/jquery.selectboxes.js', 'module');

      // get settings.
      $configuration_settings = ddblock_get_configuration_settings($module, $delta);
      $advanced = _ddblock_get_variable($configuration_settings, 'advanced', 1);
      $container = _ddblock_get_variable($configuration_settings, 'container', 'div.slide');
      $custom_jquery = _ddblock_get_variable($configuration_settings, 'custom_jquery', '');
      $fx = _ddblock_get_variable($configuration_settings, 'fx', "fade");
      $height = _ddblock_get_variable($configuration_settings, 'height', 195);
      $image_height = _ddblock_get_variable($configuration_settings, 'image_height', 195);
      $image_width = _ddblock_get_variable($configuration_settings, 'image_width', 195);
      $imgcache_toggle = _ddblock_get_variable($configuration_settings, 'imgcache_toggle', 0);
      $imgcache_slide = _ddblock_get_variable($configuration_settings, 'imgcache_slide', '<none>');
      $imgcache_pager_item = _ddblock_get_variable($configuration_settings, 'imgcache_pager_item', '<none>');
      $next = _ddblock_get_variable($configuration_settings, 'next', 0);
      $order = _ddblock_get_variable($configuration_settings, 'order', 'asc');
      $output = _ddblock_get_variable($configuration_settings, 'output', 'view_content');
      $overflow = _ddblock_get_variable($configuration_settings, 'overflow', 1);
      $pager_toggle = _ddblock_get_variable($configuration_settings, 'pager_toggle', 0);
      $pager = _ddblock_get_variable($configuration_settings, 'pager', 'none');
      $pager_prev_next_loop = _ddblock_get_variable($configuration_settings, 'pager_prev_next_loop', 1);
      $pager_scrollable_loop = _ddblock_get_variable($configuration_settings, 'pager_scrollable_loop', 1);
      $nr_of_pager_items = _ddblock_get_variable($configuration_settings, 'nr_of_pager_items', 4);
      $pager_event = _ddblock_get_variable($configuration_settings, 'pager_event', 'click');
      $pager_fast = _ddblock_get_variable($configuration_settings, 'pager_fast', 1);
      $pager_disable_click = _ddblock_get_variable($configuration_settings, 'pager_disable_click', 1);
      $pager_pause = _ddblock_get_variable($configuration_settings, 'pager_pause', 1);
      if ($pager == 'number-pager' || $pager == 'prev-next-pager') {
        $pager_height = _ddblock_get_variable($configuration_settings, 'pager_height', 25);
        $pager_width = _ddblock_get_variable($configuration_settings, 'pager_width', 195);
      }
      else {
        $pager_height = _ddblock_get_variable($configuration_settings, 'pager_height', 63);
        $pager_width = _ddblock_get_variable($configuration_settings, 'pager_width', 195);
      }
      $pager_container = _ddblock_get_variable($configuration_settings, 'pager_container', '.custom-pager-item');
      $pager_position = _ddblock_get_variable($configuration_settings, 'pager_position', 'top');
      $pause = _ddblock_get_variable($configuration_settings, 'pause', 1);
      $slide_text = _ddblock_get_variable($configuration_settings, 'slide_text', 1);
      $slide_text_jquery = _ddblock_get_variable($configuration_settings, 'slide_text_jquery', 0);
      $slide_text_after_effect = _ddblock_get_variable($configuration_settings, 'slide_text_after_effect', 'fadeIn');
      $slide_text_after_speed = _ddblock_get_variable($configuration_settings, 'slide_text_after_speed', 1000);
      $slide_text_before_effect = _ddblock_get_variable($configuration_settings, 'slide_text_before_effect', 'fadeOut');
      $slide_text_before_speed = _ddblock_get_variable($configuration_settings, 'slide_text_before_speed', 250);
      $slide_text_container = _ddblock_get_variable($configuration_settings, 'slide_text_container', 'div.slide-text');
      $slide_text_position = _ddblock_get_variable($configuration_settings, 'slide_text_position', 'bottom');
      $speed = _ddblock_get_variable($configuration_settings, 'speed', 500);
      $template = _ddblock_get_variable($configuration_settings, 'template', 'none');
      if ($template == 'custom') {
        $custom_template = _ddblock_get_variable($configuration_settings, 'custom_template', '');
      }
      $timeout = _ddblock_get_variable($configuration_settings, 'timeout', 5000);
      $widget = _ddblock_get_variable($configuration_settings, 'widget', 'cycle');
      $width = _ddblock_get_variable($configuration_settings, 'width', 195);

      // set pager variable for javascript
      $settings['ddblockCustomTemplate'] = array(
        'pager' => $pager,
        'pagerPosition' => $pager_position,
      );
      drupal_add_js($settings, 'setting');

      // hide fields when using advanced settings
      $extra = !empty($advanced) ? ' style="display:none"' : '';
      $form['module'] = array(
        '#type' => 'hidden',
        '#value' => $module,
      );
      $form['delta'] = array(
        '#type' => 'value',
        '#value' => $delta,
      );
      $form['input_type'] = array(
        '#type' => 'hidden',
        '#value' => 'instance',
      );

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

      //wrapper for ddblock instance settings
      $form['block_settings']['#prefix'] = '<div id="ddblock-instance-settings">';
      $form['block_settings']['#suffix'] = '</div>';
      $form['block_settings']['widget'] = array(
        '#type' => 'radios',
        '#title' => t('Display Method'),
        '#default_value' => $widget,
        '#options' => $options,
        '#required' => TRUE,
        '#description' => t("Choose a way to display content."),
        '#weight' => -11,
      );

      // advanced settings togg;e
      $form['block_settings']['advanced'] = array(
        '#type' => 'checkbox',
        '#title' => t('Use advanced settings'),
        '#default_value' => $advanced,
        '#required' => FALSE,
        '#description' => t("Use Custom templates and CSS (more flexible)"),
        '#weight' => -10,
      );
      $options = array(
        'upright10' => 'Upright10',
        'upright20' => 'Upright20',
        'upright30' => 'Upright30',
        'upright40' => 'Upright40',
        'upright50' => 'Upright50',
        'upright60' => 'Upright60',
        'custom' => 'Custom',
      );
      $form['block_settings']['template'] = array(
        '#type' => 'select',
        '#title' => t('Template'),
        '#default_value' => $template,
        '#options' => $options,
        '#multiple' => FALSE,
        '#required' => FALSE,
        '#description' => t("Template for themable output. Template name will become:<br />ddblock-cycle-block-content-[TEMPLATENAME].tpl.php"),
        '#weight' => -8,
      );

      // Custom template.

      //show fields when using advanced settings
      $extra = '';

      //(empty($advanced)) ? ' style="display:none"' : '';

      // if the checkbox: Use advanced settings is not checked, hide the advanced settings
      $form['block_settings']['custom_template'] = array(
        '#type' => 'textfield',
        '#title' => t('Custom template'),
        '#default_value' => $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 />ddblock-cycle-block-content-[TEMPLATENAME].tpl.php"),
        '#weight' => -7,
      );
      if ($widget == 'default') {
        $collapsed = TRUE;
      }
      else {
        $collapsed = FALSE;
      }

      // content settings: what to use as content for the dynamic display block.
      $form['block_settings']['settings'] = array(
        '#type' => 'fieldset',
        '#collapsible' => TRUE,
        '#collapsed' => $collapsed,
        '#title' => t('Dynamic display block settings'),
        '#weight' => 1,
      );

      // if image cache module exist make it possible to use image cache presets
      if (module_exists('imagecache') and imagecache_presets()) {
        $imgcache_options = array(
          '<none>' => '<none>',
        );

        // get imagecache presets using imagecache function
        foreach (imagecache_presets() as $preset) {
          $name = $preset['presetname'];
          $imgcache_options[$name] = $name;
        }
        $imgcache_slide_desc = t("Imagecache preset to use for slide image");
        $imgcache_pager_item_desc = t("Imagecache preset to use for pager-item image. Only for themes that use an image in the pager");

        // Image cache toggle
        $form['block_settings']['imgcache_toggle'] = array(
          '#type' => 'checkbox',
          '#title' => t('Use imagecache presets'),
          '#default_value' => $imgcache_toggle,
          '#required' => FALSE,
          '#description' => t("Use imagecache presets for images"),
          '#weight' => -5,
        );

        // Image cache settings.
        $form['block_settings']['imgcache'] = array(
          '#type' => 'fieldset',
          '#collapsible' => TRUE,
          '#title' => t('Image cache preset settings'),
          '#prefix' => '<div id="ddblock-imgcache-settings-wrapper"' . $extra . '>',
          '#suffix' => '</div>',
          '#weight' => -4,
        );

        // Select image cache slide image
        $form['block_settings']['imgcache']['imgcache_slide'] = array(
          '#type' => 'select',
          '#title' => t('Imagecache slide image'),
          '#default_value' => $imgcache_slide,
          '#options' => $imgcache_options,
          '#multiple' => FALSE,
          '#required' => FALSE,
          '#description' => $imgcache_slide_desc,
          '#weight' => 1,
        );

        // Select image cache pager image
        $form['block_settings']['imgcache']['imgcache_pager_item'] = array(
          '#type' => 'select',
          '#title' => t('Imagecache pager-item image'),
          '#default_value' => $imgcache_pager_item,
          '#options' => $imgcache_options,
          '#multiple' => FALSE,
          '#required' => FALSE,
          '#description' => $imgcache_pager_item_desc,
          '#weight' => 2,
        );
      }

      // content container settings.
      $form['block_settings']['content_container'] = array(
        '#type' => 'fieldset',
        '#collapsible' => TRUE,
        '#collapsed' => FALSE,
        '#title' => t('Content container settings'),
        '#weight' => -3,
      );
      $form['block_settings']['content_container']['container'] = array(
        '#type' => 'textfield',
        '#title' => t('Content container'),
        '#default_value' => $container,
        '#required' => FALSE,
        '#size' => 30,
        '#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['block_settings']['content_container']['overflow'] = array(
        '#type' => 'checkbox',
        '#title' => t('Overflow hidden'),
        '#default_value' => $overflow,
        '#prefix' => '<div id="ddblock-advanced-content-container-overflow-wrapper"' . $extra . '>',
        '#suffix' => '</div>',
        '#required' => FALSE,
        '#description' => t("Hide the overflow of the container"),
      );
      $form['block_settings']['content_container']['height'] = array(
        '#type' => 'textfield',
        '#title' => t('Container height'),
        '#default_value' => $height,
        '#prefix' => '<div id="ddblock-advanced-content-container-height-wrapper"' . $extra . '>',
        '#suffix' => '</div>',
        '#required' => FALSE,
        '#description' => t("Height of the content to show"),
      );
      $form['block_settings']['content_container']['width'] = array(
        '#type' => 'textfield',
        '#title' => t('Container width'),
        '#default_value' => $width,
        '#prefix' => '<div id="ddblock-advanced-content-container-width-wrapper"' . $extra . '>',
        '#suffix' => '</div>',
        '#required' => FALSE,
        '#description' => t("Width of the content to show"),
      );

      // Image settings.
      $form['block_settings']['images'] = array(
        '#type' => 'fieldset',
        '#collapsible' => TRUE,
        '#title' => t('Image settings'),
        '#prefix' => '<div id="ddblock-image-settings-wrapper"' . $extra . '>',
        '#suffix' => '</div>',
        '#weight' => -3,
      );
      $form['block_settings']['images']['image_height'] = array(
        '#type' => 'textfield',
        '#title' => t('Image height'),
        '#default_value' => $image_height,
        '#required' => FALSE,
        '#description' => t("Height of the image to show"),
      );
      $form['block_settings']['images']['image_width'] = array(
        '#type' => 'textfield',
        '#title' => t('Image width'),
        '#default_value' => $image_width,
        '#required' => FALSE,
        '#description' => t("Width of the image to show"),
      );
      $options = _ddblock_get_effects();
      $form['block_settings']['settings']['fx'] = array(
        '#type' => 'select',
        '#title' => t('Transition Effect'),
        '#default_value' => $fx,
        '#options' => $options,
        '#multiple' => FALSE,
        '#required' => TRUE,
        '#description' => t("The transition effect between content.<br />(all for random effect per slide, none for no effect)<br />Multiple effects can be set in the Custom jQuery Cycle Plugin Settings."),
      );
      $options = drupal_map_assoc(array(
        0,
        250,
        500,
        1000,
        2000,
        3000,
        4000,
        5000,
        6000,
        7000,
        8000,
        9000,
        10000,
        15000,
        20000,
      ));
      $form['block_settings']['settings']['speed'] = array(
        '#type' => 'select',
        '#title' => t('Speed'),
        '#default_value' => $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['block_settings']['settings']['timeout'] = array(
        '#type' => 'select',
        '#title' => t('Timeout'),
        '#default_value' => $timeout,
        '#options' => $options,
        '#required' => TRUE,
        '#description' => t("The time (in milliseconds) between transitions (1000 = 1 second, 0 to disable auto advance)."),
      );
      $options = array(
        'none' => t('None'),
        'asc' => t('Ascending'),
        'desc' => t('Descending'),
        'random' => t('Random'),
      );
      $form['block_settings']['settings']['order'] = array(
        '#type' => 'select',
        '#title' => t('Sort Order'),
        '#default_value' => $order,
        '#options' => $options,
        '#multiple' => FALSE,
        '#required' => TRUE,
        '#description' => t("The display order of the content. None for using the original content order."),
      );
      $form['block_settings']['settings']['pause'] = array(
        '#type' => 'checkbox',
        '#title' => t('Pause'),
        '#default_value' => $pause,
        '#description' => t("Enable users to pause the cycle by hovering on the content."),
      );
      $form['block_settings']['settings']['next'] = array(
        '#type' => 'checkbox',
        '#title' => t('Next'),
        '#default_value' => $next,
        '#description' => t("Enable users to advanced to the next content by clicking on the content."),
      );

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

      // pager settings.

      //show fields when using pager
      $extra = empty($pager_toggle) ? ' style="display:none"' : '';
      $form['block_settings']['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['block_settings']['settings']['pager_settings']['pager'] = array(
        '#type' => 'select',
        '#title' => t('Pager'),
        '#default_value' => $pager,
        '#options' => $options,
        '#required' => TRUE,
        '#description' => t("Type of pager to add."),
      );
      $form['block_settings']['settings']['pager_settings']['pager_container'] = array(
        '#type' => 'textfield',
        '#title' => t('Pager container'),
        '#default_value' => $pager_container,
        '#required' => FALSE,
        '#size' => 30,
        '#description' => t("Container of a pager-item, eg. CSS selector li.<br />This can be any CSS selector containing a pager-item. e.g .custom-pager-item"),
      );
      $form['block_settings']['settings']['pager_settings']['pager_height'] = array(
        '#type' => 'textfield',
        '#title' => t('Height'),
        '#default_value' => $pager_height,
        '#required' => FALSE,
        '#description' => t("Height of the pager"),
      );
      $form['block_settings']['settings']['pager_settings']['pager_width'] = array(
        '#type' => 'textfield',
        '#title' => t('Width'),
        '#default_value' => $pager_width,
        '#required' => FALSE,
        '#description' => t("Width of the pager"),
      );
      $options = array(
        'top' => t('Top'),
        'right' => t('Right'),
        'bottom' => t('Bottom'),
        'left' => t('Left'),
        'both' => t('Both'),
      );

      //show fields when using advanced settings
      $extra = empty($advanced) ? ' style="display:none"' : '';

      // if the checkbox: Use advanced settings is not checked, hide the advanced settings
      $form['block_settings']['settings']['pager_settings']['pager_position'] = array(
        '#type' => 'select',
        '#title' => t('Pager position'),
        '#default_value' => $pager_position,
        '#prefix' => '<div id="ddblock-pager-position-wrapper"' . $extra . '>',
        '#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'),
      );

      //show fields when using advanced settings
      $extra = empty($advanced) ? ' style="display:none"' : '';

      // if the checkbox: Use advanced settings is not checked, hide the advanced settings
      $form['block_settings']['settings']['pager_settings']['pager_event'] = array(
        '#type' => 'select',
        '#title' => t('Pager event'),
        '#default_value' => $pager_event,
        '#prefix' => '<div id="ddblock-pager-event-wrapper"' . $extra . '>',
        '#suffix' => '</div>',
        '#options' => $options,
        '#required' => FALSE,
        '#description' => t("The event on which the pager reacts."),
      );

      // prev_next_pager_loop - Only show prev if previous slide exist - Only show next if next slide exist

      //show fields when using advanced settings
      $extra = empty($advanced) ? ' style="display:none"' : '';

      // if the checkbox: Use advanced settings is not checked, hide the advanced settings
      $form['block_settings']['settings']['pager_settings']['pager_prev_next_loop'] = array(
        '#type' => 'checkbox',
        '#title' => t('Prev/next Pager loop'),
        '#default_value' => $pager_prev_next_loop,
        '#prefix' => '<div id="ddblock-pager-prev-next-loop-wrapper"' . $extra . '>',
        '#suffix' => '</div>',
        '#required' => FALSE,
        '#description' => t("Loop the next/prev pager. If disabled:<br />- Only show prev if previous slide exist<br />- Only show next if next slide exist"),
      );

      // scrollable_pager_loop - Only show prev if previous slide exist - Only show next if next slide exist

      //show fields when using advanced settings
      $extra = empty($advanced) ? ' style="display:none"' : '';

      // if the checkbox: Use advanced settings is not checked, hide the advanced settings
      $form['block_settings']['settings']['pager_settings']['pager_scrollable_loop'] = array(
        '#type' => 'checkbox',
        '#title' => t('Scrollable Pager loop'),
        '#default_value' => $pager_scrollable_loop,
        '#prefix' => '<div id="ddblock-pager-scrollable-loop-wrapper"' . $extra . '>',
        '#suffix' => '</div>',
        '#required' => FALSE,
        '#description' => t("Loop the scrollable pager. If disabled:<br />- Only show prev if previous slide exist<br />- Only show next if next slide exist"),
      );
      $form['block_settings']['settings']['pager_settings']['nr_of_pager_items'] = array(
        '#type' => 'textfield',
        '#title' => t('Nr of pager items'),
        '#default_value' => $nr_of_pager_items,
        '#prefix' => '<div id="ddblock-nr-of-pager-items-wrapper">',
        '#suffix' => '</div>',
        '#required' => FALSE,
        '#description' => t("Number of pager items visible in a scrollable pager.<br />This setting will rule the functionality of the pager."),
      );

      // disable click if pager is mouseover

      //show fields when using advanced settings
      $extra = empty($advanced) ? ' style="display:none"' : '';

      // if the checkbox: Use advanced settings is not checked, hide the advanced settings
      $form['block_settings']['settings']['pager_settings']['pager_disable_click'] = array(
        '#type' => 'checkbox',
        '#title' => t('Disable Pager click'),
        '#default_value' => $pager_disable_click,
        '#prefix' => '<div id="ddblock-pager-disable-click-wrapper"' . $extra . '>',
        '#suffix' => '</div>',
        '#required' => FALSE,
        '#description' => t("Disable pager click when pager event is mouseover."),
      );

      //show fields when using advanced settings
      $extra = empty($advanced) ? ' style="display:none"' : '';

      // if the checkbox: Use advanced settings is not checked, hide the advanced settings
      $form['block_settings']['settings']['pager_settings']['pager_fast'] = array(
        '#type' => 'checkbox',
        '#title' => t('Fast Pager'),
        '#default_value' => $pager_fast,
        '#prefix' => '<div id="ddblock-pager-fast-wrapper"' . $extra . '>',
        '#suffix' => '</div>',
        '#required' => FALSE,
        '#description' => t("Use fast pager event when clicked or hovered."),
      );

      //show fields when using advanced settings
      $extra = empty($advanced) ? ' style="display:none"' : '';

      // if the checkbox: Use advanced settings is not checked, hide the advanced settings
      $form['block_settings']['settings']['pager_settings']['pager_pause'] = array(
        '#type' => 'checkbox',
        '#title' => t('Pager pause'),
        '#default_value' => $pager_pause,
        '#prefix' => '<div id="ddblock-pager-pause-wrapper"' . $extra . '>',
        '#suffix' => '</div>',
        '#required' => FALSE,
        '#description' => t("Pause the slideshow when pager hovered."),
      );
      $form['block_settings']['settings']['slide_text'] = array(
        '#type' => 'checkbox',
        '#title' => t('Use slide text'),
        '#default_value' => $slide_text,
        '#required' => FALSE,
        '#description' => t("Show slide text when available in content."),
      );

      // if the checkbox: Use jQuery effects for text of a slide is not checked, hide the slide text settings
      $extra = empty($slide_text) ? ' style="display:none"' : '';
      $form['block_settings']['settings']['slide_text_settings'] = array(
        '#type' => 'fieldset',
        '#collapsible' => TRUE,
        '#title' => t('Slide text settings'),
        '#prefix' => '<div id="ddblock-slide-text-settings-wrapper"' . $extra . '>',
        '#suffix' => '</div>',
      );

      // slide text container field.
      $form['block_settings']['settings']['slide_text_settings']['slide_text_container'] = array(
        '#type' => 'textfield',
        '#title' => t('Slide text container'),
        '#default_value' => $slide_text_container,
        '#required' => FALSE,
        '#description' => t("Container of the slide text."),
        '#weight' => 4,
      );
      $options = array(
        'top' => t('Top'),
        'right' => t('Right'),
        'bottom' => t('Bottom'),
        'left' => t('Left'),
      );
      $form['block_settings']['settings']['slide_text_settings']['slide_text_position'] = array(
        '#type' => 'select',
        '#title' => t('Slide text position'),
        '#default_value' => $slide_text_position,
        '#options' => $options,
        '#multiple' => FALSE,
        '#required' => FALSE,
        '#description' => t("Position of the slide text."),
        '#weight' => 5,
      );
      $form['block_settings']['settings']['slide_text_settings']['slide_text_jquery'] = array(
        '#type' => 'checkbox',
        '#title' => t('Use jQuery effects for text of a slide'),
        '#default_value' => $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($slide_text_jquery) ? ' style="display:none"' : '';

      // if the checkbox: jQuery effects for text of a slide is not checked, hide the advanced settings
      $form['block_settings']['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['block_settings']['settings']['slide_text_settings']['slide_jquery']['slide_text_before_effect'] = array(
        '#type' => 'select',
        '#title' => t('Before effect'),
        '#default_value' => $slide_text_before_effect,
        '#options' => $before_effect_options,
        '#multiple' => FALSE,
        '#required' => FALSE,
        '#description' => t("Before effect of the slide text"),
      );
      $speed_options = drupal_map_assoc(array(
        0,
        250,
        500,
        1000,
        2000,
        3000,
        4000,
        5000,
      ));
      $form['block_settings']['settings']['slide_text_settings']['slide_jquery']['slide_text_before_speed'] = array(
        '#type' => 'select',
        '#title' => t('Speed before effect'),
        '#default_value' => $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['block_settings']['settings']['slide_text_settings']['slide_jquery']['slide_text_after_effect'] = array(
        '#type' => 'select',
        '#title' => t('After effect'),
        '#default_value' => $slide_text_after_effect,
        '#options' => $after_effect_options,
        '#multiple' => FALSE,
        '#required' => FALSE,
        '#description' => t("After effect of the slide text"),
      );
      $form['block_settings']['settings']['slide_text_settings']['slide_jquery']['slide_text_after_speed'] = array(
        '#type' => 'select',
        '#title' => t('Speed after effect '),
        '#default_value' => $slide_text_after_speed,
        '#options' => $speed_options,
        '#required' => FALSE,
        '#description' => t("Speed of the before effect (1000 = 1 second, 0 = direct)."),
      );
      if ($custom_jquery) {
        $collapsed = FALSE;
      }
      else {
        $collapsed = TRUE;
      }
      $form['block_settings']['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.'),
      );
      $form['block_settings']['settings']['custom']['custom_jquery'] = array(
        '#type' => 'textarea',
        '#title' => t('Custom Options'),
        '#default_value' => $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}'),
      );
      $form['#redirect'] = 'admin/settings/ddblock/list';
      $form['submit'] = array(
        '#type' => 'submit',
        '#value' => t('Submit'),
        '#submit' => array(
          'ddblock_form_alter_submit',
        ),
      );
    }
  }
}