mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2025-07-31 21:41:40 +08:00
Corrected interface name.
Potentially breaking, but I highly doubt anyone implemented this interface.
This commit is contained in:
parent
73683ec057
commit
811001143e
@ -2,7 +2,7 @@
|
||||
using Orchard.Layouts.Framework.Elements;
|
||||
|
||||
namespace Orchard.Layouts.Framework.Harvesters {
|
||||
public interface ElementHarvester : ISingletonDependency {
|
||||
public interface IElementHarvester : ISingletonDependency {
|
||||
IEnumerable<ElementDescriptor> HarvestElements(HarvestElementsContext context);
|
||||
}
|
||||
}
|
@ -367,6 +367,7 @@
|
||||
<Compile Include="Helpers\PrefixHelper.cs" />
|
||||
<Compile Include="Helpers\JsonHelper.cs" />
|
||||
<Compile Include="Helpers\StringHelper.cs" />
|
||||
<Compile Include="Providers\WidgetElementHarvester.cs" />
|
||||
<Compile Include="Recipes\Builders\CustomElementsStep.cs" />
|
||||
<Compile Include="Recipes\Executors\CustomElementsStep.cs" />
|
||||
<Compile Include="Providers\BlueprintElementHarvester.cs" />
|
||||
|
@ -10,7 +10,7 @@ using Orchard.Layouts.Models;
|
||||
using Orchard.Layouts.Services;
|
||||
|
||||
namespace Orchard.Layouts.Providers {
|
||||
public class BlueprintElementHarvester : Component, ElementHarvester {
|
||||
public class BlueprintElementHarvester : Component, IElementHarvester {
|
||||
private readonly Work<IElementBlueprintService> _elementBlueprintService;
|
||||
private readonly Work<IElementManager> _elementManager;
|
||||
private bool _isHarvesting;
|
||||
|
@ -13,7 +13,7 @@ using Orchard.Layouts.Helpers;
|
||||
using Orchard.Layouts.Services;
|
||||
|
||||
namespace Orchard.Layouts.Providers {
|
||||
public class ContentFieldElementHarvester : Component, ElementHarvester {
|
||||
public class ContentFieldElementHarvester : Component, IElementHarvester {
|
||||
private readonly Work<IContentDefinitionManager> _contentDefinitionManager;
|
||||
private readonly Work<ITransactionManager> _transactionManager;
|
||||
private readonly Work<ICultureAccessor> _cultureAccessor;
|
||||
|
@ -13,7 +13,7 @@ using Orchard.Layouts.Settings;
|
||||
using Orchard.Utility.Extensions;
|
||||
|
||||
namespace Orchard.Layouts.Providers {
|
||||
public class ContentPartElementHarvester : Component, ElementHarvester {
|
||||
public class ContentPartElementHarvester : Component, IElementHarvester {
|
||||
private readonly Work<IContentDefinitionManager> _contentDefinitionManager;
|
||||
private readonly Work<IElementFactory> _elementFactory;
|
||||
private readonly Work<IElementManager> _elementManager;
|
||||
|
@ -16,7 +16,7 @@ using Orchard.Utility.Extensions;
|
||||
|
||||
namespace Orchard.Layouts.Providers {
|
||||
[OrchardFeature("Orchard.Layouts.Snippets")]
|
||||
public class SnippetElementHarvester : Component, ElementHarvester {
|
||||
public class SnippetElementHarvester : Component, IElementHarvester {
|
||||
private const string SnippetShapeSuffix = "Snippet";
|
||||
private readonly Work<IShapeFactory> _shapeFactory;
|
||||
private readonly Work<ISiteThemeService> _siteThemeService;
|
||||
|
@ -6,7 +6,7 @@ using Orchard.Layouts.Framework.Harvesters;
|
||||
using Orchard.Layouts.Services;
|
||||
|
||||
namespace Orchard.Layouts.Providers {
|
||||
public class TypedElementHarvester : ElementHarvester {
|
||||
public class TypedElementHarvester : IElementHarvester {
|
||||
private readonly Work<IElementManager> _elementManager;
|
||||
private readonly Work<IElementFactory> _factory;
|
||||
|
||||
|
@ -0,0 +1,71 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Orchard.ContentManagement.MetaData;
|
||||
using Orchard.ContentManagement.MetaData.Models;
|
||||
using Orchard.Core.Contents.Settings;
|
||||
using Orchard.Environment;
|
||||
using Orchard.Layouts.Framework.Display;
|
||||
using Orchard.Layouts.Framework.Elements;
|
||||
using Orchard.Layouts.Framework.Harvesters;
|
||||
using Orchard.Layouts.Services;
|
||||
using Orchard.Layouts.Settings;
|
||||
using Orchard.Utility.Extensions;
|
||||
|
||||
namespace Orchard.Layouts.Providers {
|
||||
public class WidgetElementHarvester : Component, IElementHarvester {
|
||||
private readonly Work<IContentDefinitionManager> _contentDefinitionManager;
|
||||
private readonly Work<IElementFactory> _elementFactory;
|
||||
private readonly Work<IElementManager> _elementManager;
|
||||
|
||||
public WidgetElementHarvester(
|
||||
Work<IContentDefinitionManager> contentDefinitionManager,
|
||||
Work<IElementFactory> elementFactory,
|
||||
Work<IElementManager> elementManager) {
|
||||
|
||||
_contentDefinitionManager = contentDefinitionManager;
|
||||
_elementFactory = elementFactory;
|
||||
_elementManager = elementManager;
|
||||
}
|
||||
|
||||
public IEnumerable<ElementDescriptor> HarvestElements(HarvestElementsContext context) {
|
||||
var elementType = typeof(Elements.ContentPart);
|
||||
var contentPartElement = _elementFactory.Value.Activate(elementType);
|
||||
var contentParts = GetContentParts(context);
|
||||
|
||||
return contentParts.Select(contentPart => {
|
||||
|
||||
var partSettings = contentPart.Settings.TryGetModel<ContentPartSettings>();
|
||||
var partDescription = partSettings != null ? partSettings.Description : null;
|
||||
var description = T(!String.IsNullOrWhiteSpace(partDescription) ? partDescription : contentPart.Name);
|
||||
return new ElementDescriptor(elementType, contentPart.Name, T(contentPart.Name.CamelFriendly()), description, contentPartElement.Category) {
|
||||
Displaying = displayContext => Displaying(displayContext),
|
||||
ToolboxIcon = "\uf1b2",
|
||||
StateBag = new Dictionary<string, object> {
|
||||
{"ElementTypeName", contentPart.Name}
|
||||
}
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
private IEnumerable<ContentPartDefinition> GetContentParts(HarvestElementsContext context) {
|
||||
var contentTypeDefinition = context.Content != null
|
||||
? _contentDefinitionManager.Value.GetTypeDefinition(context.Content.ContentItem.ContentType)
|
||||
: default(ContentTypeDefinition);
|
||||
|
||||
var parts = contentTypeDefinition != null
|
||||
? contentTypeDefinition.Parts.Select(x => x.PartDefinition)
|
||||
: _contentDefinitionManager.Value.ListPartDefinitions();
|
||||
|
||||
return parts.Where(p => p.Settings.GetModel<ContentPartLayoutSettings>().Placeable);
|
||||
}
|
||||
|
||||
private void Displaying(ElementDisplayingContext context) {
|
||||
var drivers = _elementManager.Value.GetDrivers(context.Element);
|
||||
|
||||
foreach (var driver in drivers) {
|
||||
driver.Displaying(context);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -9,7 +9,7 @@ using Orchard.Layouts.Helpers;
|
||||
|
||||
namespace Orchard.Layouts.Services {
|
||||
public class ElementManager : Component, IElementManager {
|
||||
private readonly Lazy<IEnumerable<ElementHarvester>> _elementHarvesters;
|
||||
private readonly Lazy<IEnumerable<IElementHarvester>> _elementHarvesters;
|
||||
private readonly ICacheManager _cacheManager;
|
||||
private readonly Lazy<IEnumerable<IElementDriver>> _drivers;
|
||||
private readonly Lazy<IEnumerable<ICategoryProvider>> _categoryProviders;
|
||||
@ -18,7 +18,7 @@ namespace Orchard.Layouts.Services {
|
||||
private readonly IElementEventHandler _elementEventHandler;
|
||||
|
||||
public ElementManager(
|
||||
Lazy<IEnumerable<ElementHarvester>> elementHarvesters,
|
||||
Lazy<IEnumerable<IElementHarvester>> elementHarvesters,
|
||||
ICacheManager cacheManager,
|
||||
Lazy<IEnumerable<IElementDriver>> drivers,
|
||||
Lazy<IEnumerable<ICategoryProvider>> categoryProviders,
|
||||
|
Loading…
Reference in New Issue
Block a user