candland

@candland rss self
June 8th 2009

N2cms Navigation Options on a MVC Site

Add the n2 SlidingCurtain control with a DragDropControlPanel control inside it after the opening body tag. This will link to the editing system of n2cms.

 

    <n2:SlidingCurtain ID="SlidingCurtain1" runat="server">

        <n2:DragDropControlPanel ID="DragDropControlPanel1" runat="server" />

    </n2:SlidingCurtain>

Now there are a bunch of N2 functions that can be used to interface with the navigation system.

To setup the menu the following can be used, the first list item shows a link to the home page. The second list item shows the sub pages.

                <ul id="menu">

                    <li><a href="<%= N2.Find.StartPage.Url %>">Home</a></li>

                    <%= N2.Web.Tree.From(N2.Find.StartPage, 2).Filters(new N2.Collections.NavigationFilter()).ExcludeRoot(true)%>

                </ul>

Next to setup the sub navigation something like this could be used.

                <div class="leftColumn" style="border:solid 1px black">

                    <h2><%= N2.Utility.Evaluate(N2.Find.AtLevel(N2.Find.CurrentPage, N2.Find.StartPage, 2), "Title") %></h2>

                    <ul>

                        <%= N2.Web.Tree.Between(N2.Find.CurrentPage, N2.Find.StartPage, true, 2).Filters(new N2.Collections.NavigationFilter()).ExcludeRoot(true) %>

                    </ul>

                </div><!—/leftColumn—>

Bread crumbs can be setup using.

                    <% foreach(N2.ContentItem item in N2.Find.EnumerateBetween(N2.Find.StartPage, N2.Find.CurrentPage, false)) { %>

                        <%= N2.Web.Link.To(item) %> /

                    <% } %>

                    <%= N2.Utility.Evaluate(N2.Find.CurrentPage, "Title") %>

Lastly, you can update the page title using something similar to what’s been used above.

    <title><%= N2.Utility.Evaluate(N2.Find.CurrentPage, "Title") %><asp:ContentPlaceHolder ID="TitleContent" runat="server" /></title>

blog comments powered by Disqus