November Happy Hour will be moved to Thursday December 5th.
November Happy Hour will be moved to Thursday December 5th.
What dose you implementation of IInitializableModule look like? Dose it use the ModuleDependency attribute?
[ModuleDependency(typeof(EPiServer.Cms.Shell.InitializableModule))]
Yes Oskar. I have given the same as given below.
[ModuleDependency(typeof(EPiServer.Cms.Shell.InitializableModule))]
Then I’m lost. Your code looks fine and should work. I use similar code in one of my projects to move the category property.
Hi, Vishnudas,
It looks like you can add to Page header, but not move the built-in properties out of it. When I tried both, from tabs to header works, but not the other way around:
public class SiteMetadataExtender : IMetadataExtender { public void ModifyMetadata(ExtendedMetadata metadata, IEnumerable<Attribute> attributes) { foreach (ExtendedMetadata property in metadata.Properties) { // this works if (property.PropertyName == "Heading") { property.GroupName = SystemTabNames.PageHeader; property.Order = 3; } // this doesn't else if (property.PropertyName == "PageVisibleInMenu") { property.GroupName = SystemTabNames.Settings; } } } } [InitializableModule] [ModuleDependency(typeof(EPiServer.Cms.Shell.InitializableModule), typeof(DependencyResolverInitialization))] public class SiteMetadataExtenderInitialization : IInitializableModule { public void Initialize(InitializationEngine context) { if (context.HostType == HostType.WebApplication) { var registry = ServiceLocator.Current.GetInstance<MetadataHandlerRegistry>(); registry.RegisterMetadataHandler(typeof(ContentData), new SiteMetadataExtender()); } } public void Preload(string[] parameters) { } public void Uninitialize(InitializationEngine context) { } }
We have already had a discussion about how to make some of these properties culture specific: http://world.episerver.com/forum/developer-forum/EPiServer-7-CMS/Thread-Container/2014/1/Override-built-in-page--block-properties/. You could probably try with a similar approach, but it does not look like a bright idea (as Per-Magne wrote, use at your own risk).
Maybe you can try a different approach, what is it that you wanted to achieve by moving this to Settings?
As part of my project requirement, I need to move an in built property in the CMS editor to “Settings” Tab. Property details are given below.
Property Name : iroutable_routesegment
Display Name : Name in URL
I have created a custom implementation on IMetadataExtender as given below and the same has been initialized using a custom implementation of IInitializableModule.
public void ModifyMetadata(ExtendedMetadata metadata, IEnumerable attributes)
{
foreach (ExtendedMetadata property in metadata.Properties)
{
if (property.PropertyName.ToLower() == "iroutable_routesegment")
{
property.GroupName = SystemTabNames.Settings;
break;
}
}
}
I have also tried to override the ModifyMetadata method of EditorDescriptor class too.
However, the property is not getting moved to the Settings tab. I am using EpiServer 9.7.
Can some one help us on this?