mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2025-10-15 19:54:57 +08:00

- current implication for blogs is that if a blog is set as the home page its posts are then all rooted (e.g. if a blog at /blog is set as the home page then it's available at / and a post at, say, /my-post instead of /blog/my-post). There should maybe be a setting to alter the paths of the posts but (1) that's a pain at the moment, (2) hacking the URL by removing the post slug would result in a 404 instead of redirecting to /, the path of the blog - we don't handle redirects of that nature - and (3) the ability to root a blog in this manner *has* been requested by some. --HG-- branch : dev
248 lines
20 KiB
C#
248 lines
20 KiB
C#
using System.Collections.Generic;
|
|
using System.Web.Mvc;
|
|
using System.Web.Routing;
|
|
using Orchard.Blogs.Routing;
|
|
using Orchard.Mvc.Routes;
|
|
|
|
namespace Orchard.Blogs {
|
|
public class Routes : IRouteProvider {
|
|
private readonly IBlogSlugConstraint _blogSlugConstraint;
|
|
|
|
public Routes(IBlogSlugConstraint blogSlugConstraint) {
|
|
_blogSlugConstraint = blogSlugConstraint;
|
|
}
|
|
|
|
public void GetRoutes(ICollection<RouteDescriptor> routes) {
|
|
foreach (var routeDescriptor in GetRoutes())
|
|
routes.Add(routeDescriptor);
|
|
}
|
|
|
|
public IEnumerable<RouteDescriptor> GetRoutes() {
|
|
return new[] {
|
|
new RouteDescriptor {
|
|
Route = new Route(
|
|
"Admin/Blogs/Create",
|
|
new RouteValueDictionary {
|
|
{"area", "Orchard.Blogs"},
|
|
{"controller", "BlogAdmin"},
|
|
{"action", "Create"}
|
|
},
|
|
new RouteValueDictionary(),
|
|
new RouteValueDictionary {
|
|
{"area", "Orchard.Blogs"}
|
|
},
|
|
new MvcRouteHandler())
|
|
},
|
|
new RouteDescriptor {
|
|
Route = new Route(
|
|
"Admin/Blogs/{blogId}/Edit",
|
|
new RouteValueDictionary {
|
|
{"area", "Orchard.Blogs"},
|
|
{"controller", "BlogAdmin"},
|
|
{"action", "Edit"}
|
|
},
|
|
new RouteValueDictionary (),
|
|
new RouteValueDictionary {
|
|
{"area", "Orchard.Blogs"}
|
|
},
|
|
new MvcRouteHandler())
|
|
},
|
|
new RouteDescriptor {
|
|
Route = new Route(
|
|
"Admin/Blogs/{blogId}/Remove",
|
|
new RouteValueDictionary {
|
|
{"area", "Orchard.Blogs"},
|
|
{"controller", "BlogAdmin"},
|
|
{"action", "Remove"}
|
|
},
|
|
new RouteValueDictionary (),
|
|
new RouteValueDictionary {
|
|
{"area", "Orchard.Blogs"}
|
|
},
|
|
new MvcRouteHandler())
|
|
},
|
|
new RouteDescriptor {
|
|
Route = new Route(
|
|
"Admin/Blogs/{blogId}",
|
|
new RouteValueDictionary {
|
|
{"area", "Orchard.Blogs"},
|
|
{"controller", "BlogAdmin"},
|
|
{"action", "Item"}
|
|
},
|
|
new RouteValueDictionary (),
|
|
new RouteValueDictionary {
|
|
{"area", "Orchard.Blogs"}
|
|
},
|
|
new MvcRouteHandler())
|
|
},
|
|
new RouteDescriptor {
|
|
Route = new Route(
|
|
"Admin/Blogs/{blogId}/Posts/Create",
|
|
new RouteValueDictionary {
|
|
{"area", "Orchard.Blogs"},
|
|
{"controller", "BlogPostAdmin"},
|
|
{"action", "Create"}
|
|
},
|
|
new RouteValueDictionary (),
|
|
new RouteValueDictionary {
|
|
{"area", "Orchard.Blogs"}
|
|
},
|
|
new MvcRouteHandler())
|
|
},
|
|
new RouteDescriptor {
|
|
Route = new Route(
|
|
"Admin/Blogs/{blogId}/Posts/{postId}/Edit",
|
|
new RouteValueDictionary {
|
|
{"area", "Orchard.Blogs"},
|
|
{"controller", "BlogPostAdmin"},
|
|
{"action", "Edit"}
|
|
},
|
|
new RouteValueDictionary (),
|
|
new RouteValueDictionary {
|
|
{"area", "Orchard.Blogs"}
|
|
},
|
|
new MvcRouteHandler())
|
|
},
|
|
new RouteDescriptor {
|
|
Route = new Route(
|
|
"Admin/Blogs/{blogId}/Posts/{postId}/Delete",
|
|
new RouteValueDictionary {
|
|
{"area", "Orchard.Blogs"},
|
|
{"controller", "BlogPostAdmin"},
|
|
{"action", "Delete"}
|
|
},
|
|
new RouteValueDictionary (),
|
|
new RouteValueDictionary {
|
|
{"area", "Orchard.Blogs"}
|
|
},
|
|
new MvcRouteHandler())
|
|
},
|
|
new RouteDescriptor {
|
|
Route = new Route(
|
|
"Admin/Blogs/{blogId}/Posts/{postId}/Publish",
|
|
new RouteValueDictionary {
|
|
{"area", "Orchard.Blogs"},
|
|
{"controller", "BlogPostAdmin"},
|
|
{"action", "Publish"}
|
|
},
|
|
new RouteValueDictionary (),
|
|
new RouteValueDictionary {
|
|
{"area", "Orchard.Blogs"}
|
|
},
|
|
new MvcRouteHandler())
|
|
},
|
|
new RouteDescriptor {
|
|
Route = new Route(
|
|
"Admin/Blogs/{blogId}/Posts/{postId}/Unpublish",
|
|
new RouteValueDictionary {
|
|
{"area", "Orchard.Blogs"},
|
|
{"controller", "BlogPostAdmin"},
|
|
{"action", "Unpublish"}
|
|
},
|
|
new RouteValueDictionary (),
|
|
new RouteValueDictionary {
|
|
{"area", "Orchard.Blogs"}
|
|
},
|
|
new MvcRouteHandler())
|
|
},
|
|
new RouteDescriptor {
|
|
Route = new Route(
|
|
"Admin/Blogs",
|
|
new RouteValueDictionary {
|
|
{"area", "Orchard.Blogs"},
|
|
{"controller", "BlogAdmin"},
|
|
{"action", "List"}
|
|
},
|
|
new RouteValueDictionary(),
|
|
new RouteValueDictionary {
|
|
{"area", "Orchard.Blogs"}
|
|
},
|
|
new MvcRouteHandler())
|
|
},
|
|
new RouteDescriptor {
|
|
Route = new Route(
|
|
"Blogs",
|
|
new RouteValueDictionary {
|
|
{"area", "Orchard.Blogs"},
|
|
{"controller", "Blog"},
|
|
{"action", "List"}
|
|
},
|
|
new RouteValueDictionary(),
|
|
new RouteValueDictionary {
|
|
{"area", "Orchard.Blogs"}
|
|
},
|
|
new MvcRouteHandler())
|
|
},
|
|
new RouteDescriptor {
|
|
Route = new Route(
|
|
"{blogSlug}/Archive/{*archiveData}",
|
|
new RouteValueDictionary {
|
|
{"area", "Orchard.Blogs"},
|
|
{"controller", "BlogPost"},
|
|
{"action", "ListByArchive"}
|
|
},
|
|
new RouteValueDictionary {
|
|
{"blogSlug", _blogSlugConstraint},
|
|
{"archiveData", new IsArchiveConstraint()}
|
|
},
|
|
new RouteValueDictionary {
|
|
{"area", "Orchard.Blogs"}
|
|
},
|
|
new MvcRouteHandler())
|
|
},
|
|
new RouteDescriptor {
|
|
Priority = 11,
|
|
Route = new Route(
|
|
"{blogSlug}/rsd",
|
|
new RouteValueDictionary {
|
|
{"area", "Orchard.Blogs"},
|
|
{"controller", "RemoteBlogPublishing"},
|
|
{"action", "Rsd"}
|
|
},
|
|
new RouteValueDictionary {
|
|
{"blogSlug", _blogSlugConstraint}
|
|
},
|
|
new RouteValueDictionary {
|
|
{"area", "Orchard.Blogs"}
|
|
},
|
|
new MvcRouteHandler())
|
|
},
|
|
new RouteDescriptor {
|
|
Priority = 11,
|
|
Route = new Route(
|
|
"{blogSlug}/{postSlug}",
|
|
new RouteValueDictionary {
|
|
{"area", "Orchard.Blogs"},
|
|
{"controller", "BlogPost"},
|
|
{"action", "Item"}
|
|
},
|
|
new RouteValueDictionary {
|
|
{"blogSlug", _blogSlugConstraint}
|
|
},
|
|
new RouteValueDictionary {
|
|
{"area", "Orchard.Blogs"}
|
|
},
|
|
new MvcRouteHandler())
|
|
},
|
|
new RouteDescriptor {
|
|
Priority = 11,
|
|
Route = new Route(
|
|
"{blogSlug}",
|
|
new RouteValueDictionary {
|
|
{"area", "Orchard.Blogs"},
|
|
{"controller", "Blog"},
|
|
{"action", "Item"},
|
|
{"blogSlug", ""}
|
|
},
|
|
new RouteValueDictionary {
|
|
{"blogSlug", _blogSlugConstraint}
|
|
},
|
|
new RouteValueDictionary {
|
|
{"area", "Orchard.Blogs"}
|
|
},
|
|
new MvcRouteHandler())
|
|
}
|
|
};
|
|
}
|
|
}
|
|
} |