function _slick_slideshow_settings_generate in Slick Slideshow Lite 7
Generate settings array.
Parameters
array $settings (optional): Pass existing settings into the array.
2 calls to _slick_slideshow_settings_generate()
File
- ./
slick_slideshow.module, line 282 - Defines a system for adding the Slick responsive slideshow library to Drupal.
Code
function _slick_slideshow_settings_generate($settings = array()) {
$image_styles = function_exists('image_style_options') ? image_style_options(FALSE, PASS_THROUGH) : array();
$form_settings = array(
'slickField' => array(
'#title' => t('Field Settings'),
'#type' => 'fieldset',
'image_style' => array(
'#title' => t('Image style'),
'#type' => 'select',
'#empty_option' => t('None (original image)'),
'#options' => $image_styles,
),
'captions' => array(
'#title' => t('Enable captions'),
'#description' => t('If enabled, a caption will appear on the slides based on the image\'s title field.'),
'#type' => 'checkbox',
),
),
'slickSettings' => array(
'#title' => t('Slick Slideshow Settings'),
'#type' => 'fieldset',
'slidesToShow' => array(
'#title' => t('Slides displayed'),
'#type' => 'textfield',
'#element_validate' => array(
'element_validate_integer_positive',
),
'#required' => TRUE,
),
'slidesToScroll' => array(
'#title' => t('Slides scrolled on change'),
'#type' => 'textfield',
'#element_validate' => array(
'element_validate_integer_positive',
),
'#required' => TRUE,
),
'infinite' => array(
'#title' => t('Enable infinite scrolling'),
'#type' => 'checkbox',
),
'dots' => array(
'#title' => t('Enable dots navigation'),
'#type' => 'checkbox',
),
'fade' => array(
'#title' => t('Enable fade transition'),
'#type' => 'checkbox',
),
'autoplay' => array(
'#title' => t('Enable autoplay'),
'#type' => 'checkbox',
),
'autoplaySpeed' => array(
'#title' => t('Auto play change interval'),
'#description' => t('Enter interal value in ms. Default is 3000 (3 seconds).'),
'#type' => 'textfield',
'#element_validate' => array(
'element_validate_integer_positive',
),
),
'pauseOnHover' => array(
'#title' => t('Enable pause on hover'),
'#type' => 'checkbox',
),
),
);
if (!empty($settings)) {
foreach ($form_settings as $fkey => $fieldset) {
foreach ($fieldset as $skey => $setting) {
if (is_array($form_settings[$fkey][$skey])) {
$form_settings[$fkey][$skey]['#default_value'] = isset($settings[$fkey][$skey]) ? $settings[$fkey][$skey] : null;
}
}
}
}
// Set numeric default values if null
$numeric_settings = array(
'slidesToShow',
'slidesToScroll',
);
foreach ($numeric_settings as $num_setting) {
if (empty($form_settings['slickSettings'][$num_setting]['#default_value'])) {
$form_settings['slickSettings'][$num_setting]['#default_value'] = 1;
}
}
return $form_settings;
}