Browse Source

! First level buttons are now clickable (Thanks onepiece for the code) + selected 3rd level menus have a class assigned [Bug 4770] + a bit of clean-up of template_generic_menu_dropdown_above + removed a double sub action in menu items of ?action=admin;area=theme

emanuele 13 years ago
parent
commit
ae93e92587
3 changed files with 27 additions and 21 deletions
  1. 1 1
      Sources/Admin.php
  2. 19 0
      Sources/Subs-Menu.php
  3. 7 20
      Themes/default/GenericMenu.template.php

+ 1 - 1
Sources/Admin.php

@@ -165,7 +165,7 @@ function AdminMain()
 					'label' => $txt['theme_admin'],
 					'file' => 'Themes.php',
 					'function' => 'ThemesMain',
-					'custom_url' => $scripturl . '?action=admin;area=theme;sa=admin',
+					'custom_url' => $scripturl . '?action=admin;area=theme',
 					'icon' => 'themes.gif',
 					'subsections' => array(
 						'admin' => array($txt['themeadmin_admin_title']),

+ 19 - 0
Sources/Subs-Menu.php

@@ -238,6 +238,25 @@ function createMenu($menuData, $menuOptions = array())
 	// What about the toggle url?
 	$menu_context['toggle_url'] = isset($menuOptions['toggle_url']) ? $menuOptions['toggle_url'] : $menu_context['base_url'] . (!empty($menu_context['current_area']) ? ';area=' . $menu_context['current_area'] : '') . (!empty($menu_context['current_subsection']) ? ';sa=' . $menu_context['current_subsection'] : '') . $menu_context['extra_parameters'] . ';togglebar';
 
+	// If there are sections quickly goes through all the sections to check if the base menu has an url
+	if (!empty($menu_context['current_section']))
+	{
+		$menu_context['sections'][$menu_context['current_section']]['selected'] = true;
+		$menu_context['sections'][$menu_context['current_section']]['areas'][$menu_context['current_area']]['selected'] = true;
+		if (!empty($menu_context['sections'][$menu_context['current_section']]['areas'][$menu_context['current_area']]['subsections'][$context['current_subaction']]))
+			$menu_context['sections'][$menu_context['current_section']]['areas'][$menu_context['current_area']]['subsections'][$context['current_subaction']]['selected'] = true;
+
+		foreach ($menu_context['sections'] as $section_id => $section)
+			foreach ($section['areas'] as $area_id => $area)
+			{
+				if (!isset($menu_context['sections'][$section_id]['url']))
+				{
+					$menu_context['sections'][$section_id]['url'] = isset($area['url']) ? $area['url'] : $menu_context['base_url'] . ';area=' . $area_id;
+					break;
+				}
+			}
+	}
+
 	// If we didn't find the area we were looking for go to a default one.
 	if (isset($backup_area) && empty($found_section))
 		$menu_context['current_area'] = $backup_area;

+ 7 - 20
Themes/default/GenericMenu.template.php

@@ -126,15 +126,8 @@ function template_generic_menu_dropdown_above()
 	// Main areas first.
 	foreach ($menu_context['sections'] as $section)
 	{
-		if ($section['id'] == $menu_context['current_section'])
-		{
-			echo '
-			<li><a class="active firstlevel" href="#"><span class="firstlevel">', $section['title'] , '</span></a>
-				<ul>';
-		}
-		else
-			echo '
-			<li><a class="firstlevel" href="#"><span class="firstlevel">', $section['title'] , '</span></a>
+		echo '
+			<li><a class="', !empty($section['selected']) ? 'active ' : '', 'firstlevel" href="', $section['url'], $menu_context['extra_parameters'], '"><span class="firstlevel">', $section['title'] , '</span></a>
 				<ul>';
 
 		// For every area of this section show a link to that area (bold if it's currently selected.)
@@ -148,18 +141,12 @@ function template_generic_menu_dropdown_above()
 			echo '
 					<li', (++$additional_items > 6 && !empty($area['subsections'])) ? ' class="additional_items subsections"' : (($additional_items > 6) ? ' class="additional_items"' : ((!empty($area['subsections'])) ? ' class="subsections"' : '')), '>';
 
-			// Is this the current area, or just some area?
-			if ($i == $menu_context['current_area'])
-			{
-				echo '
-						<a class="chosen" href="', (isset($area['url']) ? $area['url'] : $menu_context['base_url'] . ';area=' . $i), $menu_context['extra_parameters'], '"><span>', $area['icon'], $area['label'], !empty($area['subsections']) ? '...' : '', '</span></a>';
+			echo '
+						<a ', !empty($area['selected']) ? 'class="chosen" ' : '', 'href="', (isset($area['url']) ? $area['url'] : $menu_context['base_url'] . ';area=' . $i), $menu_context['extra_parameters'], '"><span>', $area['icon'], $area['label'], !empty($area['subsections']) ? '...' : '', '</span></a>';
 
-				if (empty($context['tabs']))
+			// Is this the current area, or just some area?
+			if (!empty($area['selected']) && empty($context['tabs']))
 					$context['tabs'] = isset($area['subsections']) ? $area['subsections'] : array();
-			}
-			else
-				echo '
-						<a href="', (isset($area['url']) ? $area['url'] : $menu_context['base_url'] . ';area=' . $i), $menu_context['extra_parameters'], '"><span>', $area['icon'], $area['label'], !empty($area['subsections']) ? '...' : '', '</span></a>';
 
 			// Is there any subsections?
 			$additional_items_sub = 0;
@@ -177,7 +164,7 @@ function template_generic_menu_dropdown_above()
 
 					echo '
 							<li', (++$additional_items_sub > 6) ? ' class="additional_items"' : '' ,'>
-								<a ', !empty($sub['selected']) ? 'class="active" ' : '', 'href="', $url, $menu_context['extra_parameters'], '"><span>', $sub['label'], '</span></a>
+								<a ', !empty($sub['selected']) ? 'class="chosen" ' : '', 'href="', $url, $menu_context['extra_parameters'], '"><span>', $sub['label'], '</span></a>
 							</li>';
 				}