<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="/rss.xsl"?><rss version="2.0"><channel><title>DotNetNuke Templated (Mega-)Menu Provider</title><link>http://dnntemplatedmenu.codeplex.com/project/feeds/rss</link><description>A derivative of the built-in DotNetNuke DNNMenu navigation provider, allowing for templated custom menu panels.  Configure one or more menu items to be displayed using a &amp;#40;built-in or custom-developed&amp;#41; template, yielding display options not before available to DotNetNuke users&amp;#33;</description><item><title>Source code checked in, #70298</title><link>http://dnntemplatedmenu.codeplex.com/SourceControl/changeset/changes/70298</link><description>Upgrade&amp;#58; New Version of LabDefaultTemplate.xaml. To upgrade your build definitions, please visit the following link&amp;#58; http&amp;#58;&amp;#47;&amp;#47;go.microsoft.com&amp;#47;fwlink&amp;#47;&amp;#63;LinkId&amp;#61;254563</description><author>Project Collection Service Accounts</author><pubDate>Mon, 01 Oct 2012 21:36:45 GMT</pubDate><guid isPermaLink="false">Source code checked in, #70298 20121001093645P</guid></item><item><title>Source code checked in, #70297</title><link>http://dnntemplatedmenu.codeplex.com/SourceControl/changeset/changes/70297</link><description>Checked in by server upgrade</description><author>Project Collection Service Accounts</author><pubDate>Mon, 01 Oct 2012 21:31:58 GMT</pubDate><guid isPermaLink="false">Source code checked in, #70297 20121001093158P</guid></item><item><title>Updated Wiki: Home</title><link>http://dnntemplatedmenu.codeplex.com/wikipage?version=21</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;DotNetNuke Templated (Mega-)Menu Navigation Provider&lt;/h1&gt;More details about this project may be found on &lt;a href="http://brandonhaynes.org" class="externalLink"&gt;my blog&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.  &lt;br /&gt;
&lt;h2&gt;Description&lt;/h2&gt;A derivative of the built-in DotNetNuke DNNMenu navigation provider, allowing for templated custom menu panels.  Configure one or more menu items to be displayed using a &amp;#40;built-in or custom-developed&amp;#41; template, yielding display options not before available to DotNetNuke users&amp;#33;&lt;br /&gt;
&lt;h2&gt;Goals&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;Allow website administrators to select from one or more pre-defined menu templates for any page&lt;/li&gt;
&lt;li&gt;Allow templates to be deployed at the installation, portal, and skin level&lt;/li&gt;
&lt;li&gt;Allow specification of both rendered HTML and CSS file attachment on a per-page basis&lt;/li&gt;
&lt;li&gt;Allow templates to be fully search engine friendly and utilize modern XHTML and CSS design&lt;/li&gt;
&lt;li&gt;Rely on default DNNMenu implementation for all other behavior&lt;/li&gt;
&lt;li&gt;Require no core changes and utilize only existing DotNetNuke extension points&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Background&lt;/h2&gt;
The &lt;a href="http://www.dotnetnuke.com" class="externalLink"&gt;DotNetNuke content management system&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; is a mature, robust, and widely-adopted web application framework.  While the framework allows for the use of myriad menu systems (through the application of the provider pattern), to date there is no way to effectuate per-page templated (&amp;quot;mega&amp;quot;) menus.&lt;br /&gt;&lt;br /&gt;This project attempts to bridge that gap by extending the DotNetNuke-default DNNMenu system to render custom templates in place of any node in the menu hierarchy.  These templates are easy to create and extend, and allow for a wide variety of final user experiences.  Several such templates are included out-of-the-box, demonstrating the flexibility of this provider extension.  For maximum flexibility, templates may be deployed by a host across an entire installation, provided as a part of a skinning package, or deployed on a per-portal basis.&lt;br /&gt;
&lt;h4&gt;What this project is...&lt;/h4&gt;This project is a derivative of the popular and DotNetNuke-included DNNMenu system included with the &lt;a href="http://www.codeplex.com/dnnwebcontrols" class="externalLink"&gt;DotNetNuke Webcontrols&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; project.  All the functionality present in that menu system may be utilized by using this provider.&lt;br /&gt;
&lt;h4&gt;What this project is not...&lt;/h4&gt;This project is NOT a new menu system for DotNetNuke.  It merely extends a small part of the functionality that already exists in the DNNMenu system.  Although it is very likely that this method may be used to extend other menu providers (I have already verified this with the &lt;a href="http://www.telerik.com/products/aspnet-ajax/menu.aspx" class="externalLink"&gt;Telerik&amp;#39;s RadMenu&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;), it does not yet do so.&lt;br /&gt;&lt;br /&gt;If any developer wishes to extend the method used herein to any other popular DotNetNuke navigation provider and would be interested in donating the code to the project, it would be greatly appreciated.&lt;br /&gt;
&lt;h2&gt;Installation instructions&lt;/h2&gt;
This provider is installed just as any other module or provider through the Host-&amp;gt;Modules menu item.  Note that the provider requires DotNetNuke version 5.0.1 or greater; ensure that your installation meets this minimum requirement before proceeding.&lt;br /&gt;
&lt;h4&gt;To install:&lt;/h4&gt;&lt;ol&gt;&lt;li&gt;Log in as a host user&lt;/li&gt;
&lt;li&gt;Install the TemplatedDNNMenuNavigationProvider install package,&lt;/li&gt;
&lt;li&gt;Optionally install the Templated MinimalExtropy skin package, or any other skin configured to utilized the templated provider,&lt;/li&gt;
&lt;li&gt;Change a page (or site) skin to use a skin that utilizes the templated provider.  &lt;/li&gt;&lt;/ol&gt;

&lt;h2&gt;Configuration and Usage&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;Navigate to the settings for the page that is the root of the menu you wish to template (e.g. the Admin page).&lt;/li&gt;
&lt;li&gt;In the Advanced-&amp;gt;Page Header Tags textbox, enter the string:&lt;/li&gt;&lt;/ul&gt;
&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
                &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuTemplate&amp;quot; content=&amp;quot;&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Return to the page you specified to use the template skin, and note that the tagged menu is now using the default template (which is not that attractive until the pages have been structured into a better hierarchy).&lt;/li&gt;
&lt;li&gt;The default template displays children in a large font; grandchildren are in a normal font.  You’ll have to use the Admin-&amp;gt;Tabs page to rearrange some tabs to see this behavior.  For example, in one of the screenshots I moved the Tabs page to be under the “Web Administration” tab.&lt;/li&gt;&lt;/ul&gt;
 &lt;br /&gt;The default template is located at /Providers/NavigationProviders/DNNTemplatedMenuNavigationProvider/Default.ascx.  You can specify an alternate template by adding its name to the content portion of the meta tag; by way of example, a tag that reads as belowwill use the Descriptions.ascx template, which displays a page’s description (if any) underneath its link.  &lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
                &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuTemplate&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;content&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;Descriptions&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;Skin designers can deploy their own templates; these may be accessed via a tag of the form:&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
                &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuTemplate&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;content&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;skin:[TemplateName]&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;Similarly, a host may provide a portal-specific template which may be accessed via:&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
                &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuTemplate&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;content&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;portal:[TemplateName]&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;Finally, the templates generally render highly similar markup (a nested hierarchy of ULs) and are differentiated primarily by CSS.  A template CSS can be specified through another meta tag, formatted as:&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
                &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuCss&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;content&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;CssFile&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;Like the template, a “portal:” or “skin:” prefix may be used; if none are specified the css is drawn from the provider directory.  The second screenshot below uses the “wide” css template.&lt;br /&gt; &lt;br /&gt;So, to reproduce the screenshots, the first uses the following metadata:&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
                &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuTemplate&amp;quot; content=&amp;quot;&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;And the second uses:&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
                &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuTemplate&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;content&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;Heading&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
                &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuCss&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;content&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;Wide&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;All other modifications required to generate a menu similar to those displayed herein are normal DotNetNuke configuration functions, such as page image selection, descriptions, hierarchy adjustments, and so on. &lt;br /&gt;
&lt;h2&gt;Templates Included in this Distribution&lt;/h2&gt;
&lt;h3&gt;Default Template&lt;/h3&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuTemplate&amp;quot; content=&amp;quot;&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;The default template is designed to display a page&amp;#39;s children as headings and grandchildren as subheadings.  Subheadings are organized into two columns.  If present, the page&amp;#39;s image is displayed alongside the page name.&lt;br /&gt;&lt;br /&gt;&lt;a href="http&amp;#58;&amp;#47;&amp;#47;blogs.law.harvard.edu&amp;#47;brandonhaynes&amp;#47;files&amp;#47;2009&amp;#47;04&amp;#47;dnnmegamenunavigationprovider.png"&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=dnnTemplatedMenu&amp;DownloadId=69964" alt="Default&amp;#32;Template&amp;#32;Screenshot" title="Default&amp;#32;Template&amp;#32;Screenshot" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;h3&gt;Descriptions Template&lt;/h3&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuTemplate&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;content&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;Descriptions&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;This template renders identically to the default template, and additionally includes the page&amp;#39;s description (if any) below the main menu headings.&lt;br /&gt;&lt;br /&gt;&lt;a href="http&amp;#58;&amp;#47;&amp;#47;blogs.law.harvard.edu&amp;#47;brandonhaynes&amp;#47;files&amp;#47;2009&amp;#47;04&amp;#47;dnnmegamenunavigationproviderdescriptionssmaller.png"&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=dnnTemplatedMenu&amp;DownloadId=70009" alt="Descriptions&amp;#32;Template&amp;#32;Screenshot" title="Descriptions&amp;#32;Template&amp;#32;Screenshot" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;h3&gt;Wide&lt;/h3&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuTemplate&amp;quot; content=&amp;quot;&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuCss&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;content&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;Wide&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;This template displays a node&amp;#39;s children as column headings, and grandchildren as subheadings organized underneath.  &lt;br /&gt;&lt;br /&gt;&lt;a href="http&amp;#58;&amp;#47;&amp;#47;blogs.law.harvard.edu&amp;#47;brandonhaynes&amp;#47;files&amp;#47;2009&amp;#47;04&amp;#47;dnnmegamenunavigationproviderwide.png"&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=dnnTemplatedMenu&amp;DownloadId=70011" alt="Default&amp;#32;Template&amp;#32;Screenshot" title="Default&amp;#32;Template&amp;#32;Screenshot" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;h3&gt;Heading&lt;/h3&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuTemplate&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;content&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;Heading&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuCss&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;content&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;Wide&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;)
&lt;/pre&gt;&lt;/div&gt;This template includes a configurable catchline at the top of the panel, and may be styled vertically or &amp;quot;wide.&amp;quot;&lt;br /&gt;&lt;br /&gt;&lt;a href="http&amp;#58;&amp;#47;&amp;#47;blogs.law.harvard.edu&amp;#47;brandonhaynes&amp;#47;files&amp;#47;2009&amp;#47;04&amp;#47;dnnmegamenunavigationproviderwide.png"&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=dnnTemplatedMenu&amp;DownloadId=69965" alt="Heading&amp;#32;Template&amp;#32;Screenshot" title="Heading&amp;#32;Template&amp;#32;Screenshot" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;h2&gt;I Want That on My Skin!&lt;/h2&gt;
It&amp;#39;s easy.  Instantiate an Admin/Skins/Nav.ascx control as:&lt;br /&gt;&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&amp;lt;%@ Register TagPrefix=&amp;quot;dnn&amp;quot; TagName=&amp;quot;NAV&amp;quot; Src=&amp;quot;~/Admin/Skins/Nav.ascx&amp;quot; %&amp;gt;

  ...

  &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;dnn&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;NAV&lt;/span&gt; &lt;span style="color:Red;"&gt;runat&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;server&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;id&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;dnnNAV&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;  &lt;span style="color:Red;"&gt;ProviderName&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;TemplatedDNNMenuNavigationProvider&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; 
        &lt;span style="color:Red;"&gt;IndicateChildren&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;false&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;ControlOrientation&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;Horizontal&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;

  ...
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;You can include any or all of the properties available on the DotNetNuke Nav control.  The templated menu provider does not directly use any of these; they are passed as-is to the underlying DNNMenu provider.  That&amp;#39;s it! &lt;br /&gt;
&lt;h2&gt;Feedback, Reviews, and Ratings Appreciated!&lt;/h2&gt;Feedback about your experiences is needed, and &lt;u&gt;greatly&lt;/u&gt; appreciated!&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>BrandonHaynes</author><pubDate>Mon, 27 Sep 2010 12:36:47 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20100927123647P</guid></item><item><title>Source code checked in, #48188</title><link>http://dnntemplatedmenu.codeplex.com/SourceControl/changeset/changes/48188</link><description>Checked in by server upgrade</description><author>_TFSSERVICE</author><pubDate>Thu, 08 Jul 2010 20:15:13 GMT</pubDate><guid isPermaLink="false">Source code checked in, #48188 20100708081513P</guid></item><item><title>Reviewed: 1.00.00 (Apr 07, 2010)</title><link>http://dnntemplatedmenu.codeplex.com/releases/view/28094#ReviewBy-regenbauma</link><description>Rated 5 Stars &amp;#40;out of 5&amp;#41; - great add-on  ....  i even documented my use of it on slideshare ... http&amp;#58;&amp;#47;&amp;#47;slidesha.re&amp;#47;bde096  </description><author>regenbauma</author><pubDate>Wed, 07 Apr 2010 17:18:26 GMT</pubDate><guid isPermaLink="false">Reviewed: 1.00.00 (Apr 07, 2010) 20100407051826P</guid></item><item><title>Updated Wiki: Home</title><link>http://dnntemplatedmenu.codeplex.com/wikipage?version=20</link><description>&lt;div class="wikidoc"&gt;&lt;a href="http://ateamdrive.org"&gt;&lt;img style="border:none;" src="http://blogs.law.harvard.edu/brandonhaynes/files/2009/12/SecondHarvest.png" alt="Second Harvest Virtual Food Drive" title="Second Harvest Virtual Food Drive" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;b&gt;Give a gift that matters at this critical time.&lt;/b&gt; If your cupboards are full, please help others who don’t know where their next meal will come from. No donation is too small; giving as little as $10 is enough to provide 20 people with the most basic human need: food. Nothing else matters when you’re hungry – support our attempt to raise $1,000 by 12/14/2009!  &lt;a href="http://ateamdrive.org/about" class="externalLink"&gt;Learn more&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; or &lt;a href="http://ateamdrive.org" class="externalLink"&gt;donate now&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;!&lt;br /&gt;
&lt;h1&gt;DotNetNuke Templated (Mega-)Menu Navigation Provider&lt;/h1&gt;More details about this project may be found on &lt;a href="http://brandonhaynes.org" class="externalLink"&gt;my blog&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.  &lt;br /&gt;
&lt;h2&gt;Description&lt;/h2&gt;A derivative of the built-in DotNetNuke DNNMenu navigation provider, allowing for templated custom menu panels.  Configure one or more menu items to be displayed using a &amp;#40;built-in or custom-developed&amp;#41; template, yielding display options not before available to DotNetNuke users&amp;#33;&lt;br /&gt;
&lt;h2&gt;Goals&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;Allow website administrators to select from one or more pre-defined menu templates for any page&lt;/li&gt;
&lt;li&gt;Allow templates to be deployed at the installation, portal, and skin level&lt;/li&gt;
&lt;li&gt;Allow specification of both rendered HTML and CSS file attachment on a per-page basis&lt;/li&gt;
&lt;li&gt;Allow templates to be fully search engine friendly and utilize modern XHTML and CSS design&lt;/li&gt;
&lt;li&gt;Rely on default DNNMenu implementation for all other behavior&lt;/li&gt;
&lt;li&gt;Require no core changes and utilize only existing DotNetNuke extension points&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Background&lt;/h2&gt;
The &lt;a href="http://www.dotnetnuke.com" class="externalLink"&gt;DotNetNuke content management system&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; is a mature, robust, and widely-adopted web application framework.  While the framework allows for the use of myriad menu systems (through the application of the provider pattern), to date there is no way to effectuate per-page templated (&amp;quot;mega&amp;quot;) menus.&lt;br /&gt;&lt;br /&gt;This project attempts to bridge that gap by extending the DotNetNuke-default DNNMenu system to render custom templates in place of any node in the menu hierarchy.  These templates are easy to create and extend, and allow for a wide variety of final user experiences.  Several such templates are included out-of-the-box, demonstrating the flexibility of this provider extension.  For maximum flexibility, templates may be deployed by a host across an entire installation, provided as a part of a skinning package, or deployed on a per-portal basis.&lt;br /&gt;
&lt;h4&gt;What this project is...&lt;/h4&gt;This project is a derivative of the popular and DotNetNuke-included DNNMenu system included with the &lt;a href="http://www.codeplex.com/dnnwebcontrols" class="externalLink"&gt;DotNetNuke Webcontrols&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; project.  All the functionality present in that menu system may be utilized by using this provider.&lt;br /&gt;
&lt;h4&gt;What this project is not...&lt;/h4&gt;This project is NOT a new menu system for DotNetNuke.  It merely extends a small part of the functionality that already exists in the DNNMenu system.  Although it is very likely that this method may be used to extend other menu providers (I have already verified this with the &lt;a href="http://www.telerik.com/products/aspnet-ajax/menu.aspx" class="externalLink"&gt;Telerik's RadMenu&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;), it does not yet do so.&lt;br /&gt;&lt;br /&gt;If any developer wishes to extend the method used herein to any other popular DotNetNuke navigation provider and would be interested in donating the code to the project, it would be greatly appreciated.&lt;br /&gt;
&lt;h2&gt;Installation instructions&lt;/h2&gt;
This provider is installed just as any other module or provider through the Host-&amp;gt;Modules menu item.  Note that the provider requires DotNetNuke version 5.0.1 or greater; ensure that your installation meets this minimum requirement before proceeding.&lt;br /&gt;
&lt;h4&gt;To install:&lt;/h4&gt;&lt;ol&gt;&lt;li&gt;Log in as a host user&lt;/li&gt;
&lt;li&gt;Install the TemplatedDNNMenuNavigationProvider install package,&lt;/li&gt;
&lt;li&gt;Optionally install the Templated MinimalExtropy skin package, or any other skin configured to utilized the templated provider,&lt;/li&gt;
&lt;li&gt;Change a page (or site) skin to use a skin that utilizes the templated provider.  &lt;/li&gt;&lt;/ol&gt;

&lt;h2&gt;Configuration and Usage&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;Navigate to the settings for the page that is the root of the menu you wish to template (e.g. the Admin page).&lt;/li&gt;
&lt;li&gt;In the Advanced-&amp;gt;Page Header Tags textbox, enter the string:&lt;/li&gt;&lt;/ul&gt;
&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
                &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuTemplate&amp;quot; content=&amp;quot;&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Return to the page you specified to use the template skin, and note that the tagged menu is now using the default template (which is not that attractive until the pages have been structured into a better hierarchy).&lt;/li&gt;
&lt;li&gt;The default template displays children in a large font; grandchildren are in a normal font.  You’ll have to use the Admin-&amp;gt;Tabs page to rearrange some tabs to see this behavior.  For example, in one of the screenshots I moved the Tabs page to be under the “Web Administration” tab.&lt;/li&gt;&lt;/ul&gt;
 &lt;br /&gt;The default template is located at /Providers/NavigationProviders/DNNTemplatedMenuNavigationProvider/Default.ascx.  You can specify an alternate template by adding its name to the content portion of the meta tag; by way of example, a tag that reads as belowwill use the Descriptions.ascx template, which displays a page’s description (if any) underneath its link.  &lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
                &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuTemplate&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;content&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;Descriptions&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;Skin designers can deploy their own templates; these may be accessed via a tag of the form:&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
                &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuTemplate&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;content&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;skin:[TemplateName]&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;Similarly, a host may provide a portal-specific template which may be accessed via:&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
                &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuTemplate&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;content&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;portal:[TemplateName]&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;Finally, the templates generally render highly similar markup (a nested hierarchy of ULs) and are differentiated primarily by CSS.  A template CSS can be specified through another meta tag, formatted as:&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
                &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuCss&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;content&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;CssFile&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;Like the template, a “portal:” or “skin:” prefix may be used; if none are specified the css is drawn from the provider directory.  The second screenshot below uses the “wide” css template.&lt;br /&gt; &lt;br /&gt;So, to reproduce the screenshots, the first uses the following metadata:&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
                &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuTemplate&amp;quot; content=&amp;quot;&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;And the second uses:&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
                &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuTemplate&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;content&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;Heading&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
                &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuCss&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;content&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;Wide&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;All other modifications required to generate a menu similar to those displayed herein are normal DotNetNuke configuration functions, such as page image selection, descriptions, hierarchy adjustments, and so on. &lt;br /&gt;
&lt;h2&gt;Templates Included in this Distribution&lt;/h2&gt;
&lt;h3&gt;Default Template&lt;/h3&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuTemplate&amp;quot; content=&amp;quot;&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;The default template is designed to display a page's children as headings and grandchildren as subheadings.  Subheadings are organized into two columns.  If present, the page's image is displayed alongside the page name.&lt;br /&gt;&lt;br /&gt;&lt;a href="http&amp;#58;&amp;#47;&amp;#47;blogs.law.harvard.edu&amp;#47;brandonhaynes&amp;#47;files&amp;#47;2009&amp;#47;04&amp;#47;dnnmegamenunavigationprovider.png"&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=dnnTemplatedMenu&amp;DownloadId=69964" alt="Default&amp;#32;Template&amp;#32;Screenshot" title="Default&amp;#32;Template&amp;#32;Screenshot" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;h3&gt;Descriptions Template&lt;/h3&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuTemplate&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;content&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;Descriptions&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;This template renders identically to the default template, and additionally includes the page's description (if any) below the main menu headings.&lt;br /&gt;&lt;br /&gt;&lt;a href="http&amp;#58;&amp;#47;&amp;#47;blogs.law.harvard.edu&amp;#47;brandonhaynes&amp;#47;files&amp;#47;2009&amp;#47;04&amp;#47;dnnmegamenunavigationproviderdescriptionssmaller.png"&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=dnnTemplatedMenu&amp;DownloadId=70009" alt="Descriptions&amp;#32;Template&amp;#32;Screenshot" title="Descriptions&amp;#32;Template&amp;#32;Screenshot" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;h3&gt;Wide&lt;/h3&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuTemplate&amp;quot; content=&amp;quot;&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuCss&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;content&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;Wide&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;This template displays a node's children as column headings, and grandchildren as subheadings organized underneath.  &lt;br /&gt;&lt;br /&gt;&lt;a href="http&amp;#58;&amp;#47;&amp;#47;blogs.law.harvard.edu&amp;#47;brandonhaynes&amp;#47;files&amp;#47;2009&amp;#47;04&amp;#47;dnnmegamenunavigationproviderwide.png"&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=dnnTemplatedMenu&amp;DownloadId=70011" alt="Default&amp;#32;Template&amp;#32;Screenshot" title="Default&amp;#32;Template&amp;#32;Screenshot" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;h3&gt;Heading&lt;/h3&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuTemplate&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;content&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;Heading&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuCss&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;content&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;Wide&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;)
&lt;/pre&gt;&lt;/div&gt;This template includes a configurable catchline at the top of the panel, and may be styled vertically or &amp;quot;wide.&amp;quot;&lt;br /&gt;&lt;br /&gt;&lt;a href="http&amp;#58;&amp;#47;&amp;#47;blogs.law.harvard.edu&amp;#47;brandonhaynes&amp;#47;files&amp;#47;2009&amp;#47;04&amp;#47;dnnmegamenunavigationproviderwide.png"&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=dnnTemplatedMenu&amp;DownloadId=69965" alt="Heading&amp;#32;Template&amp;#32;Screenshot" title="Heading&amp;#32;Template&amp;#32;Screenshot" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;h2&gt;I Want That on My Skin!&lt;/h2&gt;
It's easy.  Instantiate an Admin/Skins/Nav.ascx control as:&lt;br /&gt;&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&amp;lt;%@ Register TagPrefix=&amp;quot;dnn&amp;quot; TagName=&amp;quot;NAV&amp;quot; Src=&amp;quot;~/Admin/Skins/Nav.ascx&amp;quot; %&amp;gt;

  ...

  &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;dnn&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;NAV&lt;/span&gt; &lt;span style="color:Red;"&gt;runat&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;server&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;id&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;dnnNAV&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;  &lt;span style="color:Red;"&gt;ProviderName&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;TemplatedDNNMenuNavigationProvider&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; 
        &lt;span style="color:Red;"&gt;IndicateChildren&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;false&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;ControlOrientation&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;Horizontal&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;

  ...
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;You can include any or all of the properties available on the DotNetNuke Nav control.  The templated menu provider does not directly use any of these; they are passed as-is to the underlying DNNMenu provider.  That's it! &lt;br /&gt;
&lt;h2&gt;Feedback, Reviews, and Ratings Appreciated!&lt;/h2&gt;Feedback about your experiences is needed, and &lt;u&gt;greatly&lt;/u&gt; appreciated!&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>BrandonHaynes</author><pubDate>Wed, 09 Dec 2009 00:10:06 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20091209121006A</guid></item><item><title>New Post: How does Templated Menu run in IE8?</title><link>http://dnntemplatedmenu.codeplex.com/Thread/View.aspx?ThreadId=75997</link><description>&lt;div style="line-height: normal;"&gt;&lt;p&gt;I've recently encounted problems with sub-menus running in IE8 with sites in DNN V4.9.0 and V4.9.4 (dnn.dom.positioning.js). Can you tell me whether this module corrects those problems? Do you know if this error message is unique to DNN V4.x and has been resolved in DNN V5+ ? I've posted on the DNN forum, but haven't received any help, as yet. If you can help; or if this module solves the problem, then please let me know ASAP.&lt;/p&gt;
&lt;p&gt;Thanks in advance for any help!&lt;/p&gt;&lt;/div&gt;</description><author>dbs</author><pubDate>Mon, 23 Nov 2009 20:17:32 GMT</pubDate><guid isPermaLink="false">New Post: How does Templated Menu run in IE8? 20091123081732P</guid></item><item><title>Source code checked in, #28391</title><link>http://dnntemplatedmenu.codeplex.com/SourceControl/changeset/view/28391</link><description>Added Documents folder &amp;#40;currently empty&amp;#41;</description><author>BrandonHaynes</author><pubDate>Sun, 06 Sep 2009 13:22:22 GMT</pubDate><guid isPermaLink="false">Source code checked in, #28391 20090906012222P</guid></item><item><title>Updated Release: 1.00.00 (May 31, 2009)</title><link>http://dnntemplatedmenu.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=28094</link><description>&lt;div&gt;This is an initial release for the DotNetNuke Templated Menu Provider. It is expected to be suitable for production deployments. Feedback about user experiences are greatly appreciated!&lt;br&gt;&lt;br&gt;Documentation for deployment may be found on this site, or at &lt;a href="http://brandonhaynes.org"&gt;brandonhaynes.org&lt;span&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br&gt;&lt;br&gt;Note that this provider requires DotNetNuke version 5.0.1 or later, which may be downloaded from &lt;a href="http://dotnetnuke.com"&gt;dotnetnuke.com&lt;span&gt;&lt;/span&gt;&lt;/a&gt;.&lt;/div&gt;</description><author>BrandonHaynes</author><pubDate>Mon, 01 Jun 2009 17:43:57 GMT</pubDate><guid isPermaLink="false">Updated Release: 1.00.00 (May 31, 2009) 20090601054357P</guid></item><item><title>Released: 1.00.00 (May 31, 2009)</title><link>http://dnntemplatedmenu.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=28094</link><description>&lt;div&gt;This is an initial release for the DotNetNuke Templated Menu Provider. It is expected to be suitable for production deployments. Feedback about user experiences are greatly appreciated!&lt;br&gt;&lt;br&gt;Documentation for deployment may be found on this site, or at &lt;a href="http://brandonhaynes.org"&gt;brandonhaynes.org&lt;span&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br&gt;&lt;br&gt;Note that this provider requires DotNetNuke version 5.0.1 or later, which may be downloaded from &lt;a href="http://dotnetnuke.com"&gt;dotnetnuke.com&lt;span&gt;&lt;/span&gt;&lt;/a&gt;.&lt;/div&gt;</description><author></author><pubDate>Mon, 01 Jun 2009 17:43:57 GMT</pubDate><guid isPermaLink="false">Released: 1.00.00 (May 31, 2009) 20090601054357P</guid></item><item><title>Source code checked in, #20450</title><link>http://dnntemplatedmenu.codeplex.com/SourceControl/ListDownloadableCommits.aspx</link><description>Updated documentation that contained an incorrect example &amp;#34;Description&amp;#34; that should have read &amp;#34;Descriptions&amp;#34;</description><author>BrandonHaynes</author><pubDate>Mon, 01 Jun 2009 17:43:13 GMT</pubDate><guid isPermaLink="false">Source code checked in, #20450 20090601054313P</guid></item><item><title>Updated Wiki: Home</title><link>http://dnntemplatedmenu.codeplex.com/Wiki/View.aspx?title=Home&amp;version=19</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;DotNetNuke Templated (Mega-)Menu Navigation Provider&lt;/h1&gt;More details about this project may be found on &lt;a href="http://brandonhaynes.org" class="externalLink"&gt;my blog&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.  &lt;br /&gt;
&lt;h2&gt;Description&lt;/h2&gt;A derivative of the built-in DotNetNuke DNNMenu navigation provider, allowing for templated custom menu panels.  Configure one or more menu items to be displayed using a &amp;#40;built-in or custom-developed&amp;#41; template, yielding display options not before available to DotNetNuke users&amp;#33;&lt;br /&gt;
&lt;h2&gt;Goals&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;Allow website administrators to select from one or more pre-defined menu templates for any page&lt;/li&gt;
&lt;li&gt;Allow templates to be deployed at the installation, portal, and skin level&lt;/li&gt;
&lt;li&gt;Allow specification of both rendered HTML and CSS file attachment on a per-page basis&lt;/li&gt;
&lt;li&gt;Allow templates to be fully search engine friendly and utilize modern XHTML and CSS design&lt;/li&gt;
&lt;li&gt;Rely on default DNNMenu implementation for all other behavior&lt;/li&gt;
&lt;li&gt;Require no core changes and utilize only existing DotNetNuke extension points&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Background&lt;/h2&gt;
The &lt;a href="http://www.dotnetnuke.com" class="externalLink"&gt;DotNetNuke content management system&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; is a mature, robust, and widely-adopted web application framework.  While the framework allows for the use of myriad menu systems (through the application of the provider pattern), to date there is no way to effectuate per-page templated (&amp;quot;mega&amp;quot;) menus.&lt;br /&gt;&lt;br /&gt;This project attempts to bridge that gap by extending the DotNetNuke-default DNNMenu system to render custom templates in place of any node in the menu hierarchy.  These templates are easy to create and extend, and allow for a wide variety of final user experiences.  Several such templates are included out-of-the-box, demonstrating the flexibility of this provider extension.  For maximum flexibility, templates may be deployed by a host across an entire installation, provided as a part of a skinning package, or deployed on a per-portal basis.&lt;br /&gt;
&lt;h4&gt;What this project is...&lt;/h4&gt;This project is a derivative of the popular and DotNetNuke-included DNNMenu system included with the &lt;a href="http://www.codeplex.com/dnnwebcontrols" class="externalLink"&gt;DotNetNuke Webcontrols&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; project.  All the functionality present in that menu system may be utilized by using this provider.&lt;br /&gt;
&lt;h4&gt;What this project is not...&lt;/h4&gt;This project is NOT a new menu system for DotNetNuke.  It merely extends a small part of the functionality that already exists in the DNNMenu system.  Although it is very likely that this method may be used to extend other menu providers (I have already verified this with the &lt;a href="http://www.telerik.com/products/aspnet-ajax/menu.aspx" class="externalLink"&gt;Telerik's RadMenu&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;), it does not yet do so.&lt;br /&gt;&lt;br /&gt;If any developer wishes to extend the method used herein to any other popular DotNetNuke navigation provider and would be interested in donating the code to the project, it would be greatly appreciated.&lt;br /&gt;
&lt;h2&gt;Installation instructions&lt;/h2&gt;
This provider is installed just as any other module or provider through the Host-&amp;gt;Modules menu item.  Note that the provider requires DotNetNuke version 5.0.1 or greater; ensure that your installation meets this minimum requirement before proceeding.&lt;br /&gt;
&lt;h4&gt;To install:&lt;/h4&gt;&lt;ol&gt;&lt;li&gt;Log in as a host user&lt;/li&gt;
&lt;li&gt;Install the TemplatedDNNMenuNavigationProvider install package,&lt;/li&gt;
&lt;li&gt;Optionally install the Templated MinimalExtropy skin package, or any other skin configured to utilized the templated provider,&lt;/li&gt;
&lt;li&gt;Change a page (or site) skin to use a skin that utilizes the templated provider.  &lt;/li&gt;&lt;/ol&gt;

&lt;h2&gt;Configuration and Usage&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;Navigate to the settings for the page that is the root of the menu you wish to template (e.g. the Admin page).&lt;/li&gt;
&lt;li&gt;In the Advanced-&amp;gt;Page Header Tags textbox, enter the string:&lt;/li&gt;&lt;/ul&gt;
&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
                &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuTemplate&amp;quot; content=&amp;quot;&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Return to the page you specified to use the template skin, and note that the tagged menu is now using the default template (which is not that attractive until the pages have been structured into a better hierarchy).&lt;/li&gt;
&lt;li&gt;The default template displays children in a large font; grandchildren are in a normal font.  You’ll have to use the Admin-&amp;gt;Tabs page to rearrange some tabs to see this behavior.  For example, in one of the screenshots I moved the Tabs page to be under the “Web Administration” tab.&lt;/li&gt;&lt;/ul&gt;
 &lt;br /&gt;The default template is located at /Providers/NavigationProviders/DNNTemplatedMenuNavigationProvider/Default.ascx.  You can specify an alternate template by adding its name to the content portion of the meta tag; by way of example, a tag that reads as belowwill use the Descriptions.ascx template, which displays a page’s description (if any) underneath its link.  &lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
                &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuTemplate&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;content&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;Descriptions&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;Skin designers can deploy their own templates; these may be accessed via a tag of the form:&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
                &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuTemplate&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;content&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;skin:[TemplateName]&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;Similarly, a host may provide a portal-specific template which may be accessed via:&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
                &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuTemplate&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;content&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;portal:[TemplateName]&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;Finally, the templates generally render highly similar markup (a nested hierarchy of ULs) and are differentiated primarily by CSS.  A template CSS can be specified through another meta tag, formatted as:&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
                &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuCss&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;content&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;CssFile&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;Like the template, a “portal:” or “skin:” prefix may be used; if none are specified the css is drawn from the provider directory.  The second screenshot below uses the “wide” css template.&lt;br /&gt; &lt;br /&gt;So, to reproduce the screenshots, the first uses the following metadata:&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
                &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuTemplate&amp;quot; content=&amp;quot;&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;And the second uses:&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
                &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuTemplate&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;content&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;Heading&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
                &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuCss&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;content&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;Wide&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;All other modifications required to generate a menu similar to those displayed herein are normal DotNetNuke configuration functions, such as page image selection, descriptions, hierarchy adjustments, and so on. &lt;br /&gt;
&lt;h2&gt;Templates Included in this Distribution&lt;/h2&gt;
&lt;h3&gt;Default Template&lt;/h3&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuTemplate&amp;quot; content=&amp;quot;&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;The default template is designed to display a page's children as headings and grandchildren as subheadings.  Subheadings are organized into two columns.  If present, the page's image is displayed alongside the page name.&lt;br /&gt;&lt;br /&gt;&lt;a href="http&amp;#58;&amp;#47;&amp;#47;blogs.law.harvard.edu&amp;#47;brandonhaynes&amp;#47;files&amp;#47;2009&amp;#47;04&amp;#47;dnnmegamenunavigationprovider.png"&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=dnnTemplatedMenu&amp;DownloadId=69964" alt="Default&amp;#32;Template&amp;#32;Screenshot" title="Default&amp;#32;Template&amp;#32;Screenshot" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;h3&gt;Descriptions Template&lt;/h3&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuTemplate&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;content&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;Descriptions&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;This template renders identically to the default template, and additionally includes the page's description (if any) below the main menu headings.&lt;br /&gt;&lt;br /&gt;&lt;a href="http&amp;#58;&amp;#47;&amp;#47;blogs.law.harvard.edu&amp;#47;brandonhaynes&amp;#47;files&amp;#47;2009&amp;#47;04&amp;#47;dnnmegamenunavigationproviderdescriptionssmaller.png"&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=dnnTemplatedMenu&amp;DownloadId=70009" alt="Descriptions&amp;#32;Template&amp;#32;Screenshot" title="Descriptions&amp;#32;Template&amp;#32;Screenshot" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;h3&gt;Wide&lt;/h3&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuTemplate&amp;quot; content=&amp;quot;&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuCss&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;content&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;Wide&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;This template displays a node's children as column headings, and grandchildren as subheadings organized underneath.  &lt;br /&gt;&lt;br /&gt;&lt;a href="http&amp;#58;&amp;#47;&amp;#47;blogs.law.harvard.edu&amp;#47;brandonhaynes&amp;#47;files&amp;#47;2009&amp;#47;04&amp;#47;dnnmegamenunavigationproviderwide.png"&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=dnnTemplatedMenu&amp;DownloadId=70011" alt="Default&amp;#32;Template&amp;#32;Screenshot" title="Default&amp;#32;Template&amp;#32;Screenshot" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;h3&gt;Heading&lt;/h3&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuTemplate&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;content&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;Heading&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuCss&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;content&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;Wide&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;)
&lt;/pre&gt;&lt;/div&gt;This template includes a configurable catchline at the top of the panel, and may be styled vertically or &amp;quot;wide.&amp;quot;&lt;br /&gt;&lt;br /&gt;&lt;a href="http&amp;#58;&amp;#47;&amp;#47;blogs.law.harvard.edu&amp;#47;brandonhaynes&amp;#47;files&amp;#47;2009&amp;#47;04&amp;#47;dnnmegamenunavigationproviderwide.png"&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=dnnTemplatedMenu&amp;DownloadId=69965" alt="Heading&amp;#32;Template&amp;#32;Screenshot" title="Heading&amp;#32;Template&amp;#32;Screenshot" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;h2&gt;I Want That on My Skin!&lt;/h2&gt;
It's easy.  Instantiate an Admin/Skins/Nav.ascx control as:&lt;br /&gt;&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&amp;lt;%@ Register TagPrefix=&amp;quot;dnn&amp;quot; TagName=&amp;quot;NAV&amp;quot; Src=&amp;quot;~/Admin/Skins/Nav.ascx&amp;quot; %&amp;gt;

  ...

  &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;dnn&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;NAV&lt;/span&gt; &lt;span style="color:Red;"&gt;runat&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;server&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;id&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;dnnNAV&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;  &lt;span style="color:Red;"&gt;ProviderName&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;TemplatedDNNMenuNavigationProvider&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; 
        &lt;span style="color:Red;"&gt;IndicateChildren&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;false&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;ControlOrientation&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;Horizontal&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;

  ...
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;You can include any or all of the properties available on the DotNetNuke Nav control.  The templated menu provider does not directly use any of these; they are passed as-is to the underlying DNNMenu provider.  That's it! &lt;br /&gt;
&lt;h2&gt;Feedback, Reviews, and Ratings Appreciated!&lt;/h2&gt;Feedback about your experiences is needed, and &lt;u&gt;greatly&lt;/u&gt; appreciated!&lt;/div&gt;</description><author>BrandonHaynes</author><pubDate>Mon, 01 Jun 2009 17:38:20 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20090601053820P</guid></item><item><title>Source code checked in, #20395</title><link>http://dnntemplatedmenu.codeplex.com/SourceControl/ListDownloadableCommits.aspx</link><description>1.00.00 Release&amp;#59; minor configuration tweaks</description><author>BrandonHaynes</author><pubDate>Sun, 31 May 2009 23:29:26 GMT</pubDate><guid isPermaLink="false">Source code checked in, #20395 20090531112926P</guid></item><item><title>Updated Release: 1.00.00 (May 31, 2009)</title><link>http://dnntemplatedmenu.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=28094</link><description>&lt;div&gt;This is an initial release for the DotNetNuke Templated Menu Provider. It is expected to be suitable for production deployments. Feedback about user experiences are greatly appreciated!&lt;br&gt;&lt;br&gt;Documentation for deployment may be found on this site, or at &lt;a href="http://brandonhaynes.org"&gt;brandonhaynes.org&lt;span&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br&gt;&lt;br&gt;Note that this provider requires DotNetNuke version 5.0.1 or later, which may be downloaded from &lt;a href="http://dotnetnuke.com"&gt;dotnetnuke.com&lt;span&gt;&lt;/span&gt;&lt;/a&gt;.&lt;/div&gt;</description><author>BrandonHaynes</author><pubDate>Sun, 31 May 2009 23:27:44 GMT</pubDate><guid isPermaLink="false">Updated Release: 1.00.00 (May 31, 2009) 20090531112744P</guid></item><item><title>Released: 1.00.00 (May 31, 2009)</title><link>http://dnntemplatedmenu.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=28094</link><description>&lt;div&gt;This is an initial release for the DotNetNuke Templated Menu Provider. It is expected to be suitable for production deployments. Feedback about user experiences are greatly appreciated!&lt;br&gt;&lt;br&gt;Documentation for deployment may be found on this site, or at &lt;a href="http://brandonhaynes.org"&gt;brandonhaynes.org&lt;span&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br&gt;&lt;br&gt;Note that this provider requires DotNetNuke version 5.0.1 or later, which may be downloaded from &lt;a href="http://dotnetnuke.com"&gt;dotnetnuke.com&lt;span&gt;&lt;/span&gt;&lt;/a&gt;.&lt;/div&gt;</description><author></author><pubDate>Sun, 31 May 2009 23:27:44 GMT</pubDate><guid isPermaLink="false">Released: 1.00.00 (May 31, 2009) 20090531112744P</guid></item><item><title>Created Release: 1.00.00 (May 31, 2009)</title><link>http://dnntemplatedmenu.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=28094</link><description>&lt;div&gt;This is an initial release for the DotNetNuke Templated Menu Provider. It is expected to be suitable for production deployments. Feedback about user experiences are greatly appreciated!&lt;br&gt;&lt;br&gt;Documentation for deployment may be found on this site, or at &lt;a href="http://brandonhaynes.org"&gt;brandonhaynes.org&lt;span&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br&gt;&lt;br&gt;Note that this provider requires DotNetNuke version 5.0.1 or later, which may be downloaded from &lt;a href="http://dotnetnuke.com"&gt;dotnetnuke.com&lt;span&gt;&lt;/span&gt;&lt;/a&gt;.&lt;/div&gt;</description><author>BrandonHaynes</author><pubDate>Sun, 31 May 2009 23:25:43 GMT</pubDate><guid isPermaLink="false">Created Release: 1.00.00 (May 31, 2009) 20090531112543P</guid></item><item><title>Updated Wiki: Home</title><link>http://dnntemplatedmenu.codeplex.com/Wiki/View.aspx?title=Home&amp;version=18</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;DotNetNuke Templated (Mega-)Menu Navigation Provider&lt;/h1&gt;More details about this project may be found on &lt;a href="http://brandonhaynes.org" class="externalLink"&gt;my blog&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.  &lt;br /&gt;
&lt;h2&gt;Description&lt;/h2&gt;A derivative of the built-in DotNetNuke DNNMenu navigation provider, allowing for templated custom menu panels.  Configure one or more menu items to be displayed using a &amp;#40;built-in or custom-developed&amp;#41; template, yielding display options not before available to DotNetNuke users&amp;#33;&lt;br /&gt;
&lt;h2&gt;Goals&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;Allow website administrators to select from one or more pre-defined menu templates for any page&lt;/li&gt;
&lt;li&gt;Allow templates to be deployed at the installation, portal, and skin level&lt;/li&gt;
&lt;li&gt;Allow specification of both rendered HTML and CSS file attachment on a per-page basis&lt;/li&gt;
&lt;li&gt;Allow templates to be fully search engine friendly and utilize modern XHTML and CSS design&lt;/li&gt;
&lt;li&gt;Rely on default DNNMenu implementation for all other behavior&lt;/li&gt;
&lt;li&gt;Require no core changes and utilize only existing DotNetNuke extension points&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Background&lt;/h2&gt;
The &lt;a href="http://www.dotnetnuke.com" class="externalLink"&gt;DotNetNuke content management system&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; is a mature, robust, and widely-adopted web application framework.  While the framework allows for the use of myriad menu systems (through the application of the provider pattern), to date there is no way to effectuate per-page templated (&amp;quot;mega&amp;quot;) menus.&lt;br /&gt;&lt;br /&gt;This project attempts to bridge that gap by extending the DotNetNuke-default DNNMenu system to render custom templates in place of any node in the menu hierarchy.  These templates are easy to create and extend, and allow for a wide variety of final user experiences.  Several such templates are included out-of-the-box, demonstrating the flexibility of this provider extension.  For maximum flexibility, templates may be deployed by a host across an entire installation, provided as a part of a skinning package, or deployed on a per-portal basis.&lt;br /&gt;
&lt;h4&gt;What this project is...&lt;/h4&gt;This project is a derivative of the popular and DotNetNuke-included DNNMenu system included with the &lt;a href="http://www.codeplex.com/dnnwebcontrols" class="externalLink"&gt;DotNetNuke Webcontrols&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; project.  All the functionality present in that menu system may be utilized by using this provider.&lt;br /&gt;
&lt;h4&gt;What this project is not...&lt;/h4&gt;This project is NOT a new menu system for DotNetNuke.  It merely extends a small part of the functionality that already exists in the DNNMenu system.  Although it is very likely that this method may be used to extend other menu providers (I have already verified this with the &lt;a href="http://www.telerik.com/products/aspnet-ajax/menu.aspx" class="externalLink"&gt;Telerik's RadMenu&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;), it does not yet do so.&lt;br /&gt;&lt;br /&gt;If any developer wishes to extend the method used herein to any other popular DotNetNuke navigation provider and would be interested in donating the code to the project, it would be greatly appreciated.&lt;br /&gt;
&lt;h2&gt;Installation instructions&lt;/h2&gt;
This provider is installed just as any other module or provider through the Host-&amp;gt;Modules menu item.  Note that the provider requires DotNetNuke version 5.0.1 or greater; ensure that your installation meets this minimum requirement before proceeding.&lt;br /&gt;
&lt;h4&gt;To install:&lt;/h4&gt;&lt;ol&gt;&lt;li&gt;Log in as a host user&lt;/li&gt;
&lt;li&gt;Install the TemplatedDNNMenuNavigationProvider install package,&lt;/li&gt;
&lt;li&gt;Optionally install the Templated MinimalExtropy skin package, or any other skin configured to utilized the templated provider,&lt;/li&gt;
&lt;li&gt;Change a page (or site) skin to use a skin that utilizes the templated provider.  &lt;/li&gt;&lt;/ol&gt;

&lt;h2&gt;Configuration and Usage&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;Navigate to the settings for the page that is the root of the menu you wish to template (e.g. the Admin page).&lt;/li&gt;
&lt;li&gt;In the Advanced-&amp;gt;Page Header Tags textbox, enter the string:&lt;/li&gt;&lt;/ul&gt;
&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
                &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuTemplate&amp;quot; content=&amp;quot;&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Return to the page you specified to use the template skin, and note that the tagged menu is now using the default template (which is not that attractive until the pages have been structured into a better hierarchy).&lt;/li&gt;
&lt;li&gt;The default template displays children in a large font; grandchildren are in a normal font.  You’ll have to use the Admin-&amp;gt;Tabs page to rearrange some tabs to see this behavior.  For example, in one of the screenshots I moved the Tabs page to be under the “Web Administration” tab.&lt;/li&gt;&lt;/ul&gt;
 &lt;br /&gt;The default template is located at /Providers/NavigationProviders/DNNTemplatedMenuNavigationProvider/Default.ascx.  You can specify an alternate template by adding its name to the content portion of the meta tag; by way of example, a tag that reads as belowwill use the Descriptions.ascx template, which displays a page’s description (if any) underneath its link.  &lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
                &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuTemplate&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;content&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;Description&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;Skin designers can deploy their own templates; these may be accessed via a tag of the form:&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
                &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuTemplate&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;content&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;skin:[TemplateName]&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;Similarly, a host may provide a portal-specific template which may be accessed via:&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
                &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuTemplate&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;content&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;portal:[TemplateName]&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;Finally, the templates generally render highly similar markup (a nested hierarchy of ULs) and are differentiated primarily by CSS.  A template CSS can be specified through another meta tag, formatted as:&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
                &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuCss&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;content&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;CssFile&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;Like the template, a “portal:” or “skin:” prefix may be used; if none are specified the css is drawn from the provider directory.  The second screenshot below uses the “wide” css template.&lt;br /&gt; &lt;br /&gt;So, to reproduce the screenshots, the first uses the following metadata:&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
                &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuTemplate&amp;quot; content=&amp;quot;&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;And the second uses:&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
                &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuTemplate&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;content&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;Heading&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
                &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuCss&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;content&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;Wide&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;All other modifications required to generate a menu similar to those displayed herein are normal DotNetNuke configuration functions, such as page image selection, descriptions, hierarchy adjustments, and so on. &lt;br /&gt;
&lt;h2&gt;Templates Included in this Distribution&lt;/h2&gt;
&lt;h3&gt;Default Template&lt;/h3&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuTemplate&amp;quot; content=&amp;quot;&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;The default template is designed to display a page's children as headings and grandchildren as subheadings.  Subheadings are organized into two columns.  If present, the page's image is displayed alongside the page name.&lt;br /&gt;&lt;br /&gt;&lt;a href="http&amp;#58;&amp;#47;&amp;#47;blogs.law.harvard.edu&amp;#47;brandonhaynes&amp;#47;files&amp;#47;2009&amp;#47;04&amp;#47;dnnmegamenunavigationprovider.png"&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=dnnTemplatedMenu&amp;DownloadId=69964" alt="Default&amp;#32;Template&amp;#32;Screenshot" title="Default&amp;#32;Template&amp;#32;Screenshot" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;h3&gt;Descriptions Template&lt;/h3&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuTemplate&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;content&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;Descriptions&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;This template renders identically to the default template, and additionally includes the page's description (if any) below the main menu headings.&lt;br /&gt;&lt;br /&gt;&lt;a href="http&amp;#58;&amp;#47;&amp;#47;blogs.law.harvard.edu&amp;#47;brandonhaynes&amp;#47;files&amp;#47;2009&amp;#47;04&amp;#47;dnnmegamenunavigationproviderdescriptionssmaller.png"&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=dnnTemplatedMenu&amp;DownloadId=70009" alt="Descriptions&amp;#32;Template&amp;#32;Screenshot" title="Descriptions&amp;#32;Template&amp;#32;Screenshot" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;h3&gt;Wide&lt;/h3&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuTemplate&amp;quot; content=&amp;quot;&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuCss&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;content&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;Wide&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;This template displays a node's children as column headings, and grandchildren as subheadings organized underneath.  &lt;br /&gt;&lt;br /&gt;&lt;a href="http&amp;#58;&amp;#47;&amp;#47;blogs.law.harvard.edu&amp;#47;brandonhaynes&amp;#47;files&amp;#47;2009&amp;#47;04&amp;#47;dnnmegamenunavigationproviderwide.png"&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=dnnTemplatedMenu&amp;DownloadId=70011" alt="Default&amp;#32;Template&amp;#32;Screenshot" title="Default&amp;#32;Template&amp;#32;Screenshot" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;h3&gt;Heading&lt;/h3&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuTemplate&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;content&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;Heading&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuCss&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;content&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;Wide&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;)
&lt;/pre&gt;&lt;/div&gt;This template includes a configurable catchline at the top of the panel, and may be styled vertically or &amp;quot;wide.&amp;quot;&lt;br /&gt;&lt;br /&gt;&lt;a href="http&amp;#58;&amp;#47;&amp;#47;blogs.law.harvard.edu&amp;#47;brandonhaynes&amp;#47;files&amp;#47;2009&amp;#47;04&amp;#47;dnnmegamenunavigationproviderwide.png"&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=dnnTemplatedMenu&amp;DownloadId=69965" alt="Heading&amp;#32;Template&amp;#32;Screenshot" title="Heading&amp;#32;Template&amp;#32;Screenshot" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;h2&gt;I Want That on My Skin!&lt;/h2&gt;
It's easy.  Instantiate an Admin/Skins/Nav.ascx control as:&lt;br /&gt;&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&amp;lt;%@ Register TagPrefix=&amp;quot;dnn&amp;quot; TagName=&amp;quot;NAV&amp;quot; Src=&amp;quot;~/Admin/Skins/Nav.ascx&amp;quot; %&amp;gt;

  ...

  &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;dnn&lt;/span&gt;&lt;span style="color:Blue;"&gt;:&lt;/span&gt;&lt;span style="color:#A31515;"&gt;NAV&lt;/span&gt; &lt;span style="color:Red;"&gt;runat&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;server&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;id&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;dnnNAV&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;  &lt;span style="color:Red;"&gt;ProviderName&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;TemplatedDNNMenuNavigationProvider&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; 
        &lt;span style="color:Red;"&gt;IndicateChildren&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;false&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;ControlOrientation&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;Horizontal&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;

  ...
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;You can include any or all of the properties available on the DotNetNuke Nav control.  The templated menu provider does not directly use any of these; they are passed as-is to the underlying DNNMenu provider.  That's it! &lt;br /&gt;
&lt;h2&gt;Feedback, Reviews, and Ratings Appreciated!&lt;/h2&gt;Feedback about your experiences is needed, and &lt;u&gt;greatly&lt;/u&gt; appreciated!&lt;/div&gt;</description><author>BrandonHaynes</author><pubDate>Sun, 31 May 2009 23:19:12 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20090531111912P</guid></item><item><title>Updated Wiki: Home</title><link>http://dnntemplatedmenu.codeplex.com/Wiki/View.aspx?title=Home&amp;version=17</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;DotNetNuke Templated (Mega-)Menu Navigation Provider&lt;/h1&gt;More details about this project may be found on &lt;a href="http://brandonhaynes.org" class="externalLink"&gt;my blog&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.  &lt;br /&gt;
&lt;h2&gt;Description&lt;/h2&gt;A derivative of the built-in DotNetNuke DNNMenu navigation provider, allowing for templated custom menu panels.  Configure one or more menu items to be displayed using a &amp;#40;built-in or custom-developed&amp;#41; template, yielding display options not before available to DotNetNuke users&amp;#33;&lt;br /&gt;
&lt;h2&gt;Goals&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;Allow website administrators to select from one or more pre-defined menu templates for any page&lt;/li&gt;
&lt;li&gt;Allow templates to be deployed at the installation, portal, and skin level&lt;/li&gt;
&lt;li&gt;Allow specification of both rendered HTML and CSS file attachment on a per-page basis&lt;/li&gt;
&lt;li&gt;Allow templates to be fully search engine friendly and utilize modern XHTML and CSS design&lt;/li&gt;
&lt;li&gt;Rely on default DNNMenu implementation for all other behavior&lt;/li&gt;
&lt;li&gt;Require no core changes and utilize only existing DotNetNuke extension points&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Background&lt;/h2&gt;
The &lt;a href="http://www.dotnetnuke.com" class="externalLink"&gt;DotNetNuke content management system&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; is a mature, robust, and widely-adopted web application framework.  While the framework allows for the use of myriad menu systems (through the application of the provider pattern), to date there is no way to effectuate per-page templated (&amp;quot;mega&amp;quot;) menus.&lt;br /&gt;&lt;br /&gt;This project attempts to bridge that gap by extending the DotNetNuke-default DNNMenu system to render custom templates in place of any node in the menu hierarchy.  These templates are easy to create and extend, and allow for a wide variety of final user experiences.  Several such templates are included out-of-the-box, demonstrating the flexibility of this provider extension.  For maximum flexibility, templates may be deployed by a host across an entire installation, provided as a part of a skinning package, or deployed on a per-portal basis.&lt;br /&gt;
&lt;h4&gt;What this project is...&lt;/h4&gt;This project is a derivative of the popular and DotNetNuke-included DNNMenu system included with the &lt;a href="http://www.codeplex.com/dnnwebcontrols" class="externalLink"&gt;DotNetNuke Webcontrols&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; project.  All the functionality present in that menu system may be utilized by using this provider.&lt;br /&gt;
&lt;h4&gt;What this project is not...&lt;/h4&gt;This project is NOT a new menu system for DotNetNuke.  It merely extends a small part of the functionality that already exists in the DNNMenu system.  Although it is very likely that this method may be used to extend other menu providers (I have already verified this with the &lt;a href="http://www.telerik.com/products/aspnet-ajax/menu.aspx" class="externalLink"&gt;Telerik's RadMenu&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;), it does not yet do so.&lt;br /&gt;&lt;br /&gt;If any developer wishes to extend the method used herein to any other popular DotNetNuke navigation provider and would be interested in donating the code to the project, it would be greatly appreciated.&lt;br /&gt;
&lt;h2&gt;Installation instructions&lt;/h2&gt;
This provider is installed just as any other module or provider through the Host-&amp;gt;Modules menu item.  Note that the provider requires DotNetNuke version 5.0.1 or greater; ensure that your installation meets this minimum requirement before proceeding.&lt;br /&gt;
&lt;h4&gt;To install:&lt;/h4&gt;&lt;ol&gt;&lt;li&gt;Log in as a host user&lt;/li&gt;
&lt;li&gt;Install the TemplatedDNNMenuNavigationProvider install package,&lt;/li&gt;
&lt;li&gt;Optionally install the Templated MinimalExtropy skin package, or any other skin configured to utilized the templated provider,&lt;/li&gt;
&lt;li&gt;Change a page (or site) skin to use a skin that utilizes the templated provider.  &lt;/li&gt;&lt;/ol&gt;

&lt;h2&gt;Configuration and Usage&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;Navigate to the settings for the page that is the root of the menu you wish to template (e.g. the Admin page).&lt;/li&gt;
&lt;li&gt;In the Advanced-&amp;gt;Page Header Tags textbox, enter the string:&lt;/li&gt;&lt;/ul&gt;
&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
                &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuTemplate&amp;quot; content=&amp;quot;&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Return to the page you specified to use the template skin, and note that the tagged menu is now using the default template (which is not that attractive until the pages have been structured into a better hierarchy).&lt;/li&gt;
&lt;li&gt;The default template displays children in a large font; grandchildren are in a normal font.  You’ll have to use the Admin-&amp;gt;Tabs page to rearrange some tabs to see this behavior.  For example, in one of the screenshots I moved the Tabs page to be under the “Web Administration” tab.&lt;/li&gt;&lt;/ul&gt;
 &lt;br /&gt;The default template is located at /Providers/NavigationProviders/DNNTemplatedMenuNavigationProvider/Default.ascx.  You can specify an alternate template by adding its name to the content portion of the meta tag; by way of example, a tag that reads as belowwill use the Descriptions.ascx template, which displays a page’s description (if any) underneath its link.  &lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
                &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuTemplate&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;content&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;Description&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;Skin designers can deploy their own templates; these may be accessed via a tag of the form:&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
                &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuTemplate&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;content&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;skin:[TemplateName]&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;Similarly, a host may provide a portal-specific template which may be accessed via:&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
                &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuTemplate&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;content&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;portal:[TemplateName]&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;Finally, the templates generally render highly similar markup (a nested hierarchy of ULs) and are differentiated primarily by CSS.  A template CSS can be specified through another meta tag, formatted as:&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
                &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuCss&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;content&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;CssFile&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;Like the template, a “portal:” or “skin:” prefix may be used; if none are specified the css is drawn from the provider directory.  The second screenshot below uses the “wide” css template.&lt;br /&gt; &lt;br /&gt;So, to reproduce the screenshots, the first uses the following metadata:&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
                &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuTemplate&amp;quot; content=&amp;quot;&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;And the second uses:&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
                &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuTemplate&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;content&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;Heading&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
                &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuCss&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;content&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;Wide&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;All other modifications required to generate a menu similar to those displayed herein are normal DotNetNuke configuration functions, such as page image selection, descriptions, hierarchy adjustments, and so on. &lt;br /&gt;
&lt;h2&gt;Templates Included in this Distribution&lt;/h2&gt;
&lt;h3&gt;Default Template&lt;/h3&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuTemplate&amp;quot; content=&amp;quot;&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;The default template is designed to display a page's children as headings and grandchildren as subheadings.  Subheadings are organized into two columns.  If present, the page's image is displayed alongside the page name.&lt;br /&gt;&lt;br /&gt;&lt;a href="http&amp;#58;&amp;#47;&amp;#47;blogs.law.harvard.edu&amp;#47;brandonhaynes&amp;#47;files&amp;#47;2009&amp;#47;04&amp;#47;dnnmegamenunavigationprovider.png"&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=dnnTemplatedMenu&amp;DownloadId=69964" alt="Default&amp;#32;Template&amp;#32;Screenshot" title="Default&amp;#32;Template&amp;#32;Screenshot" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;h3&gt;Descriptions Template&lt;/h3&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuTemplate&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;content&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;Descriptions&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;This template renders identically to the default template, and additionally includes the page's description (if any) below the main menu headings.&lt;br /&gt;&lt;br /&gt;&lt;a href="http&amp;#58;&amp;#47;&amp;#47;blogs.law.harvard.edu&amp;#47;brandonhaynes&amp;#47;files&amp;#47;2009&amp;#47;04&amp;#47;dnnmegamenunavigationproviderdescriptionssmaller.png"&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=dnnTemplatedMenu&amp;DownloadId=70009" alt="Descriptions&amp;#32;Template&amp;#32;Screenshot" title="Descriptions&amp;#32;Template&amp;#32;Screenshot" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;h3&gt;Wide&lt;/h3&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuTemplate&amp;quot; content=&amp;quot;&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuCss&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;content&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;Wide&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;This template displays a node's children as column headings, and grandchildren as subheadings organized underneath.  &lt;br /&gt;&lt;br /&gt;&lt;a href="http&amp;#58;&amp;#47;&amp;#47;blogs.law.harvard.edu&amp;#47;brandonhaynes&amp;#47;files&amp;#47;2009&amp;#47;04&amp;#47;dnnmegamenunavigationproviderwide.png"&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=dnnTemplatedMenu&amp;DownloadId=70011" alt="Default&amp;#32;Template&amp;#32;Screenshot" title="Default&amp;#32;Template&amp;#32;Screenshot" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;h3&gt;Heading&lt;/h3&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuTemplate&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;content&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;Heading&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuCss&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;content&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;Wide&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;)
&lt;/pre&gt;&lt;/div&gt;This template includes a configurable catchline at the top of the panel, and may be styled vertically or &amp;quot;wide.&amp;quot;&lt;br /&gt;&lt;br /&gt;&lt;a href="http&amp;#58;&amp;#47;&amp;#47;blogs.law.harvard.edu&amp;#47;brandonhaynes&amp;#47;files&amp;#47;2009&amp;#47;04&amp;#47;dnnmegamenunavigationproviderwide.png"&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=dnnTemplatedMenu&amp;DownloadId=69965" alt="Heading&amp;#32;Template&amp;#32;Screenshot" title="Heading&amp;#32;Template&amp;#32;Screenshot" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;h2&gt;Feedback, Reviews, and Ratings Appreciated!&lt;/h2&gt;Feedback about your experiences is needed, and &lt;u&gt;greatly&lt;/u&gt; appreciated!&lt;/div&gt;</description><author>BrandonHaynes</author><pubDate>Sun, 31 May 2009 22:09:23 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20090531100923P</guid></item><item><title>Updated Wiki: Home</title><link>http://dnntemplatedmenu.codeplex.com/Wiki/View.aspx?title=Home&amp;version=16</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;DotNetNuke Templated (Mega-)Menu Navigation Provider&lt;/h1&gt;More details about this project may be found on &lt;a href="http://brandonhaynes.org" class="externalLink"&gt;my blog&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.  &lt;br /&gt;
&lt;h2&gt;Description&lt;/h2&gt;A derivative of the built-in DotNetNuke DNNMenu navigation provider, allowing for templated custom menu panels.  Configure one or more menu items to be displayed using a &amp;#40;built-in or custom-developed&amp;#41; template, yielding display options not before available to DotNetNuke users&amp;#33;&lt;br /&gt;
&lt;h2&gt;Goals&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;Allow website administrators to select from one or more pre-defined menu templates for any page&lt;/li&gt;
&lt;li&gt;Allow templates to be deployed at the installation, portal, and skin level&lt;/li&gt;
&lt;li&gt;Allow specification of both rendered HTML and CSS file attachment on a per-page basis&lt;/li&gt;
&lt;li&gt;Allow templates to be fully search engine friendly and utilize modern XHTML and CSS design&lt;/li&gt;
&lt;li&gt;Rely on default DNNMenu implementation for all other behavior&lt;/li&gt;
&lt;li&gt;Require no core changes and utilize only existing DotNetNuke extension points&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Background&lt;/h2&gt;
The &lt;a href="http://www.dotnetnuke.com" class="externalLink"&gt;DotNetNuke content management system&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; is a mature, robust, and widely-adopted web application framework.  While the framework allows for the use of myriad menu systems (through the application of the provider pattern), to date there is no way to effectuate per-page templated (&amp;quot;mega&amp;quot;) menus.&lt;br /&gt;&lt;br /&gt;This project attempts to bridge that gap by extending the DotNetNuke-default DNNMenu system to render custom templates in place of any node in the menu hierarchy.  These templates are easy to create and extend, and allow for a wide variety of final user experiences.  Several such templates are included out-of-the-box, demonstrating the flexibility of this provider extension.  For maximum flexibility, templates may be deployed by a host across an entire installation, provided as a part of a skinning package, or deployed on a per-portal basis.&lt;br /&gt;
&lt;h4&gt;What this project is...&lt;/h4&gt;This project is a derivative of the popular and DotNetNuke-included DNNMenu system included with the &lt;a href="http://www.codeplex.com/dnnwebcontrols" class="externalLink"&gt;DotNetNuke Webcontrols&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; project.  All the functionality present in that menu system may be utilized by using this provider.&lt;br /&gt;
&lt;h4&gt;What this project is not...&lt;/h4&gt;This project is NOT a new menu system for DotNetNuke.  It merely extends a small part of the functionality that already exists in the DNNMenu system.  Although it is very likely that this method may be used to extend other menu providers (I have already verified this with the &lt;a href="http://www.telerik.com/products/aspnet-ajax/menu.aspx" class="externalLink"&gt;Telerik's RadMenu&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;), it does not yet do so.&lt;br /&gt;&lt;br /&gt;If any developer wishes to extend the method used herein to any other popular DotNetNuke navigation provider and would be interested in donating the code to the project, it would be greatly appreciated.&lt;br /&gt;
&lt;h2&gt;Installation instructions&lt;/h2&gt;
This provider is installed just as any other module or provider through the Host-&amp;gt;Modules menu item.  Note that the provider requires DotNetNuke version 5.0.1 or greater; ensure that your installation meets this minimum requirement before proceeding.&lt;br /&gt;
&lt;h4&gt;To install:&lt;/h4&gt;&lt;ol&gt;&lt;li&gt;Log in as a host user&lt;/li&gt;
&lt;li&gt;Install the TemplatedDNNMenuNavigationProvider install package,&lt;/li&gt;
&lt;li&gt;Optionally install the Templated MinimalExtropy skin package, or any other skin configured to utilized the templated provider,&lt;/li&gt;
&lt;li&gt;Change a page (or site) skin to use a skin that utilizes the templated provider.  &lt;/li&gt;&lt;/ol&gt;

&lt;h2&gt;Configuration and Usage&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;Navigate to the settings for the page that is the root of the menu you wish to template (e.g. the Admin page).&lt;/li&gt;
&lt;li&gt;In the Advanced-&amp;gt;Page Header Tags textbox, enter the string:&lt;/li&gt;&lt;/ul&gt;
&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
                &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuTemplate&amp;quot; content=&amp;quot;&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Return to the page you specified to use the template skin, and note that the tagged menu is now using the default template (which is not that attractive until the pages have been structured into a better hierarchy).&lt;/li&gt;
&lt;li&gt;The default template displays children in a large font; grandchildren are in a normal font.  You’ll have to use the Admin-&amp;gt;Tabs page to rearrange some tabs to see this behavior.  For example, in one of the screenshots I moved the Tabs page to be under the “Web Administration” tab.&lt;/li&gt;&lt;/ul&gt;
 &lt;br /&gt;The default template is located at /Providers/NavigationProviders/DNNTemplatedMenuNavigationProvider/Default.ascx.  You can specify an alternate template by adding its name to the content portion of the meta tag; by way of example, a tag that reads as belowwill use the Descriptions.ascx template, which displays a page’s description (if any) underneath its link.  &lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
                &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuTemplate&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;content&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;Description&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;Skin designers can deploy their own templates; these may be accessed via a tag of the form:&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
                &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuTemplate&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;content&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;skin:[TemplateName]&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;Similarly, a host may provide a portal-specific template which may be accessed via:&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
                &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuTemplate&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;content&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;portal:[TemplateName]&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;Finally, the templates generally render highly similar markup (a nested hierarchy of ULs) and are differentiated primarily by CSS.  A template CSS can be specified through another meta tag, formatted as:&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
                &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuCss&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;content&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;CssFile&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;Like the template, a “portal:” or “skin:” prefix may be used; if none are specified the css is drawn from the provider directory.  The second screenshot below uses the “wide” css template.&lt;br /&gt; &lt;br /&gt;So, to reproduce the screenshots, the first uses the following metadata:&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
                &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuTemplate&amp;quot; content=&amp;quot;&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;And the second uses:&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
                &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuTemplate&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;content&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;Heading&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
                &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuCss&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;content&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;Wide&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;All other modifications required to generate a menu similar to those displayed herein are normal DotNetNuke configuration functions, such as page image selection, descriptions, hierarchy adjustments, and so on. &lt;br /&gt;
&lt;h2&gt;Templates Included in this Distribution&lt;/h2&gt;
&lt;h3&gt;Default Template (&amp;lt;meta name=&amp;quot;menuTemplate&amp;quot; content=&amp;quot;&amp;quot; /&amp;gt;)&lt;/h3&gt;The default template is designed to display a page's children as headings and grandchildren as subheadings.  Subheadings are organized into two columns.  If present, the page's image is displayed alongside the page name.&lt;br /&gt;&lt;br /&gt;&lt;a href="http&amp;#58;&amp;#47;&amp;#47;blogs.law.harvard.edu&amp;#47;brandonhaynes&amp;#47;files&amp;#47;2009&amp;#47;04&amp;#47;dnnmegamenunavigationprovider.png"&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=dnnTemplatedMenu&amp;DownloadId=69964" alt="Default&amp;#32;Template&amp;#32;Screenshot" title="Default&amp;#32;Template&amp;#32;Screenshot" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;h3&gt;Descriptions Template (&amp;lt;meta name=&amp;quot;menuTemplate&amp;quot; content=&amp;quot;Descriptions&amp;quot; /&amp;gt;)&lt;/h3&gt;This template renders identically to the default template, and additionally includes the page's description (if any) below the main menu headings.&lt;br /&gt;&lt;br /&gt;&lt;a href="http&amp;#58;&amp;#47;&amp;#47;blogs.law.harvard.edu&amp;#47;brandonhaynes&amp;#47;files&amp;#47;2009&amp;#47;04&amp;#47;dnnmegamenunavigationproviderdescriptionssmaller.png"&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=dnnTemplatedMenu&amp;DownloadId=70009" alt="Descriptions&amp;#32;Template&amp;#32;Screenshot" title="Descriptions&amp;#32;Template&amp;#32;Screenshot" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;h3&gt;Wide (&amp;lt;meta name=&amp;quot;menuTemplate&amp;quot; content=&amp;quot;&amp;quot; /&amp;gt; and &amp;lt;meta name=&amp;quot;menuCss&amp;quot; content=&amp;quot;Wide&amp;quot; /&amp;gt;)&lt;/h3&gt;This template displays a node's children as column headings, and grandchildren as subheadings organized underneath.  &lt;br /&gt;&lt;br /&gt;&lt;a href="http&amp;#58;&amp;#47;&amp;#47;blogs.law.harvard.edu&amp;#47;brandonhaynes&amp;#47;files&amp;#47;2009&amp;#47;04&amp;#47;dnnmegamenunavigationproviderwide.png"&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=dnnTemplatedMenu&amp;DownloadId=70011" alt="Default&amp;#32;Template&amp;#32;Screenshot" title="Default&amp;#32;Template&amp;#32;Screenshot" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;h3&gt;Heading (&amp;lt;meta name=&amp;quot;menuTemplate&amp;quot; content=&amp;quot;Heading&amp;quot; /&amp;gt; and &amp;lt;meta name=&amp;quot;menuCss&amp;quot; content=&amp;quot;Wide&amp;quot; /&amp;gt;)&lt;/h3&gt;This template includes a configurable catchline at the top of the panel, and may be styled vertically or &amp;quot;wide.&amp;quot;&lt;br /&gt;&lt;br /&gt;&lt;a href="http&amp;#58;&amp;#47;&amp;#47;blogs.law.harvard.edu&amp;#47;brandonhaynes&amp;#47;files&amp;#47;2009&amp;#47;04&amp;#47;dnnmegamenunavigationproviderwide.png"&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=dnnTemplatedMenu&amp;DownloadId=69965" alt="Heading&amp;#32;Template&amp;#32;Screenshot" title="Heading&amp;#32;Template&amp;#32;Screenshot" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;h2&gt;Feedback, Reviews, and Ratings Appreciated!&lt;/h2&gt;Feedback about your experiences is needed, and &lt;u&gt;greatly&lt;/u&gt; appreciated!&lt;/div&gt;</description><author>BrandonHaynes</author><pubDate>Sun, 31 May 2009 22:06:27 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20090531100627P</guid></item><item><title>Updated Wiki: Home</title><link>http://dnntemplatedmenu.codeplex.com/Wiki/View.aspx?title=Home&amp;version=15</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;DotNetNuke Templated (Mega-)Menu Navigation Provider&lt;/h1&gt;More details about this project may be found on &lt;a href="http://brandonhaynes.org" class="externalLink"&gt;my blog&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.  &lt;br /&gt;
&lt;h2&gt;Description&lt;/h2&gt;A derivative of the built-in DotNetNuke DNNMenu navigation provider, allowing for templated custom menu panels.  Configure one or more menu items to be displayed using a &amp;#40;built-in or custom-developed&amp;#41; template, yielding display options not before available to DotNetNuke users&amp;#33;&lt;br /&gt;
&lt;h2&gt;Goals&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;Allow website administrators to select from one or more pre-defined menu templates for any page&lt;/li&gt;
&lt;li&gt;Allow templates to be deployed at the installation, portal, and skin level&lt;/li&gt;
&lt;li&gt;Allow specification of both rendered HTML and CSS file attachment on a per-page basis&lt;/li&gt;
&lt;li&gt;Allow templates to be fully search engine friendly and utilize modern XHTML and CSS design&lt;/li&gt;
&lt;li&gt;Rely on default DNNMenu implementation for all other behavior&lt;/li&gt;
&lt;li&gt;Require no core changes and utilize only existing DotNetNuke extension points&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Background&lt;/h2&gt;
The &lt;a href="http://www.dotnetnuke.com" class="externalLink"&gt;DotNetNuke content management system&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; is a mature, robust, and widely-adopted web application framework.  While the framework allows for the use of myriad menu systems (through the application of the provider pattern), to date there is no way to effectuate per-page templated (&amp;quot;mega&amp;quot;) menus.&lt;br /&gt;&lt;br /&gt;This project attempts to bridge that gap by extending the DotNetNuke-default DNNMenu system to render custom templates in place of any node in the menu hierarchy.  These templates are easy to create and extend, and allow for a wide variety of final user experiences.  Several such templates are included out-of-the-box, demonstrating the flexibility of this provider extension.  For maximum flexibility, templates may be deployed by a host across an entire installation, provided as a part of a skinning package, or deployed on a per-portal basis.&lt;br /&gt;
&lt;h4&gt;What this project is...&lt;/h4&gt;This project is a derivative of the popular and DotNetNuke-included DNNMenu system included with the &lt;a href="http://www.codeplex.com/dnnwebcontrols" class="externalLink"&gt;DotNetNuke Webcontrols&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; project.  All the functionality present in that menu system may be utilized by using this provider.&lt;br /&gt;
&lt;h4&gt;What this project is not...&lt;/h4&gt;This project is NOT a new menu system for DotNetNuke.  It merely extends a small part of the functionality that already exists in the DNNMenu system.  Although it is very likely that this method may be used to extend other menu providers (I have already verified this with the &lt;a href="http://www.telerik.com/products/aspnet-ajax/menu.aspx" class="externalLink"&gt;Telerik's RadMenu&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;), it does not yet do so.&lt;br /&gt;
&lt;h2&gt;Installation instructions&lt;/h2&gt;
This provider is installed just as any other module or provider through the Host-&amp;gt;Modules menu item.  Note that the provider requires DotNetNuke version 5.0.1 or greater; ensure that your installation meets this minimum requirement before proceeding.&lt;br /&gt;
&lt;h4&gt;To install:&lt;/h4&gt;&lt;ol&gt;&lt;li&gt;Log in as a host user&lt;/li&gt;
&lt;li&gt;Install the TemplatedDNNMenuNavigationProvider install package,&lt;/li&gt;
&lt;li&gt;Optionally install the Templated MinimalExtropy skin package, or any other skin configured to utilized the templated provider,&lt;/li&gt;
&lt;li&gt;Change a page (or site) skin to use a skin that utilizes the templated provider.  &lt;/li&gt;&lt;/ol&gt;

&lt;h2&gt;Configuration and Usage&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;Navigate to the settings for the page that is the root of the menu you wish to template (e.g. the Admin page).&lt;/li&gt;
&lt;li&gt;In the Advanced-&amp;gt;Page Header Tags textbox, enter the string:&lt;/li&gt;&lt;/ul&gt;
&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
                &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuTemplate&amp;quot; content=&amp;quot;&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Return to the page you specified to use the template skin, and note that the tagged menu is now using the default template (which is not that attractive until the pages have been structured into a better hierarchy).&lt;/li&gt;
&lt;li&gt;The default template displays children in a large font; grandchildren are in a normal font.  You’ll have to use the Admin-&amp;gt;Tabs page to rearrange some tabs to see this behavior.  For example, in one of the screenshots I moved the Tabs page to be under the “Web Administration” tab.&lt;/li&gt;&lt;/ul&gt;
 &lt;br /&gt;The default template is located at /Providers/NavigationProviders/DNNTemplatedMenuNavigationProvider/Default.ascx.  You can specify an alternate template by adding its name to the content portion of the meta tag; by way of example, a tag that reads as belowwill use the Descriptions.ascx template, which displays a page’s description (if any) underneath its link.  &lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
                &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuTemplate&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;content&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;Description&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;Skin designers can deploy their own templates; these may be accessed via a tag of the form:&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
                &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuTemplate&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;content&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;skin:[TemplateName]&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;Similarly, a host may provide a portal-specific template which may be accessed via:&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
                &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuTemplate&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;content&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;portal:[TemplateName]&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;Finally, the templates generally render highly similar markup (a nested hierarchy of ULs) and are differentiated primarily by CSS.  A template CSS can be specified through another meta tag, formatted as:&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
                &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuCss&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;content&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;CssFile&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;Like the template, a “portal:” or “skin:” prefix may be used; if none are specified the css is drawn from the provider directory.  The second screenshot below uses the “wide” css template.&lt;br /&gt; &lt;br /&gt;So, to reproduce the screenshots, the first uses the following metadata:&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
                &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuTemplate&amp;quot; content=&amp;quot;&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;And the second uses:&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
                &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuTemplate&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;content&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;Heading&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
                &lt;span style="color:Blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#A31515;"&gt;meta&lt;/span&gt; &lt;span style="color:Red;"&gt;name&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;menuCss&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Red;"&gt;content&lt;/span&gt;&lt;span style="color:Blue;"&gt;=&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:Blue;"&gt;Wide&lt;/span&gt;&lt;span style="color:Black;"&gt;&amp;quot;&lt;/span&gt; &lt;span style="color:Blue;"&gt;/&amp;gt;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;All other modifications required to generate a menu similar to those displayed herein are normal DotNetNuke configuration functions, such as page image selection, descriptions, hierarchy adjustments, and so on. &lt;br /&gt;
&lt;h2&gt;Templates Included in this Distribution&lt;/h2&gt;
&lt;h3&gt;Default Template (&amp;lt;meta name=&amp;quot;menuTemplate&amp;quot; content=&amp;quot;&amp;quot; /&amp;gt;)&lt;/h3&gt;The default template is designed to display a page's children as headings and grandchildren as subheadings.  Subheadings are organized into two columns.  If present, the page's image is displayed alongside the page name.&lt;br /&gt;&lt;br /&gt;&lt;a href="http&amp;#58;&amp;#47;&amp;#47;blogs.law.harvard.edu&amp;#47;brandonhaynes&amp;#47;files&amp;#47;2009&amp;#47;04&amp;#47;dnnmegamenunavigationprovider.png"&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=dnnTemplatedMenu&amp;DownloadId=69964" alt="Default&amp;#32;Template&amp;#32;Screenshot" title="Default&amp;#32;Template&amp;#32;Screenshot" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;h3&gt;Descriptions Template (&amp;lt;meta name=&amp;quot;menuTemplate&amp;quot; content=&amp;quot;Descriptions&amp;quot; /&amp;gt;)&lt;/h3&gt;This template renders identically to the default template, and additionally includes the page's description (if any) below the main menu headings.&lt;br /&gt;&lt;br /&gt;&lt;a href="http&amp;#58;&amp;#47;&amp;#47;blogs.law.harvard.edu&amp;#47;brandonhaynes&amp;#47;files&amp;#47;2009&amp;#47;04&amp;#47;dnnmegamenunavigationproviderdescriptionssmaller.png"&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=dnnTemplatedMenu&amp;DownloadId=70009" alt="Descriptions&amp;#32;Template&amp;#32;Screenshot" title="Descriptions&amp;#32;Template&amp;#32;Screenshot" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;h3&gt;Wide (&amp;lt;meta name=&amp;quot;menuTemplate&amp;quot; content=&amp;quot;&amp;quot; /&amp;gt; and &amp;lt;meta name=&amp;quot;menuCss&amp;quot; content=&amp;quot;Wide&amp;quot; /&amp;gt;)&lt;/h3&gt;This template displays a node's children as column headings, and grandchildren as subheadings organized underneath.  &lt;br /&gt;&lt;br /&gt;&lt;a href="http&amp;#58;&amp;#47;&amp;#47;blogs.law.harvard.edu&amp;#47;brandonhaynes&amp;#47;files&amp;#47;2009&amp;#47;04&amp;#47;dnnmegamenunavigationproviderwide.png"&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=dnnTemplatedMenu&amp;DownloadId=70011" alt="Default&amp;#32;Template&amp;#32;Screenshot" title="Default&amp;#32;Template&amp;#32;Screenshot" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;h3&gt;Heading (&amp;lt;meta name=&amp;quot;menuTemplate&amp;quot; content=&amp;quot;Heading&amp;quot; /&amp;gt; and &amp;lt;meta name=&amp;quot;menuCss&amp;quot; content=&amp;quot;Wide&amp;quot; /&amp;gt;)&lt;/h3&gt;This template includes a configurable catchline at the top of the panel, and may be styled vertically or &amp;quot;wide.&amp;quot;&lt;br /&gt;&lt;br /&gt;&lt;a href="http&amp;#58;&amp;#47;&amp;#47;blogs.law.harvard.edu&amp;#47;brandonhaynes&amp;#47;files&amp;#47;2009&amp;#47;04&amp;#47;dnnmegamenunavigationproviderwide.png"&gt;&lt;img src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=dnnTemplatedMenu&amp;DownloadId=69965" alt="Heading&amp;#32;Template&amp;#32;Screenshot" title="Heading&amp;#32;Template&amp;#32;Screenshot" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;h2&gt;Feedback, Reviews, and Ratings Appreciated!&lt;/h2&gt;Feedback about your experiences is needed, and &lt;u&gt;greatly&lt;/u&gt; appreciated!&lt;/div&gt;</description><author>BrandonHaynes</author><pubDate>Sun, 31 May 2009 22:04:51 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20090531100451P</guid></item></channel></rss>