Subject: [PATCH] 69210: make the MaxSubCategoriesDepth manageable via CMS
 configuration parameter at "Main Navigation (Full)" component

- set MaxSubCategoriesDepth to '0' to disable the main navigation hover menu by default
---
 .../inc/navigation/SimpleNavigationBarIndex.isml   |  8 ++++++--
 .../modules/category/CategoryNavigationIndex.isml  |  8 ++++++--
 .../component.system.mainnavigation.full.pagelet2  |  2 ++
 ...component.system.mainnavigation.full.properties |  3 ++-
 ...ent.system.mainnavigation.full_de_DE.properties |  2 ++
 ...ent.system.mainnavigation.full_fr_FR.properties |  2 ++
 .../component/system/MainNavigationFull.isml       | 14 ++++++++++++--
 7 files changed, 32 insertions(+), 7 deletions(-)

diff --git a/app_sf_responsive/staticfiles/cartridge/templates/default/inc/navigation/SimpleNavigationBarIndex.isml b/app_sf_responsive/staticfiles/cartridge/templates/default/inc/navigation/SimpleNavigationBarIndex.isml
index 35a502ea3..7d2b6950d 100644
--- a/app_sf_responsive/staticfiles/cartridge/templates/default/inc/navigation/SimpleNavigationBarIndex.isml
+++ b/app_sf_responsive/staticfiles/cartridge/templates/default/inc/navigation/SimpleNavigationBarIndex.isml
@@ -3,7 +3,11 @@
 
 <isinclude template="modules/Modules">
 
-<ispipeline pipeline="RenderPagelet-SortCatalogEntries"  params="#ParamMap(ParamEntry('CategoryFilterEntries', CategoryFilterEntries))#" alias="resultDict" />
+<ispipeline pipeline="RenderPagelet-SortCatalogEntries" params="#ParamMap(ParamEntry('CategoryFilterEntries', CategoryFilterEntries))#" alias="resultDict" />
+
+<isif condition="#NOT(isDefined(MaxSubCategoriesDepth))#">
+	<isset name="MaxSubCategoriesDepth" value="#0#" scope="request"/>
+</isif>
 
 <isset name="FilterEntries" value="#resultDict:CategoryFilterEntries#" scope="request"/>
 <isif condition="#hasLoopElements(FilterEntries)#">
@@ -12,7 +16,7 @@
 			<isCategoryNavigationIndex 
 				CategoryFilterEntry="#CategoryFilterEntry#"
 				CategoryFilterEntries="#CategoryFilterEntries#"
-				MaxSubCategoryiesDepth="#2#"
+				MaxSubCategoryiesDepth="#MaxSubCategoriesDepth#"
 			>
 		</isif>
 	</isloop>
diff --git a/app_sf_responsive/staticfiles/cartridge/templates/default/modules/category/CategoryNavigationIndex.isml b/app_sf_responsive/staticfiles/cartridge/templates/default/modules/category/CategoryNavigationIndex.isml
index d4d3d652e..6e6274c88 100644
--- a/app_sf_responsive/staticfiles/cartridge/templates/default/modules/category/CategoryNavigationIndex.isml
+++ b/app_sf_responsive/staticfiles/cartridge/templates/default/modules/category/CategoryNavigationIndex.isml
@@ -10,10 +10,14 @@
 			<a href="#URLEX(InsecureURL,'',Action('ViewStandardCatalog-Browse'), Parameter('CatalogID', CategoryFilterEntry:CatalogCategoryBO:CatalogBO:Name), Parameter('CategoryName', CategoryFilterEntry:CatalogCategory:Name))#" data-testing-id="<isprint value="#CategoryFilterEntry:CatalogCategory:Name#">-link">
 				<isprint value="#CategoryFilterEntry:CatalogCategory:DisplayName#">
 			</a>
+			
 			<!--- Mobile Dropdown Anchor --->
-			<isif condition="#CategoryFilterEntry:Count > 0#">
-				<a class="dropdown-toggle visible-xs" data-toggle="dropdown"><span class="glyphicon glyphicon-plus" ></span></a>
+			<isif condition="#(CategoryFilterEntry:Count > 0) AND (MaxSubCategoryiesDepth > CategoryFilterEntry:Level)#">
+				<a class="dropdown-toggle visible-xs" data-toggle="dropdown"><span class="glyphicon glyphicon-plus"></span></a>
+			<iselse/>
+				<a class="dropdown-toggle visible-xs"><span class="glyphicon"></span></a>
 			</isif>
+			
 			<ISSubCategoriesIndex
 				CategoryFilterEntry="#CategoryFilterEntry#"
 				RootCategoryFilterEntry="#CategoryFilterEntry#"
diff --git a/app_sf_responsive_cm/staticfiles/cartridge/pagelets/components/component.system.mainnavigation.full.pagelet2 b/app_sf_responsive_cm/staticfiles/cartridge/pagelets/components/component.system.mainnavigation.full.pagelet2
index 36cf4efca..c10a81def 100644
--- a/app_sf_responsive_cm/staticfiles/cartridge/pagelets/components/component.system.mainnavigation.full.pagelet2
+++ b/app_sf_responsive_cm/staticfiles/cartridge/pagelets/components/component.system.mainnavigation.full.pagelet2
@@ -2,6 +2,8 @@
 <pagelet:PageletModel xmlns:pagelet="http://www.intershop.de/pagelet/2010" name="component.system.mainnavigation.full.pagelet2">
   <pageletDefinitions name="Component" remoteInclude="true">
     <callParameterInterfaces referencedName="app_sf_responsive_cm:interface.header.navigation.pagelet2-Interface"/>
+    <configurationParameterDefinitions name="MaxSubCategoriesDepth" optional="true"
+        localizable="false" typeReference="bc_pmc:types.pagelet2-Text"/>
     <renderTemplate referencedName="component/system/MainNavigationFull"/>
     <renderPipeline referencedName="RenderPagelet-GetCategoriesTree"/>
   </pageletDefinitions>
diff --git a/app_sf_responsive_cm/staticfiles/cartridge/pagelets/components/component.system.mainnavigation.full.properties b/app_sf_responsive_cm/staticfiles/cartridge/pagelets/components/component.system.mainnavigation.full.properties
index f9fb3e82c..d4eac35a9 100644
--- a/app_sf_responsive_cm/staticfiles/cartridge/pagelets/components/component.system.mainnavigation.full.properties
+++ b/app_sf_responsive_cm/staticfiles/cartridge/pagelets/components/component.system.mainnavigation.full.properties
@@ -4,4 +4,5 @@ Pagelet.Component.description=Renders a main navigation that includes all visibl
 Pagelet.Component.displaygroup=System Components
 Pagelet.Component.displayname=Main Navigation (Full)
 Pagelet.Component.image=component.system.mainnavigation.full.svg
-
+ConfigurationParameter.Component.MaxSubCategoriesDepth.description=The maximum number of subcategories displayed in the main navigation area. A value of '0' disables the display of subcategories.
+ConfigurationParameter.Component.MaxSubCategoriesDepth.displayname=Maximum Subcategory Depth
diff --git a/app_sf_responsive_cm/staticfiles/cartridge/pagelets/components/component.system.mainnavigation.full_de_DE.properties b/app_sf_responsive_cm/staticfiles/cartridge/pagelets/components/component.system.mainnavigation.full_de_DE.properties
index c7e1eb9c4..97969c184 100644
--- a/app_sf_responsive_cm/staticfiles/cartridge/pagelets/components/component.system.mainnavigation.full_de_DE.properties
+++ b/app_sf_responsive_cm/staticfiles/cartridge/pagelets/components/component.system.mainnavigation.full_de_DE.properties
@@ -3,3 +3,5 @@ Pagelet.Component.description=Rendert eine Hauptnavigation, die alle sichtbaren
 Pagelet.Component.displaygroup=System-Komponenten
 Pagelet.Component.displayname=Hauptnavigation (voll)
 Pagelet.Component.image=component.system.mainnavigation.full.svg
+ConfigurationParameter.Component.MaxSubCategoriesDepth.description=Die maximale Anzahl der im Hauptnavigationsbereich angezeigten Unterkategorien. Mit dem Wert "0" wird die Anzeige von Unterkategorien deaktiviert.
+ConfigurationParameter.Component.MaxSubCategoriesDepth.displayname=Maximale Unterkategorientiefe
diff --git a/app_sf_responsive_cm/staticfiles/cartridge/pagelets/components/component.system.mainnavigation.full_fr_FR.properties b/app_sf_responsive_cm/staticfiles/cartridge/pagelets/components/component.system.mainnavigation.full_fr_FR.properties
index fcf978182..3a62b0a8c 100644
--- a/app_sf_responsive_cm/staticfiles/cartridge/pagelets/components/component.system.mainnavigation.full_fr_FR.properties
+++ b/app_sf_responsive_cm/staticfiles/cartridge/pagelets/components/component.system.mainnavigation.full_fr_FR.properties
@@ -3,3 +3,5 @@ Pagelet.Component.description=Rend une navigation principale qui inclut tous les
 Pagelet.Component.displaygroup=Composants du syst\u00E8me
 Pagelet.Component.displayname=Navigation principale (Compl\u00E8te)
 Pagelet.Component.image=component.system.mainnavigation.full.svg
+ConfigurationParameter.Component.MaxSubCategoriesDepth.description=Le nombre maximum de sous-cat\u00E9gories affich\u00E9es dans la zone de navigation principale. Une valeur de \u00AB 0 \u00BB d\u00E9sactive l'affichage des sous-cat\u00E9gories.
+ConfigurationParameter.Component.MaxSubCategoriesDepth.displayname=Profondeur maximale des sous-cat\u00E9gories
diff --git a/app_sf_responsive_cm/staticfiles/cartridge/templates/default/component/system/MainNavigationFull.isml b/app_sf_responsive_cm/staticfiles/cartridge/templates/default/component/system/MainNavigationFull.isml
index 15ff655a2..13ce58ac5 100644
--- a/app_sf_responsive_cm/staticfiles/cartridge/templates/default/component/system/MainNavigationFull.isml
+++ b/app_sf_responsive_cm/staticfiles/cartridge/templates/default/component/system/MainNavigationFull.isml
@@ -1,3 +1,13 @@
 <iscontent type="text/html" charset="UTF-8" compact="true">
- 
-<isinclude template="inc/navigation/SimpleNavigationBarIndex"/>
\ No newline at end of file
+
+<isif condition="#isDefined(PageletConfigurationParameters:MaxSubCategoriesDepth)#">
+	<%
+		try
+		{
+			getPipelineDictionary().put("MaxSubCategoriesDepth", Integer.parseInt((String)getObject("PageletConfigurationParameters:MaxSubCategoriesDepth")));
+		}
+		catch (NumberFormatException e) {}
+	%>
+</isif>
+
+<isinclude template="inc/navigation/SimpleNavigationBarIndex"/>
-- 
2.30.1.windows.1

