function rotating_banner_block_configure in Rotating Banner 7
Same name and namespace in other branches
- 7.2 rotating_banner.module \rotating_banner_block_configure()
Implements hook_block_configure().
File
- ./
rotating_banner.module, line 192
Code
function rotating_banner_block_configure($delta) {
$rbid = $delta;
$banner = rotating_banner_load($rbid);
$defaults = rotating_banner_defaults();
$settings = array_merge($defaults, $banner->settings);
if (isset($banner->settings['cycle'])) {
$settings['cycle'] = array_merge($defaults['cycle'], $banner->settings['cycle']);
}
$form = array();
$path = drupal_get_path('module', 'rotating_banner');
$form['#attached'] = array();
$form['#attached']['js'] = array();
$form['#attached']['js'][] = $path . '/includes/jquery.easing.js';
$form['#attached']['js'][] = $path . '/includes/jquery.cycle.js';
// Add sweet effects
$form['#attached']['libraries'] = array();
$form['#attached']['libraries'][] = 'effects';
$form['rotating_banner'] = array(
'#tree' => TRUE,
);
$rb_form =& $form['rotating_banner'];
$rb_form['#attached']['css'][] = drupal_get_path('module', 'rotating_banner') . '/rotating_banner.admin.css';
$rb_form['#attached']['js'][] = drupal_get_path('module', 'rotating_banner') . '/rotating_banner.admin.js';
$options = array();
$i = 0;
$slides = RotatingBannerSlide::getByRotatingBanner($rbid);
$rb_form['slides'] = array(
'#type' => 'fieldset',
'#title' => t('Banner images'),
'#collapsible' => TRUE,
);
$rb_form['slides']['slide_table'] = array(
'#theme' => 'rotating_banner_settings_form_slides',
);
$rb_form['slides']['slide_table']['weight'] = array(
'#tree' => TRUE,
);
foreach ($slides as $slide) {
$media = media_load($slide->fid);
$preview = field_view_field('media', $media, 'file', 'media_preview');
$preview['#theme_wrappers'][] = 'media_thumbnail';
$i++;
$rb_form['slides']['slide_table']['weight'][$slide->sid] = array(
'#type' => 'weight',
'#default_value' => $slide->weight,
'#attributes' => array(
'class' => array(
'rb-slide-weight',
),
),
);
$rb_form['slides']['slide_table']['link'][$slide->sid] = array(
'#markup' => url($slide->link, array(
'absolute' => TRUE,
)),
);
$rb_form['slides']['slide_table']['background'][$slide->sid] = $preview;
}
$rb_form['slides']['add'] = array(
'#markup' => l(t('Add a new slide to this banner'), 'admin/structure/rotating_banner/' . $rbid . '/slide/add'),
);
$rb_form['banner_settings'] = array(
'#type' => 'fieldset',
'#title' => t('Banner settings'),
'#collapsible' => TRUE,
'#collapsed' => TRUE,
);
$rb_form['banner_settings']['fluid'] = array(
'#type' => 'radios',
'#title' => t('Banner size'),
'#options' => array(
'1' => 'The banner will shrink to fit the page.',
'0' => 'The banner will not shrink to fit the page and you have the option to specify the width and/or height.',
),
'#default_value' => $settings['fluid'],
);
$rb_form['banner_settings']['width'] = array(
'#type' => 'textfield',
'#title' => t('Width'),
'#attributes' => array(
'class' => array(
'rb-dimension-settings',
),
),
'#size' => 5,
'#field_suffix' => ' ' . t('pixels'),
'#default_value' => $settings['width'],
);
$rb_form['banner_settings']['height'] = array(
'#type' => 'textfield',
'#title' => t('Height'),
'#size' => 5,
'#attributes' => array(
'class' => array(
'rb-dimension-settings',
),
),
'#field_suffix' => ' ' . t('pixels'),
'#default_value' => $settings['height'],
);
$rb_form['banner_settings']['cycle'] = array();
$relative_path = str_replace(DRUPAL_ROOT, '', drupal_get_path('module', 'rotating_banner'));
$demo_image1 = theme('image', array(
'path' => $relative_path . '/images/demo-slide-1.jpg',
));
$demo_image2 = theme('image', array(
'path' => $relative_path . '/images/demo-slide-2.jpg',
));
$rb_form['banner_settings']['cycle']['fx'] = array(
'#type' => 'select',
'#title' => 'Transition type',
'#suffix' => '<div id="rb-settings-effect-preview">' . $demo_image1 . $demo_image2 . '</div>',
'#options' => array(
'fade' => t('Fade'),
'blindX' => t('BlindX'),
'blindY' => t('BlindY'),
'blindZ' => t('BlindZ'),
'cover' => t('Cover'),
'scrollUp' => t('ScrollUp'),
'scrollDown' => t('ScrollDown'),
'scrollLeft' => t('ScrollLeft'),
'scrollRight' => t('ScrollRight'),
'scrollHorz' => t('ScrollHorz'),
'scrollVert' => t('ScrollVert'),
'toss' => t('Toss'),
'uncover' => t('Uncover'),
),
'#default_value' => $settings['cycle']['fx'],
);
$rb_form['banner_settings']['cycle']['auto_slide'] = array(
'#id' => 'auto-transition-selector',
// Keeps it from going in the cycle settings
'#type' => 'checkbox',
'#title' => t('Automatically change slides'),
);
$rb_form['banner_settings']['cycle']['timeout'] = array(
'#title' => t('Delay between slides in milliseconds.'),
'#type' => 'textfield',
'#description' => t('Leave blank to disable automatic transition.'),
'#default_value' => $settings['cycle']['timeout'],
);
$rb_form['banner_settings']['controls'] = array(
'#type' => 'select',
'#title' => t('Type of control to switch between slides'),
'#options' => array(
'none' => t('None'),
'buttons' => t('Buttons'),
'numbers' => t('Numbers'),
'prev_next' => t('Prev / Next'),
),
'#default_value' => $settings['controls'],
);
return $form;
}