'admin/settings/simplemenu', 'title' => t('SimpleMenu'), 'description' => t('Select the menu to display.'), 'callback' => 'drupal_get_form', 'callback arguments' => array('simplemenu_admin_settings'), 'access' => user_access('administer simplemenu') ); } return $items; } /** * Implementation of hook_footer() */ function simplemenu_footer() { global $theme; $exclusions = variable_get('simplemenu_exclusions', array()); if (user_access('view simplemenu') && !$exclusions[$theme]) { global $theme, $custom_theme; $path = drupal_get_path('module', 'simplemenu'); drupal_add_css($path .'/simplemenu.css'); if (variable_get('simplemenu_rtl', 0)) { drupal_add_css($path .'/simplemenu_rtl.css'); } $settings = array( // pass in base path to the JS file // url() handles appending ?q= but in this case, we need to pass in the variable so the menus work when mod_rewrite is off 'basePath' => base_path() . (variable_get('clean_url', 0) ? '' : '?q='), 'placement' => variable_get('simplemenu_element_method', 'prepend'), 'element' => variable_get('simplemenu_element', 'body') ); drupal_add_js(array('simplemenu' => $settings), 'setting'); drupal_add_js('var simplemenu = '. drupal_to_js(simplemenu_get_menu()) .';', 'inline'); drupal_add_js($path .'/simplemenu.js'); } } /** * Implementation of hook_perm(). */ function simplemenu_perm() { return array('view simplemenu', 'administer simplemenu'); } /** * SimpleMenu settings page. */ function simplemenu_admin_settings() { $form['default_menu']['simplemenu_menu'] = array( '#type' => 'select', '#title' => t('Menu'), '#options' => menu_parent_options(0), '#default_value' => variable_get('simplemenu_menu', 1), '#description' => t('Select the menu to display.') ); $form['default_menu']['simplemenu_devel'] = array( '#type' => 'checkbox', '#title' => t('Add devel module links'), '#default_value' => variable_get('simplemenu_devel', 0), '#description' => t('Add devel module links for those users that can access the devel module.') ); $form['default_menu']['advanced'] = array( '#type' => 'fieldset', '#title' => t('Advanced settings'), '#collapsible' => TRUE, '#collapsed' => TRUE ); $form['default_menu']['advanced']['simplemenu_element'] = array( '#type' => 'textfield', '#title' => t('CSS selector to attach menu to'), '#default_value' => variable_get('simplemenu_element', 'body'), '#description' => t('A valid CSS selector to attach the menu to. Example: body, #primary, div.my-class'), '#required' => TRUE ); $form['default_menu']['advanced']['simplemenu_element_method'] = array( '#type' => 'radios', '#title' => 'Attach method', '#options' => drupal_map_assoc(array('prepend', 'append', 'replace')), '#default_value' => variable_get('simplemenu_element_method', 'prepend'), '#description' => t('Choose how the menu should be attached to the above selector.'), '#required' => TRUE ); $form['default_menu']['advanced']['simplemenu_exclusions'] = array( '#type' => 'checkboxes', '#title' => 'Theme exclusions', '#options' => drupal_map_assoc(array_keys(list_themes())), '#default_value' => variable_get('simplemenu_exclusions', array()), '#description' => t('Select which themes to not display the menu. Use this when you have a theme that displays its own admin navigation.'), ); $form['default_menu']['advanced']['simplemenu_rtl'] = array( '#type' => 'checkbox', '#title' => t('Set menu orientation to RTL'), '#default_value' => variable_get('simplemenu_rtl', 0), '#description' => t('Set the orientation of the menu to RTL for Eastern languages.') ); return system_settings_form($form); } /** * Render an HTML list of links for a given menu. */ function simplemenu_get_menu() { $output = ''; $menu = simplemenu_menu_tree(variable_get('simplemenu_menu', 1)); if (!$menu) { $menu = '