mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2025-10-15 11:44:58 +08:00
Fix LiveWriter blog post creation
We weren't setting the new "Path" property --HG-- branch : dev
This commit is contained in:
@@ -43,17 +43,6 @@ namespace Orchard.Core.Routable.Drivers {
|
||||
return null;
|
||||
}
|
||||
|
||||
string GetContainerSlug(IContent item) {
|
||||
var commonAspect = item.As<ICommonPart>();
|
||||
if (commonAspect != null && commonAspect.Container != null) {
|
||||
var routable = commonAspect.Container.As<IRoutableAspect>();
|
||||
if (routable != null) {
|
||||
return routable.Slug;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
protected override DriverResult Editor(RoutePart part) {
|
||||
var model = new RoutableEditorViewModel {
|
||||
ContentType = part.ContentItem.ContentType,
|
||||
@@ -69,7 +58,7 @@ namespace Orchard.Core.Routable.Drivers {
|
||||
model.DisplayLeadingPath = path.Substring(0, path.Length - part.Slug.Length);
|
||||
}
|
||||
else {
|
||||
var containerSlug = GetContainerSlug(part);
|
||||
var containerSlug = part.GetContainerSlug();
|
||||
model.DisplayLeadingPath = !string.IsNullOrWhiteSpace(containerSlug)
|
||||
? string.Format("{0}/", containerSlug)
|
||||
: "";
|
||||
@@ -88,13 +77,7 @@ namespace Orchard.Core.Routable.Drivers {
|
||||
part.Slug = model.Slug;
|
||||
|
||||
// TEMP: path format patterns replaces this logic
|
||||
var containerSlug = GetContainerSlug(part);
|
||||
if (string.IsNullOrEmpty(containerSlug)) {
|
||||
part.Path = model.Slug;
|
||||
}
|
||||
else {
|
||||
part.Path = containerSlug + "/" + model.Slug;
|
||||
}
|
||||
part.Path = part.GetPathFromSlug(model.Slug);
|
||||
|
||||
if (!_routableService.IsSlugValid(part.Slug)) {
|
||||
updater.AddModelError("Routable.Slug", T("Please do not use any of the following characters in your slugs: \"/\", \":\", \"?\", \"#\", \"[\", \"]\", \"@\", \"!\", \"$\", \"&\", \"'\", \"(\", \")\", \"*\", \"+\", \",\", \";\", \"=\". No spaces are allowed (please use dashes or underscores instead)."));
|
||||
|
@@ -17,5 +17,25 @@ namespace Orchard.Core.Routable.Models {
|
||||
get { return Record.Path; }
|
||||
set { Record.Path = value; }
|
||||
}
|
||||
|
||||
public string GetContainerSlug() {
|
||||
var commonAspect = this.As<ICommonPart>();
|
||||
if (commonAspect != null && commonAspect.Container != null) {
|
||||
var routable = commonAspect.Container.As<IRoutableAspect>();
|
||||
if (routable != null) {
|
||||
return routable.Slug;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public string GetPathFromSlug(string slug) {
|
||||
// TEMP: path format patterns replaces this logic
|
||||
var containerSlug = GetContainerSlug();
|
||||
if (string.IsNullOrEmpty(containerSlug)) {
|
||||
return slug;
|
||||
}
|
||||
return containerSlug + "/" + slug;
|
||||
}
|
||||
}
|
||||
}
|
@@ -6,6 +6,9 @@ using JetBrains.Annotations;
|
||||
using Orchard.Blogs.Drivers;
|
||||
using Orchard.Blogs.Models;
|
||||
using Orchard.ContentManagement;
|
||||
using Orchard.ContentManagement.Aspects;
|
||||
using Orchard.Core.Common.Models;
|
||||
using Orchard.Core.Routable.Models;
|
||||
using Orchard.Core.XmlRpc;
|
||||
using Orchard.Core.XmlRpc.Models;
|
||||
using Orchard.Environment.Extensions;
|
||||
@@ -160,11 +163,24 @@ namespace Orchard.Blogs.Services {
|
||||
var slug = content.Optional<string>("wp_slug");
|
||||
|
||||
var blogPost = _contentManager.New<BlogPostPart>(BlogPostPartDriver.ContentType.Name);
|
||||
blogPost.BlogPart = blog;
|
||||
blogPost.Title = title;
|
||||
blogPost.Slug = slug;
|
||||
blogPost.Text = description;
|
||||
blogPost.Creator = user;
|
||||
|
||||
// BodyPart
|
||||
if (blogPost.Is<BodyPart>()) {
|
||||
blogPost.As<BodyPart>().Text = description;
|
||||
}
|
||||
|
||||
//RoutePart
|
||||
if (blogPost.Is<RoutePart>()) {
|
||||
blogPost.As<RoutePart>().Title = title;
|
||||
blogPost.As<RoutePart>().Slug = slug;
|
||||
blogPost.As<RoutePart>().Path = blogPost.As<RoutePart>().GetPathFromSlug(slug);
|
||||
}
|
||||
|
||||
//CommonPart
|
||||
if (blogPost.Is<ICommonPart>()) {
|
||||
blogPost.As<ICommonPart>().Owner = user;
|
||||
blogPost.As<ICommonPart>().Container = blog;
|
||||
}
|
||||
|
||||
_contentManager.Create(blogPost.ContentItem, VersionOptions.Draft);
|
||||
|
||||
|
Reference in New Issue
Block a user