diff --git a/src/Orchard.Web/Core/Feeds/StandardBuilders/ItemInspector.cs b/src/Orchard.Web/Core/Feeds/StandardBuilders/ItemInspector.cs index fa4965a2a..dd7acb474 100644 --- a/src/Orchard.Web/Core/Feeds/StandardBuilders/ItemInspector.cs +++ b/src/Orchard.Web/Core/Feeds/StandardBuilders/ItemInspector.cs @@ -51,8 +51,8 @@ namespace Orchard.Core.Feeds.StandardBuilders { public DateTime? PublishedUtc { get { - if (_common != null && _common.PublishedUtc != null) - return _common.PublishedUtc; + if (_common != null && _common.CreatedUtc != null) + return _common.CreatedUtc; return null; } } diff --git a/src/Orchard.Web/Core/Feeds/StandardQueries/ContainerFeedQuery.cs b/src/Orchard.Web/Core/Feeds/StandardQueries/ContainerFeedQuery.cs index 03b804718..ef1a7d93e 100644 --- a/src/Orchard.Web/Core/Feeds/StandardQueries/ContainerFeedQuery.cs +++ b/src/Orchard.Web/Core/Feeds/StandardQueries/ContainerFeedQuery.cs @@ -62,7 +62,7 @@ namespace Orchard.Core.Feeds.StandardQueries { var items = _contentManager.Query() .Where(x => x.Container == container.Record) - .OrderByDescending(x => x.PublishedUtc) + .OrderByDescending(x => x.CreatedUtc) .Slice(0, limit); foreach (var item in items) { diff --git a/src/Orchard.Web/Modules/Orchard.Blogs/Services/XmlRpcHandler.cs b/src/Orchard.Web/Modules/Orchard.Blogs/Services/XmlRpcHandler.cs index 178eb26b9..2f47ae07d 100644 --- a/src/Orchard.Web/Modules/Orchard.Blogs/Services/XmlRpcHandler.cs +++ b/src/Orchard.Web/Modules/Orchard.Blogs/Services/XmlRpcHandler.cs @@ -216,10 +216,24 @@ namespace Orchard.Blogs.Services { _contentManager.Create(blogPost, VersionOptions.Draft); - var publishedUtc = content.Optional("dateCreated"); + // try to get the UTC timezone by default + var publishedUtc = content.Optional("date_created_gmt"); + if (publishedUtc == null) { + // take the local one + publishedUtc = content.Optional("dateCreated"); + } + else { + // ensure it's read as a UTC time + publishedUtc = new DateTime(publishedUtc.Value.Ticks, DateTimeKind.Utc); + } + if (publish && (publishedUtc == null || publishedUtc <= DateTime.UtcNow)) _blogPostService.Publish(blogPost); + if (publishedUtc != null) { + blogPost.As().CreatedUtc = publishedUtc; + } + foreach (var driver in drivers) driver.Process(blogPost.Id); @@ -281,10 +295,24 @@ namespace Orchard.Blogs.Services { blogPost.As().Path = blogPost.As().GetPathWithSlug(blogPost.As().Slug); } - var publishedUtc = content.Optional("dateCreated"); + // try to get the UTC timezone by default + var publishedUtc = content.Optional("date_created_gmt"); + if (publishedUtc == null) { + // take the local one + publishedUtc = content.Optional("dateCreated"); + } + else { + // ensure it's read as a UTC time + publishedUtc = new DateTime(publishedUtc.Value.Ticks, DateTimeKind.Utc); + } + if (publish && (publishedUtc == null || publishedUtc <= DateTime.UtcNow)) _blogPostService.Publish(blogPost); + if (publishedUtc != null) { + blogPost.As().CreatedUtc = publishedUtc; + } + foreach (var driver in drivers) driver.Process(blogPost.Id);