You are here

function _selectmenu_add_libs in jQuery UI selectmenu 7

Same name and namespace in other branches
  1. 7.2 selectmenu.module \_selectmenu_add_libs()

Put necessary JS related settings into Drupal.settings. Force load required jQuery plugins.

1 call to _selectmenu_add_libs()
selectmenu_init in ./selectmenu.module
Implements hook_init().

File

./selectmenu.module, line 60

Code

function _selectmenu_add_libs() {

  // Building a Drupal.settings entry.
  $settings = array(
    'selectmenu_css_whitelist' => implode(', ', _selectmenu_prepare_ids(variable_get('selectmenu_css_whitelist', ''))),
    'form_id_exceptions' => _selectmenu_prepare_ids(variable_get('selectmenu_form_id_exceptions', '')),
    'ignore_system_settings_forms' => variable_get('selectmenu_ignore_system_settings_forms', TRUE),
    'ignore_overlay_forms' => variable_get('selectmenu_ignore_overlay_forms', TRUE),
    'ignore_node_add_forms' => variable_get('selectmenu_ignore_node_add_forms', TRUE),
    'disable_for_admin_theme' => variable_get('selectmenu_disable_for_admin_theme', FALSE),
  );

  // Process and add script options accordingly.
  $selectmenu_script_options = array_filter(variable_get('selectmenu_script_options', array()), 'trim');
  if (!empty($selectmenu_script_options)) {
    $settings['options'] = $selectmenu_script_options;
  }

  // Check to see if we are using the admin theme and if selectmenu should be disabled according to preference.
  global $theme;
  if ($theme == variable_get('admin_theme') && variable_get('selectmenu_disable_for_admin_theme', FALSE)) {

    // Making sure the admin_theme isn't the sidewide default theme either.
    if ($theme != variable_get('theme_default', '')) {
      return;
    }
  }
  $libs_loc = _selectmenu_find_libs();
  if ($libs_loc) {
    drupal_add_library('system', 'ui.core');
    drupal_add_library('system', 'ui.widget');
    drupal_add_library('system', 'ui.position');
    drupal_add_js($libs_loc . '/jquery.ui.selectmenu.js');
    drupal_add_css($libs_loc . '/jquery.ui.selectmenu.css');
    drupal_add_js(array(
      'selectmenu' => $settings,
    ), 'setting');
    drupal_add_js(drupal_get_path('module', 'selectmenu') . '/js/selectmenu.js');
  }
}