Fix LiveWriter blog post creation

We weren't setting the new "Path" property

--HG--
branch : dev
This commit is contained in:
Renaud Paquay
2010-07-25 12:16:16 -07:00
parent 300db24a5f
commit 39ab96e05f
3 changed files with 43 additions and 24 deletions

View File

@@ -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)."));

View File

@@ -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;
}
}
}

View File

@@ -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);