Starting with version 3.2/4.0 DotNetNuke introduced the abstraction of the control used for navigation into the provider model. This means that sites can alter their web.config to change the default provider used e.g. change the menu to a different menu.
With its release 4 implementations of the provider were included: SolpartMenuNavigationProvider, DNNTreeNavigationProvider, DNNDropDownNavigationProvider, and DNNMenuNavigationProvider. The default web.config configuration looks like this (5.5.0)
<add name="DNNDropDownNavigationProvider" type="DotNetNuke.NavigationControl.DNNDropDownNavigationProvider, DotNetNuke.DNNDropDownNavigationProvider" providerPath="~\Providers\NavigationProviders\DNNDropDownNavigationProvider\" />
<add name="ASP2MenuNavigationProvider" type="DotNetNuke.NavigationControl.ASP2MenuNavigationProvider, DotNetNuke.ASP2MenuNavigationProvider" providerPath="~\Providers\NavigationProviders\ASP2MenuNavigationProvider\" />
<add name="DNNMenuNavigationProvider" type="DotNetNuke.NavigationControl.DNNMenuNavigationProvider, DotNetNuke.DNNMenuNavigationProvider" providerPath="~\Providers\NavigationProviders\DNNMenuNavigationProvider\" />
<add name="DNNTreeNavigationProvider" type="DotNetNuke.NavigationControl.DNNTreeNavigationProvider, DotNetNuke.DNNTreeNavigationProvider" providerPath="~\Providers\NavigationProviders\DNNTreeNavigationProvider\" />
<add name="SolpartMenuNavigationProvider" type="DotNetNuke.NavigationControl.SolpartMenuNavigationProvider, DotNetNuke.SolpartMenuNavigationProvider" providerPath="~\Providers\NavigationProviders\SolpartMenuNavigationProvider\" />
To change the site wide default to the DNNMenu
which is more modern and supported (Solpart has been deprecated and only remains as a default to support the many skins that assume that default), a user can simply update the web.config and change the default i.e.
With the 6.0 release DotNetNuke changed the default menu to use DDRMenu
Developing new provider versions
There is a document providing further details as well as the steps to create a new navigation provider available here
Please note, new providers can also take advantage of the support for CustomAttributes
that was added in 4.5.0
3rd party navigation providers
There are a number of 3rd party navigation provides, both free and commercial.Free
- DNN Garden - popular free menu which is fully templatable so can suit almost any need e.g. the superfish template is a css based unordered list. This is now included in DotNetNuke 6.
- Radmenu -you can read more about radmenu at http://www.telerik.com/products/aspnet-ajax/menu.aspx (note: theres a possibility a later version of DotNetNuke may be integrated into the core or/and used in a core skin)
- House of nuke - CSS based menu . Note, this menu has not seen development in some time and does not work in DotNetNuke 6 but a community release was created to address this.