diff --git a/.hgsubstate b/.hgsubstate index fcd9fe4b7..7f7853e9c 100644 --- a/.hgsubstate +++ b/.hgsubstate @@ -1,5 +1,5 @@ 72d4e648204d19d918c5eddec55c7be73d05a00d src/Orchard.Web/Modules/Orchard.Alias -d78707da9c4ba311afb092f24bb463531bdc62e8 src/Orchard.Web/Modules/Orchard.Autoroute +2324a4ee85573614dad9df657d383cf541d34d54 src/Orchard.Web/Modules/Orchard.Autoroute ec573e5476f7e8a5a61593d6393e9985e9484fcc src/Orchard.Web/Modules/Orchard.Forms 0d1100754d594a2977eaab40630f1c46a9e8cf2c src/Orchard.Web/Modules/Orchard.Projections bf1f2857f36786c66013e0dee3c37e94cd26465e src/Orchard.Web/Modules/Orchard.Routable diff --git a/src/Orchard.Web/Core/Common/Drivers/BodyPartDriver.cs b/src/Orchard.Web/Core/Common/Drivers/BodyPartDriver.cs index db1f35533..43d45f19f 100644 --- a/src/Orchard.Web/Core/Common/Drivers/BodyPartDriver.cs +++ b/src/Orchard.Web/Core/Common/Drivers/BodyPartDriver.cs @@ -2,25 +2,29 @@ using System.Linq; using System.Web; using JetBrains.Annotations; +using Orchard.Mvc.Html; using Orchard.ContentManagement; using Orchard.ContentManagement.Aspects; using Orchard.ContentManagement.Drivers; using Orchard.Core.Common.Models; using Orchard.Core.Common.Settings; using Orchard.Core.Common.ViewModels; -using Orchard.Core.Routable.Models; using Orchard.Services; +using System.Web.Mvc; +using System.Web.Routing; namespace Orchard.Core.Common.Drivers { [UsedImplicitly] public class BodyPartDriver : ContentPartDriver { private readonly IEnumerable _htmlFilters; + private readonly RequestContext _requestContext; private const string TemplateName = "Parts.Common.Body"; - public BodyPartDriver(IOrchardServices services, IEnumerable htmlFilters) { + public BodyPartDriver(IOrchardServices services, IEnumerable htmlFilters, RequestContext requestContext) { _htmlFilters = htmlFilters; Services = services; + _requestContext = requestContext; } public IOrchardServices Services { get; set; } @@ -45,13 +49,13 @@ namespace Orchard.Core.Common.Drivers { } protected override DriverResult Editor(BodyPart part, dynamic shapeHelper) { - var model = BuildEditorViewModel(part); + var model = BuildEditorViewModel(part,_requestContext); return ContentShape("Parts_Common_Body_Edit", () => shapeHelper.EditorTemplate(TemplateName: TemplateName, Model: model, Prefix: Prefix)); } protected override DriverResult Editor(BodyPart part, IUpdateModel updater, dynamic shapeHelper) { - var model = BuildEditorViewModel(part); + var model = BuildEditorViewModel(part, _requestContext); updater.TryUpdateModel(model, Prefix, null, null); return ContentShape("Parts_Common_Body_Edit", @@ -69,11 +73,11 @@ namespace Orchard.Core.Common.Drivers { context.Element(part.PartDefinition.Name).SetAttributeValue("Text", part.Text); } - private static BodyEditorViewModel BuildEditorViewModel(BodyPart part) { + private static BodyEditorViewModel BuildEditorViewModel(BodyPart part,RequestContext requestContext) { return new BodyEditorViewModel { BodyPart = part, EditorFlavor = GetFlavor(part), - AddMediaPath = new PathBuilder(part).AddContentType().AddContainerSlug().AddSlug().ToString() + AddMediaPath = new PathBuilder(part,requestContext).AddContentType().AddContainerSlug().ToString() }; } @@ -87,10 +91,12 @@ namespace Orchard.Core.Common.Drivers { class PathBuilder { private readonly IContent _content; private string _path; + private readonly RequestContext _requestContext; - public PathBuilder(IContent content) { + public PathBuilder(IContent content,RequestContext requestContext) { _content = content; _path = ""; + _requestContext = requestContext; } public override string ToString() { @@ -104,23 +110,10 @@ namespace Orchard.Core.Common.Drivers { public PathBuilder AddContainerSlug() { var common = _content.As(); - if (common == null) + if (common == null || common.Container==null) return this; - - var routable = common.Container.As(); - if (routable == null) - return this; - - Add(routable.Slug); - return this; - } - - public PathBuilder AddSlug() { - var routable = _content.As(); - if (routable == null) - return this; - - Add(routable.Slug); + var helper = new UrlHelper(_requestContext); + Add(helper.ItemDisplayUrl(common.Container)); return this; } diff --git a/src/Orchard.Web/Core/Containers/Controllers/ItemController.cs b/src/Orchard.Web/Core/Containers/Controllers/ItemController.cs index 36dde2e7b..55a44203d 100644 --- a/src/Orchard.Web/Core/Containers/Controllers/ItemController.cs +++ b/src/Orchard.Web/Core/Containers/Controllers/ItemController.cs @@ -7,7 +7,6 @@ using Orchard.Core.Common.Models; using Orchard.Core.Containers.Extensions; using Orchard.Core.Containers.Models; using Orchard.Core.Feeds; -using Orchard.Core.Routable.Models; using Orchard.DisplayManagement; using Orchard.Mvc; using Orchard.Themes; diff --git a/src/Orchard.Web/Core/Containers/Drivers/ContainerPartDriver.cs b/src/Orchard.Web/Core/Containers/Drivers/ContainerPartDriver.cs index ebf7bfb2c..f9e997ee9 100644 --- a/src/Orchard.Web/Core/Containers/Drivers/ContainerPartDriver.cs +++ b/src/Orchard.Web/Core/Containers/Drivers/ContainerPartDriver.cs @@ -12,7 +12,6 @@ using Orchard.Localization; using Orchard.UI.Notify; using Orchard.DisplayManagement; using Orchard.Core.Containers.Extensions; -using Orchard.Core.Routable.Models; using System.Web.Routing; using Orchard.Settings; using Orchard.Core.Feeds; diff --git a/src/Orchard.Web/Core/Containers/Extensions/ContentQueryExtensions.cs b/src/Orchard.Web/Core/Containers/Extensions/ContentQueryExtensions.cs index 24b296b3b..25f0df35b 100644 --- a/src/Orchard.Web/Core/Containers/Extensions/ContentQueryExtensions.cs +++ b/src/Orchard.Web/Core/Containers/Extensions/ContentQueryExtensions.cs @@ -3,7 +3,6 @@ using System.Collections.Generic; using Orchard.ContentManagement; using Orchard.Core.Common.Models; using Orchard.Core.Containers.Models; -using Orchard.Core.Routable.Models; using Orchard.Core.Title.Models; namespace Orchard.Core.Containers.Extensions { @@ -21,16 +20,6 @@ namespace Orchard.Core.Containers.Extensions { ? query.OrderByDescending(record => record.Title) : query.OrderBy(record => record.Title); break; - case "RoutePart.Title": - query = descendingOrder - ? query.OrderByDescending(record => record.Title) - : query.OrderBy(record => record.Title); - break; - case "RoutePart.Slug": - query = descendingOrder - ? query.OrderByDescending(record => record.Slug) - : query.OrderBy(record => record.Slug); - break; case "CustomPropertiesPart.CustomOne": query = descendingOrder ? query.OrderByDescending(record => record.CustomOne) @@ -75,14 +64,6 @@ namespace Orchard.Core.Containers.Extensions { {"TitlePart.Title|>", new Func, string, IContentQuery>((q, s) => q.Where(r => true /* CompareTo is not implemented - r.Title.CompareTo(s) == 1*/))}, {"TitlePart.Title|=", new Func, string, IContentQuery>((q, s) => q.Where(r => r.Title.Equals(s, StringComparison.OrdinalIgnoreCase)))}, {"TitlePart.Title|^=", new Func, string, IContentQuery>((q, s) => q.Where(r => r.Title.StartsWith(s, StringComparison.OrdinalIgnoreCase)))}, - {"RoutePart.Title|<", new Func, string, IContentQuery>((q, s) => q.Where(r => true /* CompareTo is not implemented - r.Title.CompareTo(s) == -1*/))}, - {"RoutePart.Title|>", new Func, string, IContentQuery>((q, s) => q.Where(r => true /* CompareTo is not implemented - r.Title.CompareTo(s) == 1*/))}, - {"RoutePart.Title|=", new Func, string, IContentQuery>((q, s) => q.Where(r => r.Title.Equals(s, StringComparison.OrdinalIgnoreCase)))}, - {"RoutePart.Title|^=", new Func, string, IContentQuery>((q, s) => q.Where(r => r.Title.StartsWith(s, StringComparison.OrdinalIgnoreCase)))}, - {"RoutePart.Slug|<", new Func, string, IContentQuery>((q, s) => q.Where(r => true /* CompareTo is not implemented - r.Slug.CompareTo(s) == -1*/))}, - {"RoutePart.Slug|>", new Func, string, IContentQuery>((q, s) => q.Where(r => true /* CompareTo is not implemented - r.Slug.CompareTo(s) == 1*/))}, - {"RoutePart.Slug|=", new Func, string, IContentQuery>((q, s) => q.Where(r => r.Slug.Equals(s.Trim(), StringComparison.OrdinalIgnoreCase)))}, - {"RoutePart.Slug|^=", new Func, string, IContentQuery>((q, s) => q.Where(r => r.Slug.StartsWith(s, StringComparison.OrdinalIgnoreCase)))}, {"CommonPart.PublishedUtc|<", new Func, string, IContentQuery>((q, s) => q.Where(r => r.PublishedUtc < DateTime.Parse(s)))}, {"CommonPart.PublishedUtc|>", new Func, string, IContentQuery>((q, s) => q.Where(r => r.PublishedUtc > DateTime.Parse(s)))}, {"CommonPart.PublishedUtc|=", new Func, string, IContentQuery>((q, s) => q.Where(r => r.PublishedUtc == DateTime.Parse(s)))}, // todo: (heskew) not practical as is. needs some sense of precision.... diff --git a/src/Orchard.Web/Core/Contents/Controllers/AdminController.cs b/src/Orchard.Web/Core/Contents/Controllers/AdminController.cs index 4e66ca437..49ac78afd 100644 --- a/src/Orchard.Web/Core/Contents/Controllers/AdminController.cs +++ b/src/Orchard.Web/Core/Contents/Controllers/AdminController.cs @@ -12,7 +12,6 @@ using Orchard.Core.Common.Models; using Orchard.Core.Containers.Models; using Orchard.Core.Contents.Settings; using Orchard.Core.Contents.ViewModels; -using Orchard.Core.Routable.Models; using Orchard.Data; using Orchard.DisplayManagement; using Orchard.Localization; @@ -293,6 +292,8 @@ namespace Orchard.Core.Contents.Controllers { return new HttpUnauthorizedResult(); // store the previous route in case a back redirection is requested + // TODO: (PH:Autoroute) This won't be needed if automatic redirect aliases are implemented; otherwise, needs fixing + /* string previousRoute = null; if(contentItem.Has() &&!string.IsNullOrWhiteSpace(returnUrl) @@ -301,7 +302,7 @@ namespace Orchard.Core.Contents.Controllers { && String.Equals(returnUrl, Url.ItemDisplayUrl(contentItem), StringComparison.OrdinalIgnoreCase) ) { previousRoute = contentItem.As().Path; - } + }*/ dynamic model = _contentManager.UpdateEditor(contentItem, this); if (!ModelState.IsValid) { @@ -313,12 +314,14 @@ namespace Orchard.Core.Contents.Controllers { conditionallyPublish(contentItem); // did the route change ? + // TODO: (PH:Autoroute) This won't be needed if automatic redirect aliases are implemented; otherwise, needs fixing + /* if (!string.IsNullOrWhiteSpace(returnUrl) && previousRoute != null && !String.Equals(contentItem.As().Path, previousRoute, StringComparison.OrdinalIgnoreCase)) { returnUrl = Url.ItemDisplayUrl(contentItem); } - + */ Services.Notifier.Information(string.IsNullOrWhiteSpace(contentItem.TypeDefinition.DisplayName) ? T("Your content has been saved.") : T("Your {0} has been saved.", contentItem.TypeDefinition.DisplayName)); diff --git a/src/Orchard.Web/Core/Feeds/StandardBuilders/ItemInspector.cs b/src/Orchard.Web/Core/Feeds/StandardBuilders/ItemInspector.cs index 2d7d4064e..71a6bc7d4 100644 --- a/src/Orchard.Web/Core/Feeds/StandardBuilders/ItemInspector.cs +++ b/src/Orchard.Web/Core/Feeds/StandardBuilders/ItemInspector.cs @@ -6,7 +6,6 @@ using Orchard.ContentManagement; using Orchard.ContentManagement.Aspects; using Orchard.Core.Common.Models; using Orchard.Core.Common.Settings; -using Orchard.Core.Routable.Models; using Orchard.Services; namespace Orchard.Core.Feeds.StandardBuilders { @@ -15,7 +14,7 @@ namespace Orchard.Core.Feeds.StandardBuilders { private readonly ContentItemMetadata _metadata; private readonly IEnumerable _htmlFilters; private readonly ICommonPart _common; - private readonly RoutePart _routable; + private readonly ITitleAspect _titleAspect; private readonly BodyPart _body; public ItemInspector(IContent item, ContentItemMetadata metadata) : this(item, metadata, Enumerable.Empty()) {} @@ -25,7 +24,7 @@ namespace Orchard.Core.Feeds.StandardBuilders { _metadata = metadata; _htmlFilters = htmlFilters; _common = item.Get(); - _routable = item.Get(); + _titleAspect = item.Get(); _body = item.Get(); } @@ -33,8 +32,8 @@ namespace Orchard.Core.Feeds.StandardBuilders { get { if (_metadata != null && !string.IsNullOrEmpty(_metadata.DisplayText)) return _metadata.DisplayText; - if (_routable != null && !string.IsNullOrEmpty(_routable.Title)) - return _routable.Title; + if (_titleAspect != null && !string.IsNullOrEmpty(_titleAspect.Title)) + return _titleAspect.Title; return _item.ContentItem.ContentType + " #" + _item.ContentItem.Id; } } diff --git a/src/Orchard.Web/Modules/Orchard.Blogs/Controllers/BlogAdminController.cs b/src/Orchard.Web/Modules/Orchard.Blogs/Controllers/BlogAdminController.cs index bd74d8ecb..48caa4fbd 100644 --- a/src/Orchard.Web/Modules/Orchard.Blogs/Controllers/BlogAdminController.cs +++ b/src/Orchard.Web/Modules/Orchard.Blogs/Controllers/BlogAdminController.cs @@ -7,7 +7,6 @@ using Orchard.Blogs.Routing; using Orchard.Blogs.Services; using Orchard.ContentManagement; using Orchard.ContentManagement.Aspects; -using Orchard.Core.Routable.Services; using Orchard.Data; using Orchard.DisplayManagement; using Orchard.Localization; diff --git a/src/Orchard.Web/Modules/Orchard.Blogs/Drivers/RecentBlogPostsPartDriver.cs b/src/Orchard.Web/Modules/Orchard.Blogs/Drivers/RecentBlogPostsPartDriver.cs index 207e97472..ff2dd3f7d 100644 --- a/src/Orchard.Web/Modules/Orchard.Blogs/Drivers/RecentBlogPostsPartDriver.cs +++ b/src/Orchard.Web/Modules/Orchard.Blogs/Drivers/RecentBlogPostsPartDriver.cs @@ -8,7 +8,6 @@ using Orchard.ContentManagement; using Orchard.ContentManagement.Drivers; using Orchard.ContentManagement.Handlers; using Orchard.Core.Common.Models; -using Orchard.Core.Routable.Models; namespace Orchard.Blogs.Drivers { public class RecentBlogPostsPartDriver : ContentPartDriver { @@ -23,7 +22,7 @@ namespace Orchard.Blogs.Drivers { } protected override DriverResult Display(RecentBlogPostsPart part, string displayType, dynamic shapeHelper) { - BlogPart blog = GetBlogFromSlug(part.ForBlog); + BlogPart blog = _blogService.Get(part.ForBlog,VersionOptions.Published).As(); if (blog == null) { return null; @@ -46,7 +45,7 @@ namespace Orchard.Blogs.Drivers { protected override DriverResult Editor(RecentBlogPostsPart part, dynamic shapeHelper) { var viewModel = new RecentBlogPostsViewModel { Count = part.Count, - Slug = part.ForBlog, + BlogId = part.ForBlog, Blogs = _blogService.Get().ToList().OrderBy(b => b.Name) }; @@ -57,7 +56,7 @@ namespace Orchard.Blogs.Drivers { protected override DriverResult Editor(RecentBlogPostsPart part, IUpdateModel updater, dynamic shapeHelper) { var viewModel = new RecentBlogPostsViewModel(); if (updater.TryUpdateModel(viewModel, Prefix, null, null)) { - part.ForBlog = viewModel.Slug; + part.ForBlog = viewModel.BlogId; part.Count = viewModel.Count; } @@ -65,9 +64,9 @@ namespace Orchard.Blogs.Drivers { } protected override void Importing(RecentBlogPostsPart part, ImportContentContext context) { - var blogSlug = context.Attribute(part.PartDefinition.Name, "BlogSlug"); - if (blogSlug != null) { - part.ForBlog = blogSlug; + var blogId = context.Attribute(part.PartDefinition.Name, "BlogId"); + if (blogId != null) { + part.ForBlog = Convert.ToInt32(blogId); } var count = context.Attribute(part.PartDefinition.Name, "Count"); @@ -77,14 +76,9 @@ namespace Orchard.Blogs.Drivers { } protected override void Exporting(RecentBlogPostsPart part, ExportContentContext context) { - context.Element(part.PartDefinition.Name).SetAttributeValue("BlogSlug", part.ForBlog); + context.Element(part.PartDefinition.Name).SetAttributeValue("BlogId", part.ForBlog); context.Element(part.PartDefinition.Name).SetAttributeValue("Count", part.Count); } - private BlogPart GetBlogFromSlug(string slug) { - return _contentManager.Query() - .Join().Where(rr => rr.Slug == slug) - .List().FirstOrDefault(); - } } } \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Blogs/Extensions/UrlHelperExtensions.cs b/src/Orchard.Web/Modules/Orchard.Blogs/Extensions/UrlHelperExtensions.cs index 0da745e81..a574505fe 100644 --- a/src/Orchard.Web/Modules/Orchard.Blogs/Extensions/UrlHelperExtensions.cs +++ b/src/Orchard.Web/Modules/Orchard.Blogs/Extensions/UrlHelperExtensions.cs @@ -2,7 +2,6 @@ using System.Web.Mvc; using Orchard.Blogs.Models; using Orchard.ContentManagement; using Orchard.ContentManagement.Aspects; -using Orchard.Core.Routable.Services; using Orchard.Mvc.Extensions; using Orchard.Mvc.Html; diff --git a/src/Orchard.Web/Modules/Orchard.Blogs/Migrations.cs b/src/Orchard.Web/Modules/Orchard.Blogs/Migrations.cs index 8fc938983..a3cb2b5b8 100644 --- a/src/Orchard.Web/Modules/Orchard.Blogs/Migrations.cs +++ b/src/Orchard.Web/Modules/Orchard.Blogs/Migrations.cs @@ -107,8 +107,26 @@ namespace Orchard.Blogs { .WithPart("AutoroutePart") ); return 5; + } + public int UpdateFrom5() { + SchemaBuilder.AlterTable("RecentBlogPostsPartRecord", + table => table.AddColumn("BlogId") + ); + SchemaBuilder.AlterTable("BlogArchivesPartRecord", + table => table.AddColumn("BlogId") + ); + // TODO: (PH:Autoroute) Convert BlogSlug to BlogId + SchemaBuilder.AlterTable("RecentBlogPostsPartRecord", + table => table.DropColumn("BlogSlug") + ); + + SchemaBuilder.AlterTable("BlogArchivesPartRecord", + table => table.DropColumn("BlogSlug") + ); + + return 6; } } } \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Blogs/Models/BlogPart.cs b/src/Orchard.Web/Modules/Orchard.Blogs/Models/BlogPart.cs index f7b0930e0..7b04b5458 100644 --- a/src/Orchard.Web/Modules/Orchard.Blogs/Models/BlogPart.cs +++ b/src/Orchard.Web/Modules/Orchard.Blogs/Models/BlogPart.cs @@ -1,5 +1,4 @@ using Orchard.ContentManagement; -using Orchard.Core.Routable.Models; using Orchard.ContentManagement.Aspects; namespace Orchard.Blogs.Models { @@ -7,7 +6,6 @@ namespace Orchard.Blogs.Models { // TODO: (PH) This isn't referenced in many places but should use ContentItemMetadata instead? public string Name { - get { return this.As().Title; } } diff --git a/src/Orchard.Web/Modules/Orchard.Blogs/Models/RecentBlogPostsPart.cs b/src/Orchard.Web/Modules/Orchard.Blogs/Models/RecentBlogPostsPart.cs index e364c32e5..2f4a4cb27 100644 --- a/src/Orchard.Web/Modules/Orchard.Blogs/Models/RecentBlogPostsPart.cs +++ b/src/Orchard.Web/Modules/Orchard.Blogs/Models/RecentBlogPostsPart.cs @@ -4,9 +4,9 @@ using Orchard.ContentManagement; namespace Orchard.Blogs.Models { public class RecentBlogPostsPart : ContentPart { - public string ForBlog { - get { return Record.BlogSlug; } - set { Record.BlogSlug = value; } + public int ForBlog { + get { return Record.BlogId; } + set { Record.BlogId = value; } } [Required] diff --git a/src/Orchard.Web/Modules/Orchard.Blogs/Models/RecentBlogPostsPartRecord.cs b/src/Orchard.Web/Modules/Orchard.Blogs/Models/RecentBlogPostsPartRecord.cs index 43881a8f0..f15a3b8d5 100644 --- a/src/Orchard.Web/Modules/Orchard.Blogs/Models/RecentBlogPostsPartRecord.cs +++ b/src/Orchard.Web/Modules/Orchard.Blogs/Models/RecentBlogPostsPartRecord.cs @@ -5,8 +5,7 @@ namespace Orchard.Blogs.Models { public RecentBlogPostsPartRecord() { Count = 5; } - - public virtual string BlogSlug { get; set; } + public virtual int BlogId { get; set; } public virtual int Count { get; set; } - } + } } diff --git a/src/Orchard.Web/Modules/Orchard.Blogs/Services/BlogPostService.cs b/src/Orchard.Web/Modules/Orchard.Blogs/Services/BlogPostService.cs index 8484591a5..2b55d1f64 100644 --- a/src/Orchard.Web/Modules/Orchard.Blogs/Services/BlogPostService.cs +++ b/src/Orchard.Web/Modules/Orchard.Blogs/Services/BlogPostService.cs @@ -6,8 +6,6 @@ using Orchard.Blogs.Models; using Orchard.ContentManagement.Aspects; using Orchard.Core.Common.Models; using Orchard.ContentManagement; -using Orchard.Core.Routable.Models; -using Orchard.Core.Routable.Services; using Orchard.Data; using Orchard.Tasks.Scheduling; @@ -24,18 +22,6 @@ namespace Orchard.Blogs.Services { _publishingTaskManager = publishingTaskManager; } - public BlogPostPart Get(BlogPart blogPart, string slug) { - return Get(blogPart, slug, VersionOptions.Published); - } - - public BlogPostPart Get(BlogPart blogPart, string slug, VersionOptions versionOptions) { - var postPath = blogPart.As().GetChildPath(slug); - return - _contentManager.Query(versionOptions, "BlogPost").Join().Where(rr => rr.Path == postPath). - Join().Where(cr => cr.Container == blogPart.Record.ContentItemRecord).List(). - SingleOrDefault().As(); - } - public BlogPostPart Get(int id) { return Get(id, VersionOptions.Published); } diff --git a/src/Orchard.Web/Modules/Orchard.Blogs/Services/IBlogPostService.cs b/src/Orchard.Web/Modules/Orchard.Blogs/Services/IBlogPostService.cs index 468d59d6a..6b915ee60 100644 --- a/src/Orchard.Web/Modules/Orchard.Blogs/Services/IBlogPostService.cs +++ b/src/Orchard.Web/Modules/Orchard.Blogs/Services/IBlogPostService.cs @@ -5,8 +5,6 @@ using Orchard.ContentManagement; namespace Orchard.Blogs.Services { public interface IBlogPostService : IDependency { - BlogPostPart Get(BlogPart blogPart, string slug); - BlogPostPart Get(BlogPart blogPart, string slug, VersionOptions versionOptions); BlogPostPart Get(int id); BlogPostPart Get(int id, VersionOptions versionOptions); IEnumerable Get(BlogPart blogPart); diff --git a/src/Orchard.Web/Modules/Orchard.Blogs/Services/XmlRpcHandler.cs b/src/Orchard.Web/Modules/Orchard.Blogs/Services/XmlRpcHandler.cs index 2f47ae07d..7a895bf47 100644 --- a/src/Orchard.Web/Modules/Orchard.Blogs/Services/XmlRpcHandler.cs +++ b/src/Orchard.Web/Modules/Orchard.Blogs/Services/XmlRpcHandler.cs @@ -9,8 +9,6 @@ using Orchard.Blogs.Models; using Orchard.ContentManagement; using Orchard.ContentManagement.Aspects; using Orchard.Core.Common.Models; -using Orchard.Core.Routable.Models; -using Orchard.Core.Routable.Services; using Orchard.Core.XmlRpc; using Orchard.Core.XmlRpc.Models; using Orchard.Environment.Extensions; @@ -20,6 +18,7 @@ using Orchard.Mvc.Extensions; using Orchard.Security; using Orchard.Blogs.Extensions; using Orchard.Mvc.Html; +using Orchard.Core.Title.Models; namespace Orchard.Blogs.Services { [UsedImplicitly] @@ -288,8 +287,8 @@ namespace Orchard.Blogs.Services { } //RoutePart - if (blogPost.Is()) { - blogPost.As().Title = HttpUtility.HtmlDecode(title); + if (blogPost.Is()) { + blogPost.As().Title = HttpUtility.HtmlDecode(title); blogPost.As().Slug = slug; _routableService.FillSlugFromTitle(blogPost.As()); blogPost.As().Path = blogPost.As().GetPathWithSlug(blogPost.As().Slug); diff --git a/src/Orchard.Web/Modules/Orchard.Blogs/ViewModels/RecentBlogPostsViewModel.cs b/src/Orchard.Web/Modules/Orchard.Blogs/ViewModels/RecentBlogPostsViewModel.cs index 4ff906191..1836f6804 100644 --- a/src/Orchard.Web/Modules/Orchard.Blogs/ViewModels/RecentBlogPostsViewModel.cs +++ b/src/Orchard.Web/Modules/Orchard.Blogs/ViewModels/RecentBlogPostsViewModel.cs @@ -4,7 +4,8 @@ using Orchard.Blogs.Models; namespace Orchard.Blogs.ViewModels { public class RecentBlogPostsViewModel { public int Count { get; set; } - public string Slug { get; set; } + public int BlogId { get; set; } public IEnumerable Blogs { get; set; } + } } \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Blogs/Views/EditorTemplates/Parts.Blogs.RecentBlogPosts.cshtml b/src/Orchard.Web/Modules/Orchard.Blogs/Views/EditorTemplates/Parts.Blogs.RecentBlogPosts.cshtml index 9bf740aff..3e66ae5b1 100644 --- a/src/Orchard.Web/Modules/Orchard.Blogs/Views/EditorTemplates/Parts.Blogs.RecentBlogPosts.cshtml +++ b/src/Orchard.Web/Modules/Orchard.Blogs/Views/EditorTemplates/Parts.Blogs.RecentBlogPosts.cshtml @@ -1,15 +1,14 @@ @model Orchard.Blogs.ViewModels.RecentBlogPostsViewModel @using Orchard.Blogs.Models; -@using Orchard.Core.Routable.Models; @using Orchard.ContentManagement;
- @Html.LabelFor(m => m.Slug, T("For Blog")) - @foreach(BlogPart blog in Model.Blogs) { - @Html.SelectOption(Model.Slug, blog.As().Slug, blog.Name) + @Html.SelectOption(Model.BlogId, blog.ContentItem.Id, blog.Name) } @T("Select which blog you want to display the recent posts for")