' . t('The bxSlider module allows you to add contents slider to your web site using bxSlider jQuery plugin.') . '

'; $output .= '

' . t('To use bxSlider, you need to upload images to be used for a slider to the site first.') . '

'; $output .= '

' . t('Assuming you have the following images uploadedas examples.'). '

' . '

'; $output .= '

' . t('Next, just add the following code anywhere (in block, node, etc) you like to show a slider') . '

'; $output .= '

' . '<ul class="bxslider">
  <li><img src="/sites/default/files/slider/photo1.jpg" /></li>
  <li><img src="/sites/default/files/slider/photo2.jpg" /></li>
  <li><img src="/sites/default/files/slider/photo3.jpg" /></li>
</ul>' . '

'; $output .= '

' . t('That\'s all. Be sure to use the class name "bxslider" for the UL tag. You can put as many sliders as possible even within a page.') . '

'; return $output; } } /** * Implements hook_requirements(). */ function bxslider_requirements($phase) { // Create an array to hold bxSlider requirements $requirements = array(); // Check requirements during the runtime phase if ($phase == 'runtime') { // Check if the Nivo Slider jQuery plugin library is installed if (($library = libraries_detect('bxslider')) && !empty($library['installed'])) { $requirements['bxslider'] = array( 'title' => t('bxSlider jQuery plugin'), 'value' => t('Installed'), 'severity' => REQUIREMENT_OK, ); } else { $requirements['bxslider'] = array( 'title' => t('bxSlider jQuery plugin'), 'value' => t('Not installed'), 'description' => $library['error message'], 'severity' => REQUIREMENT_ERROR, ); } // Check if the site is running >= jQuery 1.7 if (($library = drupal_get_library('system', 'jquery')) && $library['version'] >= 1.7) { $requirements['bxslider_jquery'] = array( 'title' => t('bxSlider jQuery version'), 'value' => t('jQuery @version', array('@version' => $library['version'])), 'severity' => REQUIREMENT_OK, ); } else { $destination = drupal_get_destination(); $requirements['bxslider_jquery'] = array( 'title' => t('bxSlider jQuery version'), 'value' => t('jQuery @version', array('@version' => $library['version'])), 'description' => t('bxSlider requires jQuery 1.7 or greater. Configure jQuery Update.', array('@jquery_update' => url('admin/config/development/jquery_update', array('query' => $destination)))), 'severity' => REQUIREMENT_ERROR, ); } } return $requirements; } /** * Implements hook_init(). */ function bxslider_init() { $settings['mode'] = variable_get('bxslider_mode', 'fade'); $settings['speed'] = intval(variable_get('bxslider_speed', '1000')); $settings['pager'] = variable_get('bxslider_pager', 1)? true : false; $settings['controls'] = variable_get('bxslider_controls', 1)? true : false; $settings['auto'] = variable_get('bxslider_auto', 1)? true : false; $settings['pause'] = intval(variable_get('bxslider_pause', '4000')); bxslider_activate($settings); } /** * Implements hook_permission(). */ function bxslider_permission() { return array( 'administer bxslider' => array( 'title' => t('Administer bxSlider'), ), ); } /** * Implements hook_menu(). */ function bxslider_menu() { $items['admin/config/media/bxslider'] = array( 'title' => 'bxSlider', 'description' => 'Configure bxSlider settings.', 'page callback' => 'drupal_get_form', 'page arguments' => array('bxslider_admin_settings_form'), 'access arguments' => array('administer bxslider'), 'type' => MENU_NORMAL_ITEM, ); return $items; } /** * Display the bxSlider settings form. */ function bxslider_admin_settings_form($form, &$form_state) { $form['bxslider_mode'] = array( '#type' => 'select', '#title' => t('Slider effect'), '#default_value' => variable_get('bxslider_mode', 'fade'), '#description' => t('Select a slider effect'), '#options' => array( 'horizontal' => t('Horizontal'), 'vertical' => t('Vertical'), 'fade' => t('Fade'), ), ); $form['bxslider_speed'] = array( '#type' => 'textfield', '#title' => t('Transition duration'), '#default_value' => variable_get('bxslider_speed', '1000'), '#field_suffix' => t('ms'), '#maxlength' => 8, '#size' => 8, ); $form['bxslider_pager'] = array( '#type' => 'radios', '#title' => t('Display pager'), '#default_value' => variable_get('bxslider_pager', 1), '#options' => array(t('No'), t('Yes')), ); $form['bxslider_controls'] = array( '#type' => 'radios', '#title' => t('Display prev/next controls'), '#default_value' => variable_get('bxslider_controls', 1), '#options' => array(t('No'), t('Yes')), ); $form['bxslider_auto'] = array( '#type' => 'radios', '#title' => t('Slides automatically'), '#default_value' => variable_get('bxslider_auto', 1), '#options' => array(t('No'), t('Yes')), ); $form['bxslider_pause'] = array( '#type' => 'textfield', '#title' => t('Amount of time between each auto transition'), '#default_value' => variable_get('bxslider_pause', '4000'), '#field_suffix' => t('ms'), '#maxlength' => 8, '#size' => 8, ); return system_settings_form($form); } /** * Implements hook_libraries_info(). */ function bxslider_libraries_info() { $libraries['bxslider'] = array( 'name' => 'bxSlider', 'vendor url' => 'http://bxslider.com', 'download url' => 'http://bxslider.com/lib/jquery.bxslider.zip', 'version arguments' => array( 'file' => 'jquery.bxslider.min.js', // BxSlider vx.x 'pattern' => '/BxSlider v(\d+\.+\d+)/', 'lines' => 2, ), 'files' => array( 'js' => array( 'jquery.bxslider.min.js', ), 'css' => array( 'jquery.bxslider.css', ), ), ); return $libraries; } /** * */ function bxslider_activate($settings) { static $active = FALSE; if (!$active) { // load jQuery library and CSS $path = libraries_get_path('bxslider'); drupal_add_css($path . '/jquery.bxslider.css'); drupal_add_js($path . '/jquery.bxslider.min.js'); // load bxSlider activator drupal_add_js(array('bxslider' => $settings), 'setting'); drupal_add_js(drupal_get_path('module', 'bxslider') . '/js/bxslider.js'); $active = TRUE; } }