<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="/rss.xsl"?><rss version="2.0"><channel><title>dnnTemplatedMenu Wiki &amp; Documentation Rss Feed</title><link>http://dnntemplatedmenu.codeplex.com/Wiki/View.aspx?title=Home</link><description>dnnTemplatedMenu Wiki Rss Description</description><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>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>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>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><item><title>Updated Wiki: Home</title><link>http://dnntemplatedmenu.codeplex.com/Wiki/View.aspx?title=Home&amp;version=14</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;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 21:58:25 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20090531095825P</guid></item><item><title>Updated Wiki: Home</title><link>http://dnntemplatedmenu.codeplex.com/Wiki/View.aspx?title=Home&amp;version=13</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;h2&gt;Templates Included in this Distribution&lt;/h2&gt;
&lt;h3&gt;Default Template&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&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&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&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;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;h2&gt;Configuration and Usage&lt;/h2&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 17:19:16 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20090531051916P</guid></item><item><title>Updated Wiki: Home</title><link>http://dnntemplatedmenu.codeplex.com/Wiki/View.aspx?title=Home&amp;version=12</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;h2&gt;Templates Included in this Distribution&lt;/h2&gt;
&lt;h3&gt;Default Template&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&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;h3&gt;Wide&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=69965" 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;This template renders identically to the wide template, with the addition of a catchline at the top of the panel.&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;h2&gt;Configuration and Usage&lt;/h2&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 05:10:31 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20090531051031A</guid></item><item><title>Updated Wiki: Home</title><link>http://dnntemplatedmenu.codeplex.com/Wiki/View.aspx?title=Home&amp;version=11</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;h2&gt;Templates Included in this Distribution&lt;/h2&gt;
&lt;h3&gt;Default Template&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;h3&gt;Descriptions Template&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;h3&gt;Wide&lt;/h3&gt;This template displays a node's children as column headings, and grandchildren as subheadings organized underneath.  &lt;br /&gt;
&lt;h3&gt;Heading&lt;/h3&gt;This template renders identically to the wide template, with the addition of a catchline at the top of the panel.&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;h2&gt;Configuration and Usage&lt;/h2&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 04:55:25 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20090531045525A</guid></item><item><title>Updated Wiki: Home</title><link>http://dnntemplatedmenu.codeplex.com/Wiki/View.aspx?title=Home&amp;version=10</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;DotNetNuke Templated (Meta-)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;h2&gt;Templates Included in this Distribution&lt;/h2&gt;
&lt;h3&gt;Default Template&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;h3&gt;Descriptions Template&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;h3&gt;Wide&lt;/h3&gt;This template displays a node's children as column headings, and grandchildren as subheadings organized underneath.  &lt;br /&gt;
&lt;h3&gt;Heading&lt;/h3&gt;This template renders identically to the wide template, with the addition of a catchline at the top of the panel.&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;h2&gt;Configuration and Usage&lt;/h2&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 04:36:27 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20090531043627A</guid></item><item><title>Updated Wiki: Home</title><link>http://dnntemplatedmenu.codeplex.com/Wiki/View.aspx?title=Home&amp;version=9</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;DotNetNuke Templated (Meta-)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;
&lt;h2&gt;Media and Screenshots&lt;/h2&gt;
More screenshots of the templated menu provider in action (including larger versions of the images below) are &lt;a href="http://blogs.law.harvard.edu/brandonhaynes/dotnetnuke-dnnmenu-mega-menu-provider-screenshot/" class="externalLink"&gt;available here&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://blogs.law.harvard.edu/brandonhaynes/files/2009/04/dnnmegamenunavigationprovider-300x201.png" /&gt;&lt;br /&gt;&lt;img src="http://blogs.law.harvard.edu/brandonhaynes/files/2009/04/dnnmegamenunavigationproviderwide-300x197.png" /&gt;&lt;br /&gt;
&lt;h2&gt;Templates Included in this Distribution&lt;/h2&gt;
&lt;h2&gt;Usage&lt;/h2&gt;
&lt;h4&gt;Brief installation instructions&lt;/h4&gt;
&lt;h2&gt;Configuration&lt;/h2&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;br /&gt;&lt;/div&gt;</description><author>BrandonHaynes</author><pubDate>Sat, 30 May 2009 22:53:11 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20090530105311P</guid></item><item><title>Updated Wiki: Home</title><link>http://dnntemplatedmenu.codeplex.com/Wiki/View.aspx?title=Home&amp;version=8</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&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;h3&gt;This project is scheduled for release in late May 2009.&lt;/h3&gt;
&lt;br /&gt;Until then, an &lt;a href="http://dnntemplatedmenu.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=27218" class="externalLink"&gt;alpha release&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; is available as a public preview.&lt;br /&gt;
&lt;h3&gt;Note to those who have downloaded the release prior to May 13, 2009&lt;/h3&gt;
&lt;br /&gt;It appears that I inadvertently uploaded an older version of the provider; the latest version contains several other templates in addition to the default one (Headings, Descriptions, Wide, and Default).  It is likely that a bug that was subsequently corrected remains open in the incorrectly-uploaded release.  &lt;br /&gt;&lt;br /&gt;I have uploaded the correct alpha-release package; this version includes the several demonstration templates (along with whatever enhancements and bug fixes took place between the packaging of the two versions).  Those that have installed the incorrect release should uninstall that version, and then reinstall the corrected one.  Note that the modified MinimalExtropy skin will break until the updated provider is installed; ensure that no admin skins are using this skin (otherwise the site might become inaccessible).&lt;br /&gt;&lt;br /&gt;Thanks to Ely for pointing out this oversight!&lt;br /&gt;&lt;br /&gt;This continues to be an alpha release that should only be utilized on a non-production basis.  It has not yet been evaluated with the DotNetNuke 5.1 release.&lt;br /&gt;
&lt;h4&gt;Media and Screenshots&lt;/h4&gt;
&lt;br /&gt;Screenshots of the templated menu provider in action are &lt;a href="http://blogs.law.harvard.edu/brandonhaynes/dotnetnuke-dnnmenu-mega-menu-provider-screenshot/" class="externalLink"&gt;available here&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;/div&gt;</description><author>BrandonHaynes</author><pubDate>Wed, 13 May 2009 15:02:49 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20090513030249P</guid></item><item><title>Updated Wiki: Home</title><link>http://dnntemplatedmenu.codeplex.com/Wiki/View.aspx?title=Home&amp;version=7</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&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;h3&gt;This project is scheduled for release in late May 2009.&lt;/h3&gt;
&lt;br /&gt;Until then, an &lt;a href="http://dnntemplatedmenu.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=27218" class="externalLink"&gt;alpha release&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; is available as a public preview.&lt;br /&gt;
&lt;h4&gt;Media and Screenshots&lt;/h4&gt;
&lt;br /&gt;Screenshots of the templated menu provider in action are &lt;a href="http://blogs.law.harvard.edu/brandonhaynes/dotnetnuke-dnnmenu-mega-menu-provider-screenshot/" class="externalLink"&gt;available here&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;/div&gt;</description><author>BrandonHaynes</author><pubDate>Sun, 10 May 2009 18:20:31 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20090510062031P</guid></item><item><title>Updated Wiki: Home</title><link>http://dnntemplatedmenu.codeplex.com/Wiki/View.aspx?title=Home&amp;version=6</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&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;h3&gt;This project is scheduled for release in late May 2009.&lt;/h3&gt;
&lt;br /&gt;Until then, an &lt;a href="http://dnntemplatedmenu.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=27218" class="externalLink"&gt;Alpha release&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; is available as a public preview.&lt;br /&gt;
&lt;h4&gt;Media and Screenshots&lt;/h4&gt;
&lt;br /&gt;Screenshots of the templated menu provider in action are &lt;a href="http://blogs.law.harvard.edu/brandonhaynes/dotnetnuke-dnnmenu-mega-menu-provider-screenshot/" class="externalLink"&gt;available here&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;/div&gt;</description><author>BrandonHaynes</author><pubDate>Sun, 10 May 2009 18:20:21 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20090510062021P</guid></item><item><title>Updated Wiki: Home</title><link>http://dnntemplatedmenu.codeplex.com/Wiki/View.aspx?title=Home&amp;version=5</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&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;h3&gt;This project is scheduled for release in late May 2009.&lt;/h3&gt;
&lt;br /&gt;Until then, an &lt;a href="http://dnntemplatedmenu.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=27218" class="externalLink"&gt;Alpha release&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; is available as a public preview.&lt;/div&gt;</description><author>BrandonHaynes</author><pubDate>Sun, 10 May 2009 18:19:05 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20090510061905P</guid></item><item><title>Updated Wiki: Home</title><link>http://dnntemplatedmenu.codeplex.com/Wiki/View.aspx?title=Home&amp;version=4</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&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;h3&gt;This project is scheduled for release in late May 2009.&lt;/h3&gt;
&lt;br /&gt;Until then, an Alpha release is available as a public preview.&lt;/div&gt;</description><author>BrandonHaynes</author><pubDate>Sun, 10 May 2009 18:18:42 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20090510061842P</guid></item><item><title>Updated Wiki: Home</title><link>http://dnntemplatedmenu.codeplex.com/Wiki/View.aspx?title=Home&amp;version=3</link><description>&lt;div class="wikidoc"&gt;&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&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;br /&gt;
&lt;h3&gt;This project is scheduled for release in late May 2009.&lt;/h3&gt;&lt;/div&gt;</description><author>BrandonHaynes</author><pubDate>Sun, 10 May 2009 18:18:00 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20090510061800P</guid></item></channel></rss>