IMPORTANT: In versions previous to 8.0, developers used the Plug-in Extension Wizard to extend the system. As of version 9.00, Ektron no longer raises plugin extension events—you must use extensible strategies and events to extend the CMS.
Developers can extend or modify the behavior of Ektron with software modules called extensions. The benefits of extensions include:
App_Code
directory.Class1.cs
code page appears in the editor.Ektron.CMS.Common Ektron.CMS.Contracts Ektron.CMS.ObjectFactory
If the assemblies are not installed in Visual Studio, you can find them in the siteroot/bin
directory.
using
statements to the top of the class.using Ektron.Cms; using Ektron.Cms.Common; using Ektron.Cms.Extensibility; using Ektron.Cms.Extensibility.Content;
Ektron.Cms.Extensibility.ContentStrategy
.namespace Cms.Extensions.Samples { public class ContentExtensionsSample : ContentStrategy { } }
NOTE: The namespace in this code is Cms.Extensions.Samples.
override OnBeforeAddContent()
. The code to modify the Title is as follows.public override void OnBeforeAddContent(ContentData contentData, CmsEventArgs eventArgs) { contentData.Title += " modified"; }
using System; using System.Collections.Generic; using System.Text; using Ektron.Cms; using Ektron.Cms.Common; using Ektron.Cms.Extensibility; using Ektron.Cms.Extensibility.Content; namespace Cms.Extensions.Samples { public class ContentExtensionsSample : ContentStrategy { public override void OnBeforeAddContent(ContentData contentData, CmsEventArgs eventArgs) { contentData.Title += " modified"; } } }
NOTE: More examples of extensions are found in the Ektron SDK folder. The default location for this folder is Program Files\Ektron\CMS400SDK\CMS Extensions
. Also, sample eCommerceAs of Ektron version 9.10, Ektron has discontinued new development on its eCommerce module. If you have a license to eCommerce, you will continue to receive support, but if you need to upgrade, contact your account manager for options. extensions are found in Program Files\Ektron\CMS400SDK\Commerce\Events
.
After creating an extension, register it in the <webroot>/ObjectFactory.config
file. This file already contains GoogleGeoCoder
objectStrategies, so you need to add a new Name in the Content area. In this example, the code looks like this.
<objectFactory> <objectStrategies> <add name="Content"> <strategies> <add name="MyFirstExample" type="Cms.Extensions.Samples.ContentExtensionsSample"/> <add name="GoogleGeoCoder" type="Cms.Extensions.GoogleGeoCoder.ContentStrategy"/> </strategies> </add> <add name="User"> <strategies> <add name="GoogleGeoCoder" type="Cms.Extensions.GoogleGeoCoder.UserStrategy"/> </strategies> </add> </objectStrategies> </objectFactory>
More information about ObjectFactory objectStrategies
objectStrategies
> element of the siteroot/ObjectFactory.config
file.objectStrategies
>, <add
name>
, enter a name
to identify extension type. A list of valid name
s is in the following <strategies>
element, add one or more content extensions. For each extension, insert a name
and type
. For example:<strategies> <add name="MyFirstExample" type="Cms.Extensions.Samples.ContentExtensionsSample"/> </strategies>
name
is free-text.Type
is a fully-qualified name of the extension you are registering. It consists of namespace + “.” + name of the class.An event is an activity that occurs within Ektron and is exposed through the Extension Framework. An event handler is a method that executes when an event occurs.
NOTE: onBefore
lets you manipulate the current data before it is updated. In contrast, onAfter
events do not let you change a value in the contentData object for the content being affected. onAfter
events only update data somewhere else (such as within Ektron or a third-party database).
OnAdd(Ektron.Cms.CommunityGroupData, Ektron.Cms.Extensibility.CmsEventArgs)
Summary: This method is called after a new Community Group is added.
public virtual void OnAdd(Ektron.Cms.CommunityGroupData groupData, Ektron.Cms.Extensibility.CmsEventArgs eventArgs)
OnAfterUserAdd(long, long, Ektron.Cms.Extensibility.CmsEventArgs)
Summary: This method is called after a user is added to a Community Group.
public virtual void OnAfterUserAdd(long CommunityGroupId, long userId, Ektron.Cms.Extensibility.CmsEventArgs eventArgs)
OnAfterUserDelete(long, long, Ektron.Cms.Extensibility.CmsEventArgs)
Summary: This method is called after a user is removed from a Community Group.
public virtual void OnAfterUserDelete(long CommunityGroupId, long userId, Ektron.Cms.Extensibility.CmsEventArgs eventArgs)
OnDelete(long, Ektron.Cms.Extensibility.CmsEventArgs)
Summary: This method is called after a Community Group is deleted.
public virtual void OnDelete(long id, Ektron.Cms.Extensibility.CmsEventArgs eventArgs)
OnUpdate(Ektron.Cms.CommunityGroupData, Ektron.Cms.Extensibility.CmsEventArgs)
Summary: This method is called after a Community Group is updated.
public virtual void OnUpdate(Ektron.Cms.CommunityGroupData groupData, Ektron.Cms.Extensibility.CmsEventArgs eventArgs)
OnAfterAddContent(Ektron.Cms.ContentData, Ektron.Cms.Extensibility.CmsEventArgs)
Summary: This method is called after new content is added.
public virtual void OnAfterAddContent(Ektron.Cms.ContentData contentData, Ektron.Cms.Extensibility.CmsEventArgs eventArgs)
OnAfterDeleteContent(long, Ektron.Cms.Extensibility.CmsEventArgs)
Summary: This method is called after content is deleted.
public virtual void OnAfterDeleteContent(long id, Ektron.Cms.Extensibility.CmsEventArgs eventArgs)
OnAfterPublishContent(Ektron.Cms.ContentData, Ektron.Cms.Extensibility.CmsEventArgs)
Summary: This method is called after content is published.
public virtual void OnAfterPublishContent(Ektron.Cms.ContentData contentData, Ektron.Cms.Extensibility.CmsEventArgs eventArgs)
OnAfterUpdateContent(Ektron.Cms.ContentData, Ektron.Cms.Extensibility.CmsEventArgs)
Summary: This method is called after content is saved.
public virtual void OnAfterUpdateContent(Ektron.Cms.ContentData contentData, Ektron.Cms.Extensibility.CmsEventArgs eventArgs)
OnBeforeAddContent(Ektron.Cms.ContentData, Ektron.Cms.Extensibility.CmsEventArgs)
Summary: This method is called before content is added.
public virtual void OnBeforeAddContent(Ektron.Cms.ContentData contentData, Ektron.Cms.Extensibility.CmsEventArgs eventArgs)
OnBeforeDeleteContent(long, Ektron.Cms.Extensibility.CmsEventArgs)
Summary: This method is called before content is deleted.
public virtual void OnBeforeDeleteContent(long id, Ektron.Cms.Extensibility.CmsEventArgs eventArgs)
OnBeforePublishContent(Ektron.Cms.ContentData, Ektron.Cms.Extensibility.CmsEventArgs)
Summary: This method is called before content is published.
public virtual void OnBeforePublishContent(Ektron.Cms.ContentData contentData, Ektron.Cms.Extensibility.CmsEventArgs eventArgs)
OnBeforeUpdateContent(Ektron.Cms.ContentData, Ektron.Cms.Extensibility.CmsEventArgs)
Summary: This method is called before content is saved.
public virtual void OnBeforeUpdateContent(Ektron.Cms.ContentData contentData, Ektron.Cms.Extensibility.CmsEventArgs eventArgs)
OnAfterAddFolder(Ektron.Cms.FolderData, Ektron.Cms.Extensibility.CmsEventArgs)
Summary: This method is called after a new folder is added.
public virtual void OnAfterAddFolder(Ektron.Cms.FolderData folderData, Ektron.Cms.Extensibility.CmsEventArgs eventArgs)
OnAfterDeleteFolder(long, Ektron.Cms.Extensibility.CmsEventArgs)
Summary: This method is called after a folder is deleted.
public virtual void OnAfterDeleteFolder(long Id, Ektron.Cms.Extensibility.CmsEventArgs eventArgs)
OnAfterUpdateFolder(Ektron.Cms.FolderData, Ektron.Cms.Extensibility.CmsEventArgs)
Summary: This method is called after folder is updated.
public virtual void OnAfterUpdateFolder(Ektron.Cms.FolderData folderData, Ektron.Cms.Extensibility.CmsEventArgs eventArgs)
OnBeforeAddFolder(Ektron.Cms.FolderData, Ektron.Cms.Extensibility.CmsEventArgs)
Summary: This method is called before a folder is added.
public virtual void OnBeforeAddFolder(Ektron.Cms.FolderData folderData, Ektron.Cms.Extensibility.CmsEventArgs eventArgs)
OnBeforeDeleteFolder(long, Ektron.Cms.Extensibility.CmsEventArgs)
Summary: This method is called before a folder is deleted.
public virtual void OnBeforeDeleteFolder(long Id, Ektron.Cms.Extensibility.CmsEventArgs eventArgs)
OnBeforeUpdateFolder(Ektron.Cms.FolderData, Ektron.Cms.Extensibility.CmsEventArgs)
Summary: This method is called before changes to a folder are saved.
public virtual void OnBeforeUpdateFolder(Ektron.Cms.FolderData folderData, Ektron.Cms.Extensibility.CmsEventArgs eventArgs)
OnAdd(Ektron.Cms.MessageBoardData, Ektron.Cms.Extensibility.CmsEventArgs)
Summary: This method is called after new Message Board item/post is added.
public virtual void OnAdd(Ektron.Cms.MessageBoardData messageBoardData, Ektron.Cms.Extensibility.CmsEventArgs eventArgs)
OnAfterReplyAdd(Ektron.Cms.MessageBoardData, Ektron.Cms.Extensibility.CmsEventArgs)
Summary: This method is called after someone replies to Message Board post.
public virtual void OnAfterReplyAdd( Ektron.Cms.MessageBoardData messageBoardData, Ektron.Cms.Extensibility.CmsEventArgs eventArgs)
OnDelete(long, Ektron.Cms.Extensibility.CmsEventArgs)
Summary: This method is called after a Message Board post is deleted.
public virtual void OnDelete(long id, Ektron.Cms.Extensibility.CmsEventArgs eventArgs)
OnMessageApprove(Ektron.Cms.MessageBoardData, Ektron.Cms.Extensibility.CmsEventArgs)
Summary: This method is called before Message Board post is approved.
public virtual void OnMessageApprove(Ektron.Cms.MessageBoardData messageBoardData, Ektron.Cms.Extensibility.CmsEventArgs eventArgs)
OnUpdate(Ektron.Cms.MessageBoardData, Ektron.Cms.Extensibility.CmsEventArgs)
Summary: This method is called after Message Board post is updated.
public virtual void OnUpdate(Ektron.Cms.MessageBoardData messageBoardData, Ektron.Cms.Extensibility.CmsEventArgs eventArgs)
OnAfterAdd(Ektron.Cms.MicroMessageData, Ektron.Cms.Extensibility.CmsEventArgs)
Summary: This method is called after new Micro Message post is added.
public virtual void OnAfterAdd(Ektron.Cms.MicroMessageData microMessageData, Ektron.Cms.Extensibility.CmsEventArgs eventArgs)
OnAfterDelete(long, Ektron.Cms.Extensibility.CmsEventArgs)
Summary: This method is called after a Micro Message post is deleted.
public virtual void OnAfterDelete(long id, Ektron.Cms.Extensibility.CmsEventArgs eventArgs)
OnBeforeAdd(Ektron.Cms.MicroMessageData, Ektron.Cms.Extensibility.CmsEventArgs)
Summary: This method is called before a Micro Message post is added.
public virtual void OnBeforeAdd(Ektron.Cms.MicroMessageData microMessageData, Ektron.Cms.Extensibility.CmsEventArgs eventArgs)
OnBeforeDelete(long, Ektron.Cms.Extensibility.CmsEventArgs)
Summary: This method is called before a Micro Message post is deleted.
public virtual void OnBeforeDelete(long id, Ektron.Cms.Extensibility.CmsEventArgs eventArgs)
OnAdd(Ektron.Cms.TagData, Ektron.Cms.Extensibility.CmsEventArgs)
Summary: This method is called after Tag is added.
public virtual void OnAdd(Ektron.Cms.TagData tagData, Ektron.Cms.Extensibility.CmsEventArgs eventArgs)
OnAfterObjectTagged(Ektron.Cms.TagAssignmentData, Ektron.Cms.Extensibility.CmsEventArgs)
public virtual void OnAfterObjectTagged(Ektron.Cms.TagAssignmentData tagAssignment, Ektron.Cms.Extensibility.CmsEventArgs eventArgs)
OnDelete(long, Ektron.Cms.Extensibility.CmsEventArgs)
Summary: This method is called after a Tag is deleted.
public virtual void OnDelete(long id, Ektron.Cms.Extensibility.CmsEventArgs eventArgs)
OnUpdate(Ektron.Cms.TagData, Ektron.Cms.Extensibility.CmsEventArgs)
Summary: This method is called after a Tag is updated.
public virtual void OnUpdate(Ektron.Cms.TagData tagData, Ektron.Cms.Extensibility.CmsEventArgs eventArgs)
OnAfterAdd(Ektron.Cms.TaxonomyData, Ektron.Cms.Extensibility.CmsEventArgs)
Summary: This method is called after a new Taxonomy is added.
public virtual void OnAfterAdd(Ektron.Cms.TaxonomyData taxonomyData, Ektron.Cms.Extensibility.CmsEventArgs eventArgs)
OnAfterAssignItem(Ektron.Cms.TaxonomyRequest, Ektron.Cms.Extensibility.CmsEventArgs)
Summary: This method is called after a Taxonomy Item is added/assigned to Taxonomy.
public virtual void OnAfterAssignItem(Ektron.Cms.TaxonomyRequest request, Ektron.Cms.Extensibility.CmsEventArgs eventArgs)
OnAfterDelete(long, Ektron.Cms.Extensibility.CmsEventArgs)
Summary: This method is called after Taxonomy is deleted.
public virtual void OnAfterDelete(long id, int languageId, Ektron.Cms.Extensibility.CmsEventArgs eventArgs)
OnAfterUpdate(Ektron.Cms.TaxonomyData, Ektron.Cms.Extensibility.CmsEventArgs)
Summary: This method is called after a Taxonomy is updated.
public virtual void OnAfterUpdate(Ektron.Cms.TaxonomyData taxonomyData, Ektron.Cms.Extensibility.CmsEventArgs eventArgs)
OnBeforeAdd(Ektron.Cms.TaxonomyData, Ektron.Cms.Extensibility.CmsEventArgs)
Summary: This method is called before a new Taxonomy is added.
public virtual void OnBeforeAdd(Ektron.Cms.TaxonomyData taxonomyData, Ektron.Cms.Extensibility.CmsEventArgs eventArgs)
OnBeforeAssignItem(Ektron.Cms.TaxonomyRequest, Ektron.Cms.Extensibility.CmsEventArgs)
Summary: This method is called before Taxonomy item is added/assigned to Taxonomy.
public virtual void OnBeforeAssignItem(Ektron.Cms.TaxonomyRequest request, Ektron.Cms.Extensibility.CmsEventArgs eventArgs)
OnBeforeDelete(long, Ektron.Cms.Extensibility.CmsEventArgs)
Summary: This method is called before a Taxonomy is deleted.
public virtual void OnBeforeDelete(long id, int languageId, Ektron.Cms.Extensibility.CmsEventArgs eventArgs)
OnBeforeUpdate(Ektron.Cms.TaxonomyData, Ektron.Cms.Extensibility.CmsEventArgs)
Summary: This method is called before a Taxonomy is updated.
public virtual void OnBeforeUpdate(Ektron.Cms.TaxonomyData taxonomyData, Ektron.Cms.Extensibility.CmsEventArgs eventArgs)
OnAfterAddColleague(long, long, Ektron.Cms.Extensibility.CmsEventArgs)
Summary: This method is called after a colleague/friend is added.
public virtual void OnAfterAddColleague(long userOneId, long userTwoId, Ektron.Cms.Extensibility.CmsEventArgs eventArgs)
OnAfterAddUser(Ektron.Cms.UserData, Ektron.Cms.Extensibility.CmsEventArgs)
Summary: This method is called after a new user is added.
public virtual void OnAfterAddUser(Ektron.Cms.UserData userData, Ektron.Cms.Extensibility.CmsEventArgs eventArgs)
OnAfterColleagueRequest(Ektron.Cms.Community.ActionRequestData, Ektron.Cms.Extensibility.CmsEventArgs)
Summary: This method is called after a colleague/friend request is sent.
public virtual void OnAfterColleagueRequest( Ektron.Cms.Community.ActionRequestData invitationData, Ektron.Cms.Extensibility.CmsEventArgs eventArgs)
OnAfterDeleteUser(long, Ektron.Cms.Extensibility.CmsEventArgs)
Summary: This method is called after a user is deleted.
public virtual void OnAfterDeleteUser(long Id, Ektron.Cms.Extensibility.CmsEventArgs eventArgs)
OnAfterLogin(Ektron.Cms.UserData, Ektron.Cms.Extensibility.CmsEventArgs)
Summary: This method is called after a user logs in.
public virtual void OnAfterLogin(Ektron.Cms.UserData userData, Ektron.Cms.Extensibility.CmsEventArgs eventArgs)
OnAfterUpdateUser(Ektron.Cms.UserData, Ektron.Cms.Extensibility.CmsEventArgs)
Summary: This method is called after a user is updated.
public virtual void OnAfterUpdateUser(Ektron.Cms.UserData userData, Ektron.Cms.Extensibility.CmsEventArgs eventArgs)
OnBeforeAddUser(Ektron.Cms.UserData, Ektron.Cms.Extensibility.CmsEventArgs)
Summary: This method is called before a new user is added to CMS.
public virtual void OnBeforeAddUser(Ektron.Cms.UserData userData, Ektron.Cms.Extensibility.CmsEventArgs eventArgs)
OnBeforeDeleteUser(long, Ektron.Cms.Extensibility.CmsEventArgs)
Summary: This method is called before a user is deleted from CMS.
public virtual void OnBeforeDeleteUser(long Id, Ektron.Cms.Extensibility.CmsEventArgs eventArgs)
OnBeforeLogin(Ektron.Cms.UserData, Ektron.Cms.Extensibility.CmsEventArgs)
Summary: This method is called before a user logs in.
public virtual void OnBeforeLogin(Ektron.Cms.UserData userData, Ektron.Cms.Extensibility.CmsEventArgs eventArgs)
OnBeforeUpdateUser(Ektron.Cms.UserData, Ektron.Cms.Extensibility.CmsEventArgs)
Summary: This method is called before a user is updated.
public virtual void OnBeforeUpdateUser(Ektron.Cms.UserData userData, Ektron.Cms.Extensibility.CmsEventArgs eventArgs)
OnAfterAdd(Ektron.Cms.Common.Calendar.WebEventData, Ektron.Cms.Extensibility.CmsEventArgs)
Summary: This method is called after a new Web calendar event is added.
public virtual void OnAfterAdd(Ektron.Cms.Common.Calendar.WebEventData eventData, Ektron.Cms.Extensibility.CmsEventArgs eventArgs)
OnAfterAddVariance(Ektron.Cms.Common.Calendar.WebEventData, Ektron.Cms.Extensibility.CmsEventArgs)
Summary: This method is called after a Web calendar event variance is added.
public virtual void OnAfterAddVariance( Ektron.Cms.Common.Calendar.WebEventData eventData, Ektron.Cms.Extensibility.CmsEventArgs eventArgs)
OnAfterCancelOccurrence(Ektron.Cms.Common.Calendar.WebEventData, Ektron.Cms.Extensibility.CmsEventArgs)
Summary: This method is called after a single occurrence of Web calendar event (recursive event) is cancelled.
public virtual void OnAfterCancelOccurrence( Ektron.Cms.Common.Calendar.WebEventData eventData, Ektron.Cms.Extensibility.CmsEventArgs eventArgs)
OnAfterDelete(long, Ektron.Cms.Extensibility.CmsEventArgs)
Summary: This method is called after a Web calendar event is deleted.
public virtual void OnAfterDelete(long id, Ektron.Cms.Extensibility.CmsEventArgs eventArgs)
OnAfterPublish(Ektron.Cms.Common.Calendar.WebEventData, Ektron.Cms.Extensibility.CmsEventArgs)
Summary: This method is called after publishing a webevent.
public virtual void OnAfterPublish( Ektron.Cms.Common.Calendar.WebEventData eventData, Ektron.Cms.Extensibility.CmsEventArgs eventArgs)
OnAfterUpdate(Ektron.Cms.Common.Calendar.WebEventData, Ektron.Cms.Extensibility.CmsEventArgs)
Summary: This method is called after a Web calendar event is updated.
public virtual void OnAfterUpdate( Ektron.Cms.Common.Calendar.WebEventData eventData, Ektron.Cms.Extensibility.CmsEventArgs eventArgs)
OnBeforeAdd(Ektron.Cms.Common.Calendar.WebEventData, Ektron.Cms.Extensibility.CmsEventArgs)
Summary: This method is called before a new Web calendar event is added.
public virtual void OnBeforeAdd( Ektron.Cms.Common.Calendar.WebEventData eventData, Ektron.Cms.Extensibility.CmsEventArgs eventArgs)
OnBeforeAddVariance(Ektron.Cms.Common.Calendar.WebEventData, Ektron.Cms.Extensibility.CmsEventArgs)
Summary: This method is called before a Web calendar event variance is added.
public virtual void OnBeforeAddVariance( Ektron.Cms.Common.Calendar.WebEventData eventData, Ektron.Cms.Extensibility.CmsEventArgs eventArgs)
OnBeforeCancelOccurrence(Ektron.Cms.Common.Calendar.WebEventData, Ektron.Cms.Extensibility.CmsEventArgs)
Summary: This method is called before a single occurrence of a Web calendar event (recursive event) is canceled.
public virtual void OnBeforeCancelOccurrence( Ektron.Cms.Common.Calendar.WebEventData eventData, Ektron.Cms.Extensibility.CmsEventArgs eventArgs)
OnBeforeDelete(long, Ektron.Cms.Extensibility.CmsEventArgs)
Summary: This method is called before a Web calendar event is deleted.
public virtual void OnBeforeDelete(long id, Ektron.Cms.Extensibility.CmsEventArgs eventArgs)
OnBeforePublish(Ektron.Cms.Common.Calendar.WebEventData, Ektron.Cms.Extensibility.CmsEventArgs)
Summary: This method is called before a Web calendar event is published.
public virtual void OnBeforePublish( Ektron.Cms.Common.Calendar.WebEventData eventData, Ektron.Cms.Extensibility.CmsEventArgs eventArgs)
OnBeforeUpdate(Ektron.Cms.Common.Calendar.WebEventData, Ektron.Cms.Extensibility.CmsEventArgs)
Summary: This method is called before a Web calendar event is updated.
public virtual void OnBeforeUpdate( Ektron.Cms.Common.Calendar.WebEventData eventData, Ektron.Cms.Extensibility.CmsEventArgs eventArgs)
WebEventStrategy()
Summary: Constructor.
public WebEventStrategy()