function lightbox2_add_files in Lightbox2 7
Same name and namespace in other branches
- 8 lightbox2.module \lightbox2_add_files()
- 5.2 lightbox2.module \lightbox2_add_files()
- 5 lightbox2.module \lightbox2_add_files()
- 6 lightbox2.module \lightbox2_add_files()
- 7.2 lightbox2.module \lightbox2_add_files()
Provide links to the CSS stylesheet and JS file associated with this module.
1 call to lightbox2_add_files()
- lightbox2_init in ./
lightbox2.module - Implementation of hook_init().
File
- ./
lightbox2.module, line 499 - Enables the use of lightbox2 which places images above your current page, not within. This frees you from the constraints of the layout, particularly column widths.
Code
function lightbox2_add_files() {
global $language, $user;
static $already_added = FALSE;
if ($already_added) {
return;
// Don't add the JavaScript and CSS multiple times.
}
$already_added = TRUE;
// Load required js and css files.
$path = drupal_get_path('module', 'lightbox2');
// Initialise some variables.
$inline_image_handler = variable_get('lightbox2_inline', 0);
$flickr_image_handler = variable_get('lightbox2_flickr', 0);
$gallery2_block_handler = variable_get('lightbox2_gallery2_blocks', 0);
$image_assist_handler = variable_get('lightbox2_image_assist_custom', 0);
$image_node_handler = variable_get('lightbox2_image_node', 0);
$custom_class_handler = 0;
switch (variable_get('lightbox2_custom_class_handler', 0)) {
case 1:
$custom_class_handler = 'lightbox_ungrouped';
break;
case 2:
$custom_class_handler = 'lightbox';
break;
case 3:
$custom_class_handler = 'lightshow';
break;
case 4:
$custom_class_handler = 'lightframe_ungrouped';
break;
case 5:
$custom_class_handler = 'lightframe';
break;
}
// Set the list of image classes to format urls for.
$image_node_sizes = '';
$trigger_lightbox_classes = '';
$trigger_lightbox_group_classes = '';
$trigger_slideshow_classes = '';
$trigger_lightframe_classes = '';
$trigger_lightframe_group_classes = '';
// Inline module images.
switch ($inline_image_handler) {
case 1:
$trigger_lightbox_classes .= 'img.inline,';
break;
case 2:
$trigger_lightbox_group_classes .= 'img.inline,';
break;
case 3:
$trigger_slideshow_classes .= 'img.inline,';
break;
case 4:
$trigger_lightframe_classes .= 'img.inline,';
break;
case 5:
$trigger_lightframe_group_classes .= 'img.inline,';
break;
}
// Flickr images.
switch ($flickr_image_handler) {
case 1:
$trigger_lightbox_classes .= 'img.flickr-photo-img,img.flickr-photoset-img,';
break;
case 2:
$trigger_lightbox_group_classes .= 'img.flickr-photo-img,img.flickr-photoset-img,';
break;
case 3:
$trigger_slideshow_classes .= 'img.flickr-photo-img,img.flickr-photoset-img,';
break;
case 4:
$trigger_lightframe_classes .= 'img.flickr-photo-img,img.flickr-photoset-img,';
break;
case 5:
$trigger_lightframe_group_classes .= 'img.flickr-photo-img,img.flickr-photoset-img,';
break;
}
// Gallery2 block images.
switch ($gallery2_block_handler) {
case 1:
$trigger_lightbox_classes .= 'img.ImageFrame_image,img.ImageFrame_none,';
break;
case 2:
$trigger_lightbox_group_classes .= 'img.ImageFrame_image,img.ImageFrame_none,';
break;
case 3:
$trigger_slideshow_classes .= 'img.ImageFrame_image,img.ImageFrame_none,';
break;
case 4:
$trigger_lightframe_classes .= 'img.ImageFrame_image,img.ImageFrame_none,';
break;
case 5:
$trigger_lightframe_group_classes .= 'img.ImageFrame_image,img.ImageFrame_none,';
break;
}
// Image Assist custom size images.
switch ($image_assist_handler) {
case 1:
$trigger_lightbox_classes .= 'img.image-img_assist_custom,';
break;
case 2:
$trigger_lightbox_group_classes .= 'img.image-img_assist_custom,';
break;
case 3:
$trigger_slideshow_classes .= 'img.image-img_assist_custom,';
break;
case 4:
$trigger_lightframe_classes .= 'img.image-img_assist_custom,';
break;
case 5:
$trigger_lightframe_group_classes .= 'img.image-img_assist_custom,';
break;
}
// Image nodes.
if ($image_node_handler) {
$trigger_sizes = variable_get('lightbox2_trigger_image_size', array(
'thumbnail',
));
usort($trigger_sizes, "sort_by_length");
foreach ($trigger_sizes as $size) {
$triggers = "img.{$size}, img.image-{$size},";
if (empty($size)) {
if (user_access('view original images')) {
$triggers = "img._original, img.image-_original,";
}
}
else {
$image_node_sizes .= "\\.{$size}|";
}
switch ($image_node_handler) {
case 1:
$trigger_lightbox_classes .= $triggers;
break;
case 2:
$trigger_lightbox_group_classes .= $triggers;
break;
case 3:
$trigger_slideshow_classes .= $triggers;
break;
case 4:
$trigger_lightframe_classes .= $triggers;
break;
case 5:
$trigger_lightframe_group_classes .= $triggers;
break;
}
}
}
// Custom images.
$custom_triggers = variable_get('lightbox2_custom_trigger_classes', '');
$custom_trigger_classes = '';
if ($custom_class_handler && !empty($custom_triggers)) {
$trigger_classes = preg_split("/(\r\n|\n)/", $custom_triggers);
foreach ($trigger_classes as $class) {
if (!empty($class)) {
$custom_trigger_classes .= "img.{$class},";
}
}
}
$trigger_lightbox_classes = rtrim($trigger_lightbox_classes, ",");
$trigger_lightbox_group_classes = rtrim($trigger_lightbox_group_classes, ",");
$trigger_slideshow_classes = rtrim($trigger_slideshow_classes, ",");
$trigger_lightframe_classes = rtrim($trigger_lightframe_classes, ",");
$trigger_lightframe_group_classes = rtrim($trigger_lightframe_group_classes, ",");
$custom_trigger_classes = rtrim($custom_trigger_classes, ",");
$image_node_sizes = '(' . rtrim($image_node_sizes, "|") . ')';
$enable_video = variable_get('lightbox2_enable_video', FALSE);
$enable_login = $user->uid == 0 && variable_get('lightbox2_enable_login', FALSE);
$enable_contact = module_exists('contact') && variable_get('lightbox2_enable_contact', FALSE) && user_access('access site-wide contact form');
$display_image_size = variable_get('lightbox2_display_image_size', 'original');
if ($display_image_size == 'original' && user_access('view original images')) {
$display_image_size = '';
}
$font_color = variable_get('lightbox2_font_color', '000');
$box_color = variable_get('lightbox2_box_color', 'fff');
$file_path = base_path() . '(\\w\\w/)' . file_default_scheme() . ':/';
if (variable_get('file_downloads', 'FILE_DOWNLOADS_PUBLIC') == 'FILE_DOWNLOADS_PRIVATE') {
$file_path = base_path() . '(\\w\\w/)system/files';
}
// Load the javascript settings.
$js_settings = array(
'rtl' => $language->direction,
'file_path' => $file_path,
'default_image' => base_path() . $path . '/images/brokenimage.jpg',
'border_size' => (int) variable_get('lightbox2_border_size', 10),
'font_color' => !empty($font_color) ? $font_color : '000',
'box_color' => !empty($box_color) ? $box_color : '000',
'top_position' => variable_get('lightbox2_top_position', ''),
'overlay_opacity' => str_replace(',', '.', variable_get('lightbox2_overlay_opacity', 0.8)),
'overlay_color' => variable_get('lightbox2_overlay_color', '000'),
'disable_close_click' => variable_get('lightbox2_disable_close_click', TRUE),
'resize_sequence' => (int) variable_get('lightbox2_resize_sequence', 0),
'resize_speed' => 1000 * str_replace(',', '.', variable_get('lightbox2_resize_speed', 0.4)),
'fade_in_speed' => 1000 * str_replace(',', '.', variable_get('lightbox2_fadein_speed', 0.4)),
'slide_down_speed' => 1000 * str_replace(',', '.', variable_get('lightbox2_slidedown_speed', 0.6)),
'use_alt_layout' => variable_get('lightbox2_use_alt_layout', FALSE),
'disable_resize' => variable_get('lightbox2_disable_resize', FALSE),
'disable_zoom' => variable_get('lightbox2_disable_zoom', FALSE),
'force_show_nav' => variable_get('lightbox2_force_show_nav', FALSE),
'show_caption' => variable_get('lightbox2_show_caption', TRUE),
'loop_items' => variable_get('lightbox2_loop_items', FALSE),
'node_link_text' => check_plain(t(variable_get('lightbox2_node_link_text', 'View Image Details'))),
'node_link_target' => variable_get('lightbox2_node_link_target', FALSE),
'image_count' => check_plain(t(variable_get('lightbox2_image_count_str', 'Image !current of !total'))),
'video_count' => check_plain(t(variable_get('lightbox2_video_count_str', 'Video !current of !total'))),
'page_count' => check_plain(t(variable_get('lightbox2_page_count_str', 'Page !current of !total'))),
'lite_press_x_close' => t('press !x to close', array(
'!x' => '<a href="#" onclick="hideLightbox(); return FALSE;"><kbd>x</kbd></a>',
)),
'download_link_text' => '',
'enable_login' => $enable_login,
'enable_contact' => $enable_contact,
// Automatic image handling settings.
'keys_close' => variable_get('lightbox2_keys_close', 'c x 27'),
'keys_previous' => variable_get('lightbox2_keys_previous', 'p 37'),
'keys_next' => variable_get('lightbox2_keys_next', 'n 39'),
'keys_zoom' => variable_get('lightbox2_keys_zoom', 'z'),
'keys_play_pause' => variable_get('lightbox2_keys_play_pause', '32'),
'display_image_size' => $display_image_size,
'image_node_sizes' => $image_node_sizes,
'trigger_lightbox_classes' => $trigger_lightbox_classes,
'trigger_lightbox_group_classes' => $trigger_lightbox_group_classes,
'trigger_slideshow_classes' => $trigger_slideshow_classes,
'trigger_lightframe_classes' => $trigger_lightframe_classes,
'trigger_lightframe_group_classes' => $trigger_lightframe_group_classes,
'custom_class_handler' => $custom_class_handler,
'custom_trigger_classes' => $custom_trigger_classes,
'disable_for_gallery_lists' => variable_get('lightbox2_disable_nested_galleries', TRUE),
'disable_for_acidfree_gallery_lists' => variable_get('lightbox2_disable_nested_acidfree_galleries', TRUE),
'enable_acidfree_videos' => variable_get('lightbox2_enable_acidfree_videos', TRUE),
// Slideshow settings.
'slideshow_interval' => variable_get('lightbox2_slideshow_interval', 5) * 1000,
'slideshow_automatic_start' => variable_get('lightbox2_slideshow_automatic_start', TRUE),
'slideshow_automatic_exit' => variable_get('lightbox2_slideshow_automatic_exit', TRUE),
'show_play_pause' => variable_get('lightbox2_slideshow_show_play_pause', TRUE),
'pause_on_next_click' => variable_get('lightbox2_slideshow_pause_on_next_click', FALSE),
'pause_on_previous_click' => variable_get('lightbox2_slideshow_pause_on_previous_click', TRUE),
'loop_slides' => variable_get('lightbox2_loop_slides', FALSE),
// Iframe settings.
'iframe_width' => (int) variable_get('lightbox2_default_frame_width', 600),
'iframe_height' => (int) variable_get('lightbox2_default_frame_height', 400),
'iframe_border' => (int) variable_get('lightbox2_frame_border', 1),
// Video settings.
'enable_video' => $enable_video,
'useragent' => isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : '',
);
if ($enable_video) {
$js_settings['flvPlayer'] = url(check_plain(trim(variable_get('lightbox2_flv_player_path', 'flvplayer.swf'), '/')));
$js_settings['flvFlashvars'] = check_plain(variable_get('lightbox2_flv_player_flashvars', ''));
}
// Only supply these if the user has the correct permissions.
if (user_access('download original image') && user_access('view original images')) {
$js_settings['download_link_text'] = check_plain(t(variable_get('lightbox2_download_link_text', 'Download Original')));
}
drupal_add_js(array(
'lightbox2' => $js_settings,
), array(
'type' => 'setting',
));
// Check where we should load the javascript files - header or footer.
$js_location = variable_get('lightbox2_js_location', 'header');
// Lightbox2 Plus.
if (!variable_get('lightbox2_lite', FALSE)) {
$css = $path . '/css/lightbox.css';
if (variable_get('lightbox2_use_alt_layout', FALSE)) {
$css = $path . '/css/lightbox_alt.css';
}
drupal_add_css($css);
// Check to see if any automatic image handling options are enabled.
if ($image_node_handler || $flickr_image_handler || $gallery2_block_handler || $inline_image_handler || $image_assist_handler || $custom_triggers != '') {
drupal_add_js($path . '/js/auto_image_handling.js', array(
'scope' => $js_location,
));
}
if (variable_get('lightbox2_enable_video', FALSE)) {
drupal_add_js($path . '/js/lightbox_video.js', array(
'scope' => $js_location,
));
}
if ($enable_login || $enable_contact) {
drupal_add_js($path . '/js/lightbox_modal.js', array(
'scope' => $js_location,
));
}
//drupal_add_js($path .'/js/prototype.js', array( 'scope' => $js_location, 'cache' => false ) );
//drupal_add_js($path .'/js/scriptaculous.js', array( 'scope' => $js_location, 'cache' => false ) );
drupal_add_js($path . '/js/lightbox.js', array(
'scope' => $js_location,
));
}
else {
$css = $path . '/css/lightbox_lite.css';
drupal_add_css($css);
drupal_add_js($path . '/js/lightbox_lite.js', array(
'scope' => $js_location,
));
}
}