Implementation of Settings handler for recipes. Can be used to set part settings.

(Dynamic parts can be created through the metadata handler).

--HG--
branch : recipe
This commit is contained in:
Suha Can
2011-02-17 17:40:16 -08:00
parent f6579c7540
commit 0e9d18598b
2 changed files with 18 additions and 3 deletions

View File

@@ -1,4 +1,6 @@
using System;
using System.Xml;
using Orchard.ContentManagement.MetaData;
using Orchard.Localization;
using Orchard.Logging;
using Orchard.Recipes.Models;
@@ -6,7 +8,12 @@ using Orchard.Recipes.Services;
namespace Orchard.Recipes.RecipeHandlers {
public class SettingsRecipeHandler : IRecipeHandler {
public SettingsRecipeHandler() {
private readonly IContentDefinitionManager _contentDefinitionManager;
private readonly IContentDefinitionReader _contentDefinitionReader;
public SettingsRecipeHandler(IContentDefinitionManager contentDefinitionManager, IContentDefinitionReader contentDefinitionReader) {
_contentDefinitionManager = contentDefinitionManager;
_contentDefinitionReader = contentDefinitionReader;
Logger = NullLogger.Instance;
T = NullLocalizer.Instance;
}
@@ -27,7 +34,9 @@ namespace Orchard.Recipes.RecipeHandlers {
}
foreach (var element in recipeContext.RecipeStep.Step.Elements()) {
// set part settings.
var partElement = element;
var partName = XmlConvert.DecodeName(element.Name.LocalName);
_contentDefinitionManager.AlterPartDefinition(partName, alteration => _contentDefinitionReader.Merge(partElement, alteration));
}
recipeContext.Executed = true;

View File

@@ -24,10 +24,16 @@
</BlogPost>
</Types>
<Parts>
<BodyPart BodyPartSettings.FlavorDefault="html" />
<!-- Dynamic part -->
<Product ContentTypeSettings.Draftable="True" />
</Parts>
</Metadata>
<Settings>
<!-- Part settings -->
<BodyPart BodyPartSettings.FlavorDefault="html" />
</Settings>
<Command>
feature enable Orchard.Experimental.TestingLists
</Command>