diff --git a/src/Orchard.Web/Core/Containers/Drivers/ContainerPartDriver.cs b/src/Orchard.Web/Core/Containers/Drivers/ContainerPartDriver.cs index d73f99d6b..ad639d654 100644 --- a/src/Orchard.Web/Core/Containers/Drivers/ContainerPartDriver.cs +++ b/src/Orchard.Web/Core/Containers/Drivers/ContainerPartDriver.cs @@ -46,43 +46,39 @@ namespace Orchard.Core.Containers.Drivers { if (!part.ItemsShown) return null; - return Combined( - ContentShape("Parts_Container_Contained", - () => { - var container = part.ContentItem; + return ContentShape("Parts_Container_Contained", + () => { + var container = part.ContentItem; - IContentQuery query = _contentManager - .Query(VersionOptions.Published) - .Join().Where(cr => cr.Container.Id == container.Id); + IContentQuery query = _contentManager + .Query(VersionOptions.Published) + .Join().Where(cr => cr.Container.Id == container.Id); - var descendingOrder = part.OrderByDirection == (int)OrderByDirection.Descending; - query = query.OrderBy(part.OrderByProperty, descendingOrder); + var descendingOrder = part.OrderByDirection == (int)OrderByDirection.Descending; + query = query.OrderBy(part.OrderByProperty, descendingOrder); - _feedManager.Register(container.As().Title, "rss", new RouteValueDictionary { { "containerid", container.Id } }); + _feedManager.Register(container.As().Title, "rss", new RouteValueDictionary { { "containerid", container.Id } }); - var pager = new Pager(_siteService.GetSiteSettings(), part.PagerParameters); - pager.PageSize = part.PagerParameters.PageSize != null && part.Paginated - ? pager.PageSize - : part.PageSize; + var pager = new Pager(_siteService.GetSiteSettings(), part.PagerParameters); + pager.PageSize = part.PagerParameters.PageSize != null && part.Paginated + ? pager.PageSize + : part.PageSize; - var pagerShape = shapeHelper.Pager(pager).TotalItemCount(query.Count()); + var pagerShape = shapeHelper.Pager(pager).TotalItemCount(query.Count()); - var startIndex = part.Paginated ? pager.GetStartIndex() : 0; - var pageOfItems = query.Slice(startIndex, pager.PageSize).ToList(); + var startIndex = part.Paginated ? pager.GetStartIndex() : 0; + var pageOfItems = query.Slice(startIndex, pager.PageSize).ToList(); - var listShape = shapeHelper.List(); - listShape.AddRange(pageOfItems.Select(item => _contentManager.BuildDisplay(item, "Summary"))); - listShape.Classes.Add("content-items"); - listShape.Classes.Add("list-items"); + var listShape = shapeHelper.List(); + listShape.AddRange(pageOfItems.Select(item => _contentManager.BuildDisplay(item, "Summary"))); + listShape.Classes.Add("content-items"); + listShape.Classes.Add("list-items"); - return shapeHelper.Parts_Container_Contained( - List: listShape, - Pager: pagerShape - ); - }), - ContentShape("Parts_Container_Contained_SummaryAdmin", - () => shapeHelper.Parts_Container_Contained_SummaryAdmin(ContentPart: part)) - ); + return shapeHelper.Parts_Container_Contained( + List: listShape, + Pager: pagerShape + ); + }); } protected override DriverResult Editor(ContainerPart part, dynamic shapeHelper) { diff --git a/src/Orchard.Web/Modules/Orchard.Lists/Drivers/ContainerPartDriver.cs b/src/Orchard.Web/Modules/Orchard.Lists/Drivers/ContainerPartDriver.cs new file mode 100644 index 000000000..52417416d --- /dev/null +++ b/src/Orchard.Web/Modules/Orchard.Lists/Drivers/ContainerPartDriver.cs @@ -0,0 +1,34 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using Orchard.ContentManagement.Drivers; +using Orchard.Core.Containers.Models; +using Orchard.ContentManagement.MetaData; +using Orchard.Settings; +using Orchard.Core.Feeds; + +namespace Orchard.Lists.Drivers { + public class ContainerPartDriver : Orchard.Core.Containers.Drivers.ContainerPartDriver { + public ContainerPartDriver( + IContentDefinitionManager contentDefinitionManager, + IOrchardServices orchardServices, + ISiteService siteService, + IFeedManager feedManager) + : base(contentDefinitionManager, orchardServices, siteService, feedManager) + { + } + + protected override DriverResult Display(ContainerPart part, string displayType, dynamic shapeHelper) { + var shape = base.Display(part, displayType, (object)shapeHelper); // shapeHelper casting to avoid compiler error + + if (shape == null) return null; + + return Combined( + shape, + ContentShape("Parts_Container_Contained_SummaryAdmin", + () => shapeHelper.Parts_Container_Contained_SummaryAdmin(ContentPart: part)) + ); + } + } +} \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Lists/Orchard.Lists.csproj b/src/Orchard.Web/Modules/Orchard.Lists/Orchard.Lists.csproj index d6a89f778..bbce6447e 100644 --- a/src/Orchard.Web/Modules/Orchard.Lists/Orchard.Lists.csproj +++ b/src/Orchard.Web/Modules/Orchard.Lists/Orchard.Lists.csproj @@ -49,6 +49,7 @@ + @@ -105,6 +106,7 @@ +