* fixed bug #7222: When installing an extension that contains a new backend module...
authorIngo Renner <ingo.renner@typo3.org>
Sat, 26 Jan 2008 09:41:10 +0000 (09:41 +0000)
committerIngo Renner <ingo.renner@typo3.org>
Sat, 26 Jan 2008 09:41:10 +0000 (09:41 +0000)
git-svn-id: https://svn.typo3.org/TYPO3v4/Core/trunk@2962 709f56b5-9817-0410-a4d7-c38de5d9e867

t3lib/config_default.php
typo3/backend.php
typo3/classes/class.modulemenu.php
typo3/css/modulemenu.css
typo3/js/modulemenu.js
typo3/mod/tools/em/class.em_index.php
typo3/stylesheet.css
typo3/sysext/setup/mod/index.php
typo3/sysext/t3skin/ext_tables.php
typo3/sysext/t3skin/stylesheets/backend-style.css [new file with mode: 0644]
typo3/sysext/t3skin/stylesheets/modulemenu.css [new file with mode: 0644]

index 9dc1a3c..b2e144e 100755 (executable)
@@ -181,7 +181,8 @@ $TYPO3_CONF_VARS = Array(
                        'ShortcutMenu::render'                 => 'typo3/classes/class.shortcutmenu.php:ShortcutMenu->renderAjax',
                        'ShortcutMenu::delete'                 => 'typo3/classes/class.shortcutmenu.php:ShortcutMenu->deleteAjaxShortcut',
                        'ShortcutMenu::create'                 => 'typo3/classes/class.shortcutmenu.php:ShortcutMenu->createAjaxShortcut',
-                       'ModuleMenu::saveMenuState'            => 'typo3/classes/class.modulemenu.php:ModuleMenu->saveMenuState'
+                       'ModuleMenu::saveMenuState'            => 'typo3/classes/class.modulemenu.php:ModuleMenu->saveMenuState',
+                       'ModuleMenu::render'                   => 'typo3/classes/class.modulemenu.php:ModuleMenu->renderAjax'
                ),
        ),
        'FE' => Array(                  // Configuration for the TypoScript frontend (FE). Nothing here relates to the administration backend!
index 8b63ea1..48873aa 100644 (file)
@@ -54,6 +54,7 @@ $GLOBALS['LANG']->includeLLFile('EXT:lang/locallang_misc.xml');
 class TYPO3backend {
 
        private $content;
+       private $css;
        private $cssFiles;
        private $js;
        private $jsFiles;
@@ -101,7 +102,7 @@ class TYPO3backend {
                }
 
                        // add default BE javascript
-               $this->js = '';
+               $this->js      = '';
                $this->jsFiles = array(
                        'contrib/prototype/prototype.js',
                        'contrib/scriptaculous/scriptaculous.js?load=builder,effects,controls,dragdrop',
@@ -115,6 +116,7 @@ class TYPO3backend {
                );
 
                        // add default BE css
+               $this->css      = '';
                $this->cssFiles = array(
                        'backend-scaffolding' => 'css/backend-scaffolding.css',
                        'backend-style'       => 'css/backend-style.css',
@@ -202,19 +204,26 @@ class TYPO3backend {
                $this->generateJavascript();
                $GLOBALS['TBE_TEMPLATE']->JScode .= $GLOBALS['TBE_TEMPLATE']->wrapScriptTags($this->js);
 
-                       // abusing the JS container to add CSS
-                       // TODO fix template.php
+                       // FIXME abusing the JS container to add CSS, need to fix template.php
                foreach($this->cssFiles as $cssFileName => $cssFile) {
+                       $GLOBALS['TBE_TEMPLATE']->JScode .= '
+                       <link rel="stylesheet" type="text/css" href="'.$cssFile.'" />
+                       ';
 
-                       if(!empty($GLOBALS['TBE_STYLES'][$cssFileName])) {
-                               $cssFile = $GLOBALS['TBE_STYLES'][$cssFileName];
+                               // load addditional css files to overwrite existing core styles
+                       if(!empty($GLOBALS['TBE_STYLES']['stylesheets'][$cssFileName])) {
+                               $GLOBALS['TBE_TEMPLATE']->JScode .= '
+                       <link rel="stylesheet" type="text/css" href="'.$GLOBALS['TBE_STYLES']['stylesheets'][$cssFileName].'" />
+                               ';
                        }
+               }
 
+               if(!empty($this->css)) {
                        $GLOBALS['TBE_TEMPLATE']->JScode .= '
-                       <link rel="stylesheet" type="text/css" href="'.$cssFile.'" />
-                       ';
+                       <style type="text/css" id="internalStyle">
+                               '.$this->css.'
+                       </style>';
                }
-               // TODO add CSS from $this->css
 
                        // set document title
                $title = $TYPO3_CONF_VARS['SYS']['sitename'] ?
@@ -451,56 +460,11 @@ class TYPO3backend {
        busy.loginRefreshed();
        busy_checkLoginTimeout_timer();
 
-
        /**
-        * Highlight module:
+        * Function used to switch modules
         */
-       var currentlyHighLightedId = "";
-       var currentlyHighLighted_restoreValue = "";
-       var currentlyHighLightedMain = "";
-       function highlightModuleMenuItem(trId, mainModule)      {       //
-               currentlyHighLightedMain = mainModule;
-                       // Get document object:
-               if (top.menu && top.menu.document)      {
-                       var docObj = top.menu.document;
-                       var HLclass = mainModule ? "c-mainitem-HL" : "c-subitem-row-HL";
-               } else if (top.topmenuFrame && top.topmenuFrame.document)       {
-                       var docObj = top.topmenuFrame.document;
-                       var HLclass = mainModule ? "c-mainitem-HL" : "c-subitem-HL";
-               }
-
-               if (docObj)     {
-                               // Reset old:
-                       if (currentlyHighLightedId && docObj.getElementById(currentlyHighLightedId))    {
-                               docObj.getElementById(currentlyHighLightedId).attributes.getNamedItem("class").nodeValue = currentlyHighLighted_restoreValue;
-                       }
-                               // Set new:
-                       currentlyHighLightedId = trId;
-                       if (currentlyHighLightedId && docObj.getElementById(currentlyHighLightedId))    {
-                               var classAttribObject = docObj.getElementById(currentlyHighLightedId).attributes.getNamedItem("class");
-                               currentlyHighLighted_restoreValue = classAttribObject.nodeValue;
-                               classAttribObject.nodeValue = HLclass;
-                       }
-               }
-       }
-
-       /**
-        * Function restoring previous selection in left menu after clearing cache
-        */
-       function restoreHighlightedModuleMenuItem() {   //
-               if (currentlyHighLightedId) {
-                       highlightModuleMenuItem(currentlyHighLightedId,currentlyHighLightedMain);
-               }
-       }
-
-       '.$goToModuleSwitch.'
-
-       /**
-        * reloads the menu frame
-        */
-       function refreshMenu() {
-               top.'.$menuFrameName.'.location.href = top.'.$menuFrameName.'.document.URL
-       }
+       var currentModuleLoaded = "";
+       var goToModule = '.$goToModuleSwitch.'
 
        /**
         * Frameset Module object
index f4ddc1a..1365420 100644 (file)
 ***************************************************************/
 
 
+if(TYPO3_REQUESTTYPE & TYPO3_REQUESTTYPE_AJAX) {
+       require_once(PATH_typo3.'sysext/lang/lang.php');
+
+       $GLOBALS['LANG'] = t3lib_div::makeInstance('language');
+       $GLOBALS['LANG']->init($GLOBALS['BE_USER']->uc['lang']);
+       $GLOBALS['LANG']->includeLLFile('EXT:lang/locallang_misc.xml');
+}
+
 /**
  * class to render the TYPO3 backend menu for the modules
  *
@@ -122,9 +130,10 @@ class ModuleMenu {
        /**
         * renders the backend menu as unordered list
         *
+        * @param       boolean         optional parameter used to switch wrapping the menu in ul tags off for AJAX calls
         * @return      string          menu html code to use in the backend
         */
-       public function render() {
+       public function render($wrapInUl = true) {
                $menu    = '';
                $onBlur  = $GLOBALS['CLIENT']['FORMSTYLE'] ? 'this.blur();' : '';
 
@@ -149,7 +158,29 @@ class ModuleMenu {
                        $menu .= '</li>'."\n";
                }
 
-               return '<ul id="typo3-menu">'."\n".$menu.'</ul>'."\n";
+               return $wrapInUl ? '<ul id="typo3-menu">'."\n".$menu.'</ul>'."\n" : $menu;
+       }
+
+       /**
+        * renders the backend menu as unordered list as an AJAX response without
+        * the wrapping ul tags
+        *
+        * @param       array           array of parameters from the AJAX interface, currently unused
+        * @param       TYPO3AJAX       object of type TYPO3AJAX
+        * @return      void
+        */
+       public function renderAjax($params = array(), TYPO3AJAX &$ajaxObj = null) {
+               $menu       = $this->render(false);
+               $menuSwitch = $this->getGotoModuleJavascript();
+
+                       // JS rocks: we can just overwrite a function with a new definition.
+                       // and yes, we actually do that =)
+               $menuSwitchUpdate = '
+               <script type="text/javascript">
+                       top.goToModule = '.$menuSwitch.';
+               </script>';
+
+               $ajaxObj->addContent('typo3-menu', $menu.$menuSwitchUpdate);
        }
 
        /**
@@ -181,7 +212,7 @@ class ModuleMenu {
                                        .'</a>';
                        }
 
-                       $moduleMenu .= '<li>'.$submoduleLink.'</li>'."\n";
+                       $moduleMenu .= '<li id="'.$moduleData['cssId'].'">'.$submoduleLink.'</li>'."\n";
                }
 
                return '<ul'.($menuState ? ' style="display:none;"' : '').'>'."\n".$moduleMenu.'</ul>'."\n";
@@ -222,14 +253,14 @@ class ModuleMenu {
                        }
 
                        $modules[$moduleKey] = array(
-                               'name'    => $moduleName,
-                               'title'   => $GLOBALS['LANG']->moduleLabels['tabs'][$moduleKey],
-                               'onclick' => 'top.goToModule(\''.$moduleName.'\');',
-                               'cssId'   => $moduleCssId,
-                               'icon'    => $moduleIcon,
-                               'link'    => $moduleLink,
-                               'prefix'  => $moduleNavigationFramePrefix,
-                               'description'   => $GLOBALS['LANG']->moduleLabels['labels'][$moduleKey.'label']
+                               'name'        => $moduleName,
+                               'title'       => $GLOBALS['LANG']->moduleLabels['tabs'][$moduleKey],
+                               'onclick'     => 'top.goToModule(\''.$moduleName.'\');',
+                               'cssId'       => $moduleCssId,
+                               'icon'        => $moduleIcon,
+                               'link'        => $moduleLink,
+                               'prefix'      => $moduleNavigationFramePrefix,
+                               'description' => $GLOBALS['LANG']->moduleLabels['labels'][$moduleKey.'label']
                        );
 
                        if(is_array($moduleData['sub'])) {
@@ -411,47 +442,42 @@ class ModuleMenu {
                                                        $submoduleNavigationFrameScript = $this->appendQuestionmarkToLink($submoduleNavigationFrameScript).$subModuleData['navigationFrameScript'];
 
                                                        $javascriptCommand = '
-                                                               if (top.content.list_frame && top.fsMod.currentMainLoaded=="'.$parentModuleName.'") {
-                                                                       top.currentSubScript="'.$subModuleData['originalLink'].'";
-                                                                       top.content.list_frame.location=top.getModuleUrl(top.TS.PATH_typo3+"'.$this->appendQuestionmarkToLink($subModuleData['originalLink']).'"'.$additionalJavascript.'+additionalGetVariables);
-                                                                       if(top.currentSubNavScript!="'.$submoduleNavigationFrameScript.'") {
-                                                                               top.currentSubNavScript="'.$submoduleNavigationFrameScript.'";
-                                                                               top.content.nav_frame.location=top.getModuleUrl(top.TS.PATH_typo3+"'.$submoduleNavigationFrameScript.'");
-                                                                       }
-                                                               } else {
-                                                                       top.content.location=top.TS.PATH_typo3+(
-                                                                               top.nextLoadModuleUrl?
-                                                                               "'.($subModuleData['prefix'] ? $this->appendQuestionmarkToLink($subModuleData['link']).'&exScript=' : '').'listframe_loader.php":
-                                                                               "'.$this->appendQuestionmarkToLink($subModuleData['link']).'"'.$additionalJavascript.'+additionalGetVariables
-                                                                       );
-                                                                       top.fsMod.currentMainLoaded="'.$parentModuleName.'";
-                                                                       top.currentSubScript="'.$subModuleData['originalLink'].'";
-                                                               }
+                               if (top.content.list_frame && top.fsMod.currentMainLoaded=="'.$parentModuleName.'") {
+                                       top.currentSubScript="'.$subModuleData['originalLink'].'";
+                                       top.content.list_frame.location=top.getModuleUrl(top.TS.PATH_typo3+"'.$this->appendQuestionmarkToLink($subModuleData['originalLink']).'"'.$additionalJavascript.'+additionalGetVariables);
+                                       if(top.currentSubNavScript!="'.$submoduleNavigationFrameScript.'") {
+                                               top.currentSubNavScript="'.$submoduleNavigationFrameScript.'";
+                                               top.content.nav_frame.location=top.getModuleUrl(top.TS.PATH_typo3+"'.$submoduleNavigationFrameScript.'");
+                                       }
+                               } else {
+                                       top.content.location=top.TS.PATH_typo3+(
+                                               top.nextLoadModuleUrl?
+                                               "'.($subModuleData['prefix'] ? $this->appendQuestionmarkToLink($subModuleData['link']).'&exScript=' : '').'listframe_loader.php":
+                                               "'.$this->appendQuestionmarkToLink($subModuleData['link']).'"'.$additionalJavascript.'+additionalGetVariables
+                                       );
+                                       top.fsMod.currentMainLoaded="'.$parentModuleName.'";
+                                       top.currentSubScript="'.$subModuleData['originalLink'].'";
+                               }
                                                        ';
                                                }
 
                                                $javascriptCommand .= '
-                                                               top.highlightModuleMenuItem("'.$subModuleData['cssId'].'");
+                               top.highlightModuleMenuItem("'.$subModuleData['cssId'].'");
                                                ';
-                                               $moduleJavascriptCommands[] = "case '".$subModuleData['name']."': \n ".$javascriptCommand." \n break;";
+                                               $moduleJavascriptCommands[] = "                 case '".$subModuleData['name']."': \n ".$javascriptCommand." \n                 break;";
                                        }
                                }
                        } elseif(!$mainModuleData['subitems'] && !empty($mainModuleData['link'])) {
-                               // main module has no sub modules but instead is linked itself (doc module)
+                                       // main module has no sub modules but instead is linked itself (doc module f.e.)
                                $javascriptCommand = '
                                        top.content.location=top.getModuleUrl(top.TS.PATH_typo3+"'.$this->appendQuestionmarkToLink($mainModuleData['link']).'"+additionalGetVariables);
                                        top.highlightModuleMenuItem("'.$mainModuleData['cssId'].'", 1);
                                ';
-                               $moduleJavascriptCommands[] = "case '".$mainModuleData['name']."': \n ".$javascriptCommand." \n break;";
+                               $moduleJavascriptCommands[] = "                 case '".$mainModuleData['name']."': \n ".$javascriptCommand." \n                        break;";
                        }
                }
 
-               $javascriptCode = '
-       /**
-        * Function used to switch switch module.
-        */
-       var currentModuleLoaded = "";
-       function goToModule(modName,cMR_flag,addGetVars)        {       //
+               $javascriptCode = 'function(modName, cMR_flag, addGetVars) {
                var additionalGetVariables = "";
                if (addGetVars) additionalGetVariables = addGetVars;
 
index a0e46bc..7d6b81a 100644 (file)
@@ -44,15 +44,18 @@ TYPO3 backend menu - vertical
        width: 118px; /* considering scrollbars this is the most we can take */
        margin: 3px 0px 3px;
 }
+
 #typo3-menu li div img {
        vertical-align:top;
        margin-right:2px;
 }
+
 #typo3-menu li ul li {
        font-weight: normal;
        width: 118px;
-       padding: 1px 0px 2px 2px;
+       padding: 1px 0px 1px 2px;
        margin-left: 1px;
+       margin-bottom: 1px;
        cursor: pointer;
 }
 
@@ -60,16 +63,20 @@ TYPO3 backend menu - vertical
        text-decoration: none;
        display: block;
 }
-#typo3-menu a:hover {
-       color:green;
-       background-color:#fff;
-}
 
 #typo3-menu li ul li a img {
        float: left;
        margin-right:2px;
 }
 
+#typo3-menu li.menuSection li:hover,
+#typo3-menu li.highlighted {
+       background-color: #e3dfdb;
+}
+
+#typo3-menu li.highlighted {
+       font-weight: bold;
+}
 
 
 
index 8de99d8..9f73024 100644 (file)
 /**
  * observes clicks on menuHeader and toggles child ul
  *
- * @author     Steffen Kamper
  * @author     Ingo Renner
+ * @author     Steffen Kamper
  */
-var ModuleMenu = {
+var ModuleMenu = Class.create({
+
+       /**
+        * initially register event listeners
+        */
+       initialize: function() {
+
+                       // initialize event listeners
+               Event.observe(document, 'dom:loaded', function(){
+                       this.registerEventListeners();
+               }.bind(this));
 
+                       // initialize some variables
+               this.currentlyHighLightedMainModule = '';
+               this.currentlyHighlightedModuleId   = '';
+       },
+
+       /**
+        * registers the event listeners, can be used to re-register them after refreshing the menu
+        */
+       registerEventListeners: function() {
+               $$('#typo3-menu li.menuSection div').invoke('observe', 'click', this.toggleMenu);
+       },
+
+       /**
+        * toggles the associated submodule menu when clicking a main module header
+        */
        toggleMenu: function(event) {
                var mainModuleHeader = Event.element(event);
 
@@ -46,15 +71,68 @@ var ModuleMenu = {
                });
 
                subModulesMenu.toggle();
+       },
+
+       /**
+        * refreshes the complete module menu
+        */
+       refreshMenu: function() {
+               new Ajax.Updater('typo3-menu', TS.PATH_typo3 + 'ajax.php', {
+                       parameters   : 'ajaxID=ModuleMenu::render',
+                       asynchronous : false,
+                       evalScripts  : true
+               });
+
+               this.registerEventListeners();
+       },
+
+       /**
+        * de-highlights the old menu item and highlights the new one
+        *
+        * @param       string          css module id to highlight
+        */
+       highlightModule: function(moduleId, mainModule) {
+                       // reset the currently highlighted module
+               $$('#typo3-menu .highlighted').invoke('removeClassName', 'highlighted');
+
+                       // highlight the new one
+               $(moduleId).addClassName('highlighted');
+
+               if(undefined != mainModule) {
+                       this.currentlyHighLightedMainModule = mainModule;
+               }
+               this.currentlyHighlightedModuleId = moduleId;
        }
-}
 
-       // initialize event listening
-Event.observe(document, 'dom:loaded', function() {
-       $$('#typo3-menu li.menuSection div').each(function(mainModuleHeader) {
-               mainModuleHeader.observe('click', ModuleMenu.toggleMenu)
-       });
 });
 
+var TYPO3ModuleMenu = new ModuleMenu();
+
+
+/*******************************************************************************
+ *
+ * Backwards compatability handling down here
+ *
+ ******************************************************************************/
+
+/**
+ * Highlight module:
+ */
+var currentlyHighLightedId = '';
+var currentlyHighLighted_restoreValue = '';
+var currentlyHighLightedMain = '';
+function highlightModuleMenuItem(trId, mainModule) {
+       TYPO3ModuleMenu.highlightModule(trId, mainModule);
+
+       currentlyHighLightedId   = trId;
+       currentlyHighLightedMain = mainModule;
+}
+
+
+
+
+
+
+
 
 
index c928a2b..c290ba1 100644 (file)
@@ -416,7 +416,13 @@ class SC_mod_tools_em_index extends t3lib_SCbase {
 
                        // Reload left frame menu
                if ($this->CMD['refreshMenu']) {
-                       $this->doc->JScode .= $this->doc->wrapScriptTags('top.refreshMenu();');
+                       $this->doc->JScode .= $this->doc->wrapScriptTags('
+                               if(top.refreshMenu) {
+                                       top.refreshMenu();
+                               } else {
+                                       top.TYPO3ModuleMenu.refreshMenu();
+                               }
+                       ');
                }
 
                $this->doc->form = '<form action="index.php" method="post" name="pageform">';
index 879e8b9..6fe9a0f 100755 (executable)
@@ -460,6 +460,7 @@ TABLE.typo3-page-cols TR TD SPAN.exampleContent A { text-decoration: none; }
 TABLE#typo3-page-stdlist TR TD.c-headLine { background-color: #ABBBB4; }
 
 /* Web > List */
+TABLE.typo3-dblist { width: 98%; }
 TABLE.typo3-dblist IMG { vertical-align: middle; }
 TABLE.typo3-dblist TR TD { padding-left: 1px; padding-right: 6px; }
 TABLE.typo3-dblist TR TD.db_list_alt { background-color: #E3DFD3; }
index 563ed87..019f90a 100755 (executable)
@@ -265,10 +265,15 @@ class SC_mod_user_setup_index {
         */
        function main() {
                global $BE_USER,$LANG,$BACK_PATH,$TBE_MODULES;
-               
+
                if ($this->languageUpdate) {
                        $this->doc->JScode.= '<script language="javascript" type="text/javascript">
-       top.refreshMenu();
+       if(top.refreshMenu) {
+               top.refreshMenu();
+       } else {
+               top.TYPO3ModuleMenu.refreshMenu();
+       }
+
        if(top.shortcutFrame) {
                top.shortcutFrame.refreshShortcuts();
        }
@@ -279,12 +284,12 @@ class SC_mod_user_setup_index {
                $this->doc->JScode.= '<script language="javascript" type="text/javascript" src="'.$BACK_PATH.'md5.js"></script>';
                $this->content.= $this->doc->startPage($LANG->getLL('UserSettings'));
                $this->content.= $this->doc->header($LANG->getLL('UserSettings').' - ['.$BE_USER->user['username'].']');
-               
+
                        // Load available backend modules
                $this->loadModules = t3lib_div::makeInstance('t3lib_loadModules');
                $this->loadModules->observeWorkspaces = TRUE;
                $this->loadModules->load($TBE_MODULES);
-               
+
                        // CSH general:
                $this->content.= t3lib_BEfunc::cshItem('_MOD_user_setup', '', $GLOBALS['BACK_PATH'],'|');
 
index 2931edd..b482d02 100644 (file)
@@ -78,6 +78,8 @@ if (TYPO3_MODE=='BE') {
        #       $TBE_STYLES['stylesheet2'] = $temp_eP.'stylesheets/stylesheet.css';                                                                             // Additional stylesheet (not used by default).  Set BEFORE any in-document styles
        $TBE_STYLES['styleSheetFile_post'] = $temp_eP.'stylesheets/stylesheet_post.css';                                                                // Additional stylesheet. Set AFTER any in-document styles
        #       $TBE_STYLES['inDocStyles_TBEstyle'] = '* {text-align: right;}';                                                                         // Additional default in-document styles.
+       $TBE_STYLES['stylesheets']['modulemenu'] = $temp_eP.'stylesheets/modulemenu.css';
+       $TBE_STYLES['stylesheets']['backend-style'] = $temp_eP.'stylesheets/backend-style.css';
 
        // Alternative dimensions for frameset sizes:
        $TBE_STYLES['dims']['leftMenuFrameW']=140;              // Left menu frame width
diff --git a/typo3/sysext/t3skin/stylesheets/backend-style.css b/typo3/sysext/t3skin/stylesheets/backend-style.css
new file mode 100644 (file)
index 0000000..d306046
--- /dev/null
@@ -0,0 +1,20 @@
+/* - - - - - - - - - - - - - - - - - - - - -
+
+Title  : TYPO3 backend styles
+Author : Ingo Renner <ingo@typo3.org>
+URL    : http://typo3.org
+
+Description : styles the TYPO3 backend
+
+       $Id$
+
+- - - - - - - - - - - - - - - - - - - - - */
+
+
+/* ----- Logout ----- */
+
+#logout-button input {
+       background-color: #a2aab8;
+       color: #fff;
+       border: 1px solid #888;
+}
\ No newline at end of file
diff --git a/typo3/sysext/t3skin/stylesheets/modulemenu.css b/typo3/sysext/t3skin/stylesheets/modulemenu.css
new file mode 100644 (file)
index 0000000..46825f7
--- /dev/null
@@ -0,0 +1,28 @@
+/* - - - - - - - - - - - - - - - - - - - - -
+
+Title  : TYPO3 backend vertical menu styles
+Author : Ingo Renner <ingo@typo3.org>
+URL    : http://typo3.org
+
+Description : overwrites core styles for the module menu
+
+       $Id$
+
+- - - - - - - - - - - - - - - - - - - - - */
+
+
+/* - - - - - - - - - - - - - - - - - - - - -
+
+TYPO3 backend menu - vertical
+
+- - - - - - - - - - - - - - - - - - - - - */
+
+#typo3-menu li ul li {
+       height: 16px;
+       line-height: 16px;
+}
+
+#typo3-menu li.menuSection li:hover,
+#typo3-menu li.highlighted {
+       background-color: #d7dbe2;
+}