Browse Source

NEW #5 Ajout de la dynamic BreadCrumb en liste d'élement permettant d'être décorés

antoine.horvat 9 năm trước cách đây
mục cha
commit
50c20865c4

+ 16 - 14
CD67.ModeleMVC.MVC/CD67.ModeleMVC.MVC.csproj

@@ -157,6 +157,7 @@
     <Compile Include="Global.asax.cs">
       <DependentUpon>Global.asax</DependentUpon>
     </Compile>
+    <Compile Include="Internal\Navigation.cs" />
     <Compile Include="Internal\Utilisateur.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
   </ItemGroup>
@@ -243,9 +244,19 @@
     <Content Include="Content\bootstrap-theme.min.css.map" />
     <Content Include="Content\bootstrap-theme.css.map" />
     <Content Include="bin\CD67.ModeleMVC.MVC.dll.config" />
-    <Content Include="Mvc.sitemap">
+    <Content Include="Views\Shared\DisplayTemplates\CanonicalHelperModel.ascx" />
+    <Content Include="Views\Shared\DisplayTemplates\MenuHelperModel.ascx" />
+    <Content Include="Views\Shared\DisplayTemplates\MetaRobotsHelperModel.ascx" />
+    <Content Include="Views\Shared\DisplayTemplates\SiteMapHelperModel.ascx" />
+    <Content Include="Views\Shared\DisplayTemplates\SiteMapNodeModel.ascx" />
+    <Content Include="Views\Shared\DisplayTemplates\SiteMapNodeModelList.ascx" />
+    <Content Include="Views\Shared\DisplayTemplates\SiteMapPathHelperModel.ascx" />
+    <Content Include="Views\Shared\DisplayTemplates\SiteMapPathHelperModel.cshtml" />
+    <Content Include="Views\Shared\DisplayTemplates\SiteMapTitleHelperModel.ascx" />
+    <Content Include="web.sitemap">
       <SubType>Designer</SubType>
     </Content>
+    <Content Include="Mvc.sitemap" />
     <None Include="MvcSiteMapSchema.xsd">
       <SubType>Designer</SubType>
     </None>
@@ -270,14 +281,6 @@
     <Content Include="Scripts\sidebar_menu.js" />
     <Content Include="style\ModeleStyleSheet.css" />
     <Content Include="style\AppStyleSheet.css" />
-    <Content Include="Views\Shared\DisplayTemplates\CanonicalHelperModel.ascx" />
-    <Content Include="Views\Shared\DisplayTemplates\MenuHelperModel.ascx" />
-    <Content Include="Views\Shared\DisplayTemplates\MetaRobotsHelperModel.ascx" />
-    <Content Include="Views\Shared\DisplayTemplates\SiteMapHelperModel.ascx" />
-    <Content Include="Views\Shared\DisplayTemplates\SiteMapNodeModel.ascx" />
-    <Content Include="Views\Shared\DisplayTemplates\SiteMapNodeModelList.ascx" />
-    <Content Include="Views\Shared\DisplayTemplates\SiteMapPathHelperModel.ascx" />
-    <Content Include="Views\Shared\DisplayTemplates\SiteMapTitleHelperModel.ascx" />
     <Content Include="Web.config">
       <SubType>Designer</SubType>
     </Content>
@@ -304,18 +307,17 @@
     <Content Include="Views\VIKINGS\Index.cshtml" />
     <Content Include="Views\Shared\DisplayTemplates\YesNoBool.cshtml" />
     <Content Include="Views\Shared\EditorTemplates\YesNoBool.cshtml" />
+    <Content Include="Views\_ViewStart.cshtml" />
+    <Content Include="Views\Shared\_Layout.cshtml" />
+    <Content Include="Views\Home\About.cshtml" />
+    <Content Include="Views\VIKINGS\Test.cshtml" />
     <Content Include="Views\Shared\DisplayTemplates\SiteMapTitleHelperModel.cshtml" />
-    <Content Include="Views\Shared\DisplayTemplates\SiteMapPathHelperModel.cshtml" />
     <Content Include="Views\Shared\DisplayTemplates\SiteMapNodeModelList.cshtml" />
     <Content Include="Views\Shared\DisplayTemplates\SiteMapNodeModel.cshtml" />
     <Content Include="Views\Shared\DisplayTemplates\SiteMapHelperModel.cshtml" />
     <Content Include="Views\Shared\DisplayTemplates\MetaRobotsHelperModel.cshtml" />
     <Content Include="Views\Shared\DisplayTemplates\MenuHelperModel.cshtml" />
     <Content Include="Views\Shared\DisplayTemplates\CanonicalHelperModel.cshtml" />
-    <Content Include="Views\_ViewStart.cshtml" />
-    <Content Include="Views\Shared\_Layout.cshtml" />
-    <Content Include="Views\Home\About.cshtml" />
-    <Content Include="Views\VIKINGS\Test.cshtml" />
   </ItemGroup>
   <ItemGroup>
     <Folder Include="App_Data\" />

+ 1 - 5
CD67.ModeleMVC.MVC/Controllers/HomeController.cs

@@ -1,8 +1,4 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Web;
-using System.Web.Mvc;
+using System.Web.Mvc;
 
 namespace CD67.ModeleMVC.MVC.Controllers
 {

+ 1 - 7
CD67.ModeleMVC.MVC/Controllers/TYPE_VIKINGController.cs

@@ -1,10 +1,4 @@
-using System;
-using System.Collections.Generic;
-using System.Data;
-using System.Data.Entity;
-using System.Linq;
-using System.Net;
-using System.Web;
+using System.Net;
 using System.Web.Mvc;
 using CD67.ModeleMVC.Entity;
 using CD67.ModeleMVC.Factory;

+ 2 - 8
CD67.ModeleMVC.MVC/Controllers/VIKINGSController.cs

@@ -1,14 +1,8 @@
-using System;
-using System.Collections.Generic;
-using System.Data;
-using System.Data.Entity;
-using System.Linq;
-using System.Net;
-using System.Web;
+using System.Net;
 using System.Web.Mvc;
 using CD67.ModeleMVC.Entity;
 using CD67.ModeleMVC.Factory;
-using MvcSiteMapProvider;
+
 
 namespace CD67.ModeleMVC.MVC.Controllers
 {

+ 59 - 0
CD67.ModeleMVC.MVC/Internal/Navigation.cs

@@ -0,0 +1,59 @@
+using System.Collections.Generic;
+using System.Linq;
+using System.Web;
+using System.Xml;
+using System.Xml.Linq;
+
+
+namespace CD67.ModeleMVC.MVC.Internal
+{
+    public static class Navigation
+    {
+        public static string SMap(SiteMapNode node)
+        {
+            System.Text.StringBuilder sb = new System.Text.StringBuilder();
+            List<SiteMapNode> nodes = new List<SiteMapNode>();
+            
+            nodes.Add(node);
+            if (SiteMap.CurrentNode.ParentNode != null)
+            {
+                SMap(SiteMap.CurrentNode.ParentNode);
+            }
+            nodes.Reverse();
+            sb.Append("<ul>");
+            foreach (SiteMapNode nodeelem in nodes)
+            {
+                sb.Append(string.Concat("<li><a href=\"", nodeelem.Url, "\">", nodeelem.Title, "</a></li>"));
+            }
+            sb.Append("</ul>");
+            
+            return sb.ToString();
+        }
+        public static string Xmap(string title)
+        {
+            string toto = "";
+            XDocument xmap = XDocument.Load("~/web.sitemap");
+            var current = xmap.Ancestors("SiteMapNode")
+                .Where(x => (string)x.Attribute("title") == title);
+            current.Reverse();
+            foreach(var currence in current)
+            {
+                toto += currence.Attribute("title").Value;
+            }
+            return toto;
+        }
+        public static string XmlMap(string title)
+        {
+            string toto = "";
+            XmlDocument xml = new XmlDocument();
+            xml.Load(HttpContext.Current.Server.MapPath("/web.sitemap"));
+            XmlNodeList nodes = xml.DocumentElement.SelectNodes("//*[@title='" + title + "']/ancestor-or-self::SiteMapNode");
+            foreach(XmlNode node in nodes)
+            {
+                toto += node.Attributes["title"].Value;
+            }
+            return toto;
+        }
+
+    }
+}

+ 12 - 12
CD67.ModeleMVC.MVC/Mvc.sitemap

@@ -4,17 +4,17 @@
             xsi:schemaLocation="http://mvcsitemap.codeplex.com/schemas/MvcSiteMap-File-3.0 MvcSiteMapSchema.xsd"
             enableLocalization="true">
 
-<mvcSiteMapNode title="Home" controller="Home" action="Index">
-    
-  <mvcSiteMapNode title="Type Viking" controller="TYPE_VIKING" action="Index">
-     <mvcSiteMapNode title="Details Type" controller="TYPE_VIKING" action="Details" preservedRouteParameters="id" />
-  </mvcSiteMapNode>
-    
-  
-  <mvcSiteMapNode title="Vikings" controller="VIKINGS" action="Index" key="Vikings">
-     <mvcSiteMapNode title="Details Viking" controller="VIKINGS" action="Details" preservedRouteParameters="id" />
+  <mvcSiteMapNode title="Home" controller="Home" action="Index">
+
+    <mvcSiteMapNode title="Type Viking" controller="TYPE_VIKING" action="Index">
+      <mvcSiteMapNode title="Details Type" controller="TYPE_VIKING" action="Details" preservedRouteParameters="id" />
+    </mvcSiteMapNode>
+
+    <mvcSiteMapNode title="Vikings" controller="VIKINGS" action="Index" key="Vikings">
+      <mvcSiteMapNode title="Details Viking" controller="VIKINGS" action="Details" preservedRouteParameters="id" />
+    </mvcSiteMapNode>
+
+    <mvcSiteMapNode title="About" controller="Home" action="About" />
   </mvcSiteMapNode>
-  
-  <mvcSiteMapNode title="About" controller="Home" action="About" />
-</mvcSiteMapNode>
+
 </mvcSiteMap>

+ 1 - 1
CD67.ModeleMVC.MVC/Views/Shared/DisplayTemplates/MenuHelperModel.ascx

@@ -2,7 +2,7 @@
 <%@ Import Namespace="System.Web.Mvc.Html" %>
 <%@ Import Namespace="MvcSiteMapProvider.Web.Html.Models" %>
 
-<ul id="menu">
+<ul id="menu" class="nav navbar-nav">
 <% foreach (var node in Model.Nodes) { %>
     <li><%=Html.DisplayFor(m => node)%>
     <% if (node.Children.Any()) { %>

+ 1 - 1
CD67.ModeleMVC.MVC/Views/Shared/DisplayTemplates/MenuHelperModel.cshtml

@@ -2,7 +2,7 @@
 @using System.Web.Mvc.Html
 @using MvcSiteMapProvider.Web.Html.Models
 
-<ul id="menu">
+<ul id="menu" class="nav navbar-nav">
     @foreach (var node in Model.Nodes) { 
         <li>@Html.DisplayFor(m => node) 
             @if (node.Children.Any()) {

+ 25 - 6
CD67.ModeleMVC.MVC/Views/Shared/DisplayTemplates/SiteMapPathHelperModel.ascx

@@ -2,9 +2,28 @@
 <%@ Import Namespace="System.Web.Mvc.Html" %>
 <%@ Import Namespace="MvcSiteMapProvider.Web.Html.Models" %>
 
-<% foreach (var node in Model) { %>
-    <%=Html.DisplayFor(m => node)%>
-    <% if (node != Model.Last()) { %>
-        &gt;
-    <% } %>
-<% } %>
+
+<%if (Model.Nodes.Count >= 0)
+{%>
+    
+    <ul class="breadcrumb">
+        <%foreach (var node in Model.Nodes)
+        {
+        
+
+        if (node != Model.Nodes.Last())
+        {
+        string url = node.IsClickable ? node.Url : "#";%>
+
+        
+        <li><a href="@url"><%=node.Title%></a><span class="divider"></span></li>
+       <% }
+        else
+        {
+        %>
+        <li class="active"><%=node.Title%></li>
+       <% }
+        }%>
+
+        </ul>
+<%}%>

+ 34 - 1
CD67.ModeleMVC.MVC/Views/Shared/DisplayTemplates/SiteMapPathHelperModel.cshtml

@@ -9,4 +9,37 @@
     if (node != Model.Last()) {
         <text> &gt; </text>
     }
-}
+}
+
+@*@model MvcSiteMapProvider.Web.Html.Models.SiteMapPathHelperModel
+@using System.Web.Mvc.Html
+@using System.Linq
+@using MvcSiteMapProvider.Web.Html.Models
+
+@if (Model.Nodes.Count != 1)
+{
+    
+    <ul class="breadcrumb">
+        @foreach (var node in Model.Nodes)
+        {
+        if (node == Model.Nodes.First())
+        {
+        continue;
+        }
+
+        if (node != Model.Nodes.Last())
+        {
+        string url = node.IsClickable ? node.Url : "#";
+
+        
+        <li><a href="@url">@node.Title</a><span class="divider">></span></li>
+        }
+        else
+        {
+        @
+        <li class="active">@node.Title</li>
+        }
+        }
+
+        </ul>
+}*@

+ 3 - 17
CD67.ModeleMVC.MVC/Views/Shared/_AppLayout.cshtml

@@ -22,7 +22,7 @@
 </head>
 
 <body>
-    <nav class="navbar navbar-default no-margin" onmouseover=collapseMenu() data-spy="affix" data-offset-top="60" data-offset-bottom="200">
+    <nav class="navbar navbar-default no-margin" onmouseover=collapseMenu() >
         <!-- Menu en mode mobile et tablette -->
 
         <div class="navbar-toggle">
@@ -120,28 +120,14 @@
             </ul>
         </div>
         <div class="page-wrap" onmouseover=collapseMenu()>
-            <ul id="breadcrumbs-one">
-                <li class="background-color1"><a href="">@Html.MvcSiteMap().SiteMapPath()</a></li>
-            </ul>
+            @Html.MvcSiteMap().SiteMapPath()           
         </div>
 
         <div id="content" onmouseover=collapseMenu()> 
             @RenderBody()
         </div>
     </div>
-    <div class="container-fluid" style="height:1000px">
-        <h1>Some text to enable scrolling</h1>
-        <h1>Some text to enable scrolling</h1>
-        <h1>Some text to enable scrolling</h1>
-        <h1>Some text to enable scrolling</h1>
-        <h1>Some text to enable scrolling</h1>
-        <h1>Some text to enable scrolling</h1>
-        <h1>Some text to enable scrolling</h1>
-        <h1>Some text to enable scrolling</h1>
-        <h1>Some text to enable scrolling</h1>
-        <h1>Some text to enable scrolling</h1>
-        <h1>Some text to enable scrolling</h1>
-    </div>
+   
 
     <!-- /#wrapper -->
     <!-- jQuery -->

+ 4 - 3
CD67.ModeleMVC.MVC/Web.config

@@ -22,16 +22,17 @@
     <add key="PreserveLoginUrl" value="true" />
     <add key="ClientValidationEnabled" value="true" />
     <add key="UnobtrusiveJavaScriptEnabled" value="true" />
-  <add key="MvcSiteMapProvider_IncludeAssembliesForScan" value="CD67.ModeleMVC.MVC" /></appSettings>
+  </appSettings>
   <system.web>
-    <httpRuntime targetFramework="4.5.1" />
-    <compilation debug="true" targetFramework="4.5.1" />
     <siteMap defaultProvider="MvcSiteMapProvider">
       <providers>
         <clear />
         <add name="MvcSiteMapProvider" type="MvcSiteMapProvider.DefaultSiteMapProvider, MvcSiteMapProvider" siteMapFile="~/Mvc.Sitemap" />
       </providers>
     </siteMap>
+  
+    <httpRuntime targetFramework="4.5.1" />
+    <compilation debug="true" targetFramework="4.5.1" />
     <pages>
       <namespaces>
         <add namespace="System.Web.Helpers" />

+ 1 - 1
CD67.ModeleMVC.MVC/packages.config

@@ -28,7 +28,7 @@
   <package id="Modernizr" version="2.6.2" targetFramework="net451" />
   <package id="MvcSiteMapProvider.MVC5" version="4.6.22" targetFramework="net451" />
   <package id="MvcSiteMapProvider.MVC5.Core" version="4.6.22" targetFramework="net451" />
-  <package id="MvcSiteMapProvider.Web" version="4.6.1" targetFramework="net451" />
+  <package id="MvcSiteMapProvider.Web" version="4.6.22" targetFramework="net451" />
   <package id="Newtonsoft.Json" version="9.0.1" targetFramework="net451" />
   <package id="Oracle.ManagedDataAccess" version="12.1.24160719" targetFramework="net451" />
   <package id="Oracle.ManagedDataAccess.EntityFramework" version="12.1.2400" targetFramework="net451" />

+ 15 - 0
CD67.ModeleMVC.MVC/web.sitemap

@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<mvcSiteMap mlns="http://mvcsitemap.codeplex.com/schemas/MvcSiteMap-File-3.0" enableLocalization="false">
+  <mvcSiteMapNode title="Home" controller="Home" action="Index">
+   
+    <mvcSiteMapNode title="Type Viking" controller="TYPE_VIKING" action="Index">
+       <mvcSiteMapNode title="Details Type" controller="TYPE_VIKING" action="Details" preservedRouteParameters="id" />
+    </mvcSiteMapNode>
+    
+    <mvcSiteMapNode title="Vikings" controller="VIKINGS" action="Index" key="Vikings">
+       <mvcSiteMapNode title="Details Viking" controller="VIKINGS" action="Details" preservedRouteParameters="id" />
+    </mvcSiteMapNode>
+  
+    <mvcSiteMapNode title="About" controller="Home" action="About" />
+  </mvcSiteMapNode>
+</mvcSiteMap>