View source
<?php
function selectmenu_init() {
if (variable_get('selectmenu_enabled', TRUE)) {
_selectmenu_add_libs();
}
}
function selectmenu_menu() {
$items = array();
$items['admin/config/user-interface/selectmenu'] = array(
'title' => 'jQuery UI selectmenu',
'description' => 'Configure jQuery UI selectmenu settings.',
'page callback' => 'drupal_get_form',
'page arguments' => array(
'selectmenu_admin_form',
),
'access arguments' => array(
'administer jquery ui selectmenu',
),
'file' => 'selectmenu.admin.inc',
);
return $items;
}
function selectmenu_permission() {
return array(
'administer jquery ui selectmenu' => array(
'title' => t('Administer jQuery UI Selectmenu'),
'description' => t('Perform administration tasks for jQuery UI Selectmenu.'),
),
);
}
function _selectmenu_prepare_ids($config_string) {
if (!isset($css_ids)) {
$css_ids = explode("\n", $config_string);
$css_ids = array_filter(array_map('trim', $css_ids));
}
return $css_ids;
}
function _selectmenu_add_libs() {
$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),
);
$selectmenu_script_options = array_filter(variable_get('selectmenu_script_options', array()), 'trim');
if (!empty($selectmenu_script_options)) {
$settings['options'] = $selectmenu_script_options;
}
global $theme;
if ($theme == variable_get('admin_theme') && variable_get('selectmenu_disable_for_admin_theme', FALSE)) {
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');
}
}
function _selectmenu_find_libs() {
return drupal_get_path('module', 'selectmenu') . '/js/jquery.ui.selectmenu';
}