ability to set new themes now

This commit is contained in:
Ted Serbinski 2007-11-22 04:43:47 +00:00
parent 3d8955fb48
commit ebb1ab6ce1
7 changed files with 78 additions and 116 deletions

View File

@ -35,4 +35,5 @@ jQuery Superfish: http://users.tpg.com.au/j_birch/plugins/superfish/
- new CHANGELOG to keep track of changes
- #156256 upgrade to SuperFish 1.3
- upgrade to bgIframe 2.1.1 (for IE6 compatibility with forms)
- remove RTL option; this conflicts with other changes and is properly implemented in Drupal 6
- remove RTL option; this conflicts with other changes and is properly implemented in Drupal 6
- new option to select which theme to style SimpleMenu with, or provide a custom one

Binary file not shown.

Before

Width:  |  Height:  |  Size: 179 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 895 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 893 B

View File

@ -1,102 +1,50 @@
/* $Id$ */
#simplemenu
{
background:#ddd;
color:#333;
/* There is a version of this file commented in great detail for educational purposes here:
* http://users.tpg.com.au/j_birch/plugins/superfish/superfish.commented.css
*/
/*** ESSENTIAL STYLES ***/
#simplemenu, #simplemenu * {
margin:0;
padding:0;
border-bottom:1px solid #999;
font:11px Verdana, Helvetica, sans-serif;
left:0;
position:absolute;
top:0;
width:100%;
height:20px;
z-index:9999;
}
#simplemenu li
{
background:#ddd;
border-right:1px solid #999;
border-left:1px solid #eee;
float:left;
list-style:none;
position:relative;
margin:0;
padding:0;
z-index:9999;
text-align: left;
}
#simplemenu a
{
color:#333;
display:block;
float:left;
padding:.3em 2em .3em .6em;
text-decoration:none;
background:#ddd;
#simplemenu {
line-height:1.0;
}
#simplemenu li.expanded > a
{
background:url(right-green.gif) no-repeat 97%;
padding-right:2em;
}
#simplemenu li.root > a
{
font-weight:700;
background:url(down-green.gif) no-repeat 97%;
}
#simplemenu li ul
{
float:none;
top:-999em;
#simplemenu ul {
position:absolute;
margin:0;
padding:0;
z-index:9999;
top:-999em;
width:14em;
background:#ddd;
border:1px solid #999;
}
#simplemenu li:hover,#simplemenu li.sfHover,#simplemenu a:focus,#simplemenu a:hover,#simplemenu a:active
{
background:#3875d7;
color:#fff;
#simplemenu ul li,
#simplemenu a {
width: 100%;
}
#simplemenu li:hover ul,#simplemenu li.sfHover ul
{
left:-1px;
top:20px;
#simplemenu li {
float:left;
position:relative;
z-index:99;
}
#simplemenu li:hover li ul,#simplemenu li.sfHover li ul
{
#simplemenu a {
display:block;
}
#simplemenu li:hover ul,
ul#simplemenu li.sfHover ul {
left:0px;
top:21px;
}
#simplemenu li:hover li ul,
#simplemenu li.sfHover li ul {
top:-999em;
}
#simplemenu li li:hover ul,#simplemenu li li.sfHover ul
{
#simplemenu li li:hover ul,
ul#simplemenu li li.sfHover ul {
left:14em;
top:-1px;
width:14em;
}
#simplemenu li li
{
background:#ddd;
float:none;
border:none;
.superfish li:hover ul,
.superfish li li:hover ul {
top: -999em;
}
#simplemenu li li a
{
float:none;
padding-right:0;
}

View File

@ -24,15 +24,15 @@ $(document).ready(function() {
// Build menu
$('#simplemenu')
.append(simplemenu)
.superfish()
.find(">li[ul]")
.superfish( { speed: 'fast' } )
.find(">li:has(ul)")
.mouseover(function(){
$("ul", this).bgiframe({opacity:false});
$("ul", this).bgIframe({opacity:false});
})
.find("a")
.focus(function(){
$("ul", $("#simplemenu>li[ul]")).bgiframe({opacity:false});
});
$("ul", $(".nav>li:has(ul)")).bgIframe({opacity:false});
});
$('#simplemenu').children('li.expanded').addClass('root');
});

View File

@ -12,7 +12,7 @@
function simplemenu_menu($may_cache) {
$items = array();
if ($may_cache) {
if ($may_cache) {
$items[] = array(
'path' => 'admin/settings/simplemenu',
'title' => t('SimpleMenu'),
@ -35,16 +35,21 @@ function simplemenu_footer() {
if (user_access('view simplemenu') && !$exclusions[$theme]) {
global $theme, $custom_theme;
$path = drupal_get_path('module', 'simplemenu');
$simplemenu_theme = variable_get('simplemenu_theme', 'original');
drupal_add_css($path .'/simplemenu.css');
$settings = array(
if ($theme != 'custom') {
drupal_add_css($path .'/themes/'. $simplemenu_theme .'/'. $simplemenu_theme .'.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');
@ -69,21 +74,29 @@ function simplemenu_admin_settings() {
'#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']['simplemenu_theme'] = array(
'#type' => 'select',
'#title' => t('Theme'),
'#options' => drupal_map_assoc(array('original', 'custom')),
'#default_value' => variable_get('simplemenu_theme', 'original'),
'#description' => t('Select which theme to use. If you specify custom, you need to define CSS in your theme.')
);
$form['default_menu']['advanced'] = array(
'#type' => 'fieldset',
'#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'),
@ -91,24 +104,24 @@ function simplemenu_admin_settings() {
'#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',
'#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',
'#title' => 'Theme exclusions',
'#options' => drupal_map_assoc(array_keys(list_themes())),
'#default_value' => variable_get('simplemenu_exclusions', array()),
'#description' => t('Select which themes to <strong>not</strong> display the menu. Use this when you have a theme that displays its own admin navigation.'),
);
);
return system_settings_form($form);
}
@ -117,18 +130,18 @@ function simplemenu_admin_settings() {
*/
function simplemenu_get_menu() {
$output = '';
$menu = simplemenu_menu_tree(variable_get('simplemenu_menu', 1));
if (!$menu) {
$menu = '<li><a href="'. url('admin/settings/simplemenu') .'">'. t('No menu items found. Try a different menu as the default.') .'</a></li>';
}
$output .= simplemenu_get_devel();
$output .= $menu;
return $output;
}
}
/**
* Custom implementation of menu_tree().
@ -148,7 +161,7 @@ function simplemenu_menu_tree($pid = 1) {
}
return $output;
}
}
/**
* Custom implementation of theme_menu_tree() to call our custom menu above.
@ -157,7 +170,7 @@ function simplemenu_theme_menu_tree($pid = 1) {
if ($tree = simplemenu_menu_tree($pid)) {
return '<ul>'. $tree .'</ul>';
}
}
}
/**
* Return a list of devel module links if the module is enabled
@ -165,7 +178,7 @@ function simplemenu_theme_menu_tree($pid = 1) {
*/
function simplemenu_get_devel() {
$output = '';
if (variable_get('simplemenu_devel', 0) && module_exists('devel')) {
if (user_access('access devel information')) {
$links[] = l('Devel settings', 'admin/settings/devel', array('title' => t('Adjust module settings for devel module')));
@ -181,12 +194,12 @@ function simplemenu_get_devel() {
// True only if devel_node_access enabled.
$links[] = l('Node access summary', 'devel/node_access/summary');
}
$output = '<li class="expanded"><a href="'. url('admin/settings/devel') .'">'. t('Devel module') .'</a><ul>';
$output .= '<li class="leaf">'. implode($links, '</li><li class="leaf">') .'</li>';
$output .= '</ul></li>';
}
}
return $output;
}