#114015, advanced menu settings to place menu anywhere on page, patch by Steve McKenzie, modified by me
This commit is contained in:
parent
a5022b38fc
commit
6085946d1d
@ -3,9 +3,22 @@
|
||||
$(document).ready(function() {
|
||||
// get the Drupal basepath
|
||||
var basePath = Drupal.settings.simplemenu.basePath;
|
||||
|
||||
// insert extra <br /> so menu doesn't overlap theme
|
||||
$('<ul id="simplemenu" class="clear-block"></ul>').prependTo('body');
|
||||
// get the element to add the menu to
|
||||
var element = Drupal.settings.simplemenu.element;
|
||||
var menu = '<ul id="simplemenu" class="clear-block"></ul>';
|
||||
|
||||
switch (Drupal.settings.simplemenu.placement) {
|
||||
case 'prepend':
|
||||
$(menu).prependTo(element);
|
||||
break;
|
||||
case 'append':
|
||||
$(menu).appendTo(element);
|
||||
break;
|
||||
case 'replace':
|
||||
$(element).html(menu);
|
||||
break;
|
||||
}
|
||||
|
||||
$('body').css('margin-top', '23px');
|
||||
|
||||
// Drupal menu callback
|
||||
|
@ -33,11 +33,17 @@ function simplemenu_menu($may_cache) {
|
||||
// We put this in !$may_cache so it's only added once per request
|
||||
elseif (user_access('view simplemenu')) {
|
||||
$path = drupal_get_path('module', 'simplemenu');
|
||||
drupal_add_css($path .'/simplemenu.css');
|
||||
|
||||
// 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
|
||||
drupal_add_js(array('simplemenu' => array('basePath' => base_path() . (variable_get('clean_url', 0) ? '' : '?q='))), 'setting');
|
||||
drupal_add_css($path .'/simplemenu.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($path .'/simplemenu.js');
|
||||
}
|
||||
|
||||
@ -68,6 +74,30 @@ function simplemenu_admin_settings() {
|
||||
'#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. <em>Example: body, #primary, div.my-class</em>'),
|
||||
'#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
|
||||
);
|
||||
|
||||
return system_settings_form($form);
|
||||
|
Loading…
x
Reference in New Issue
Block a user