说实话,写的太粗糙,真有点不好意思拿出来示人,可是又一想,写都写了,还怕给人看?!俗话有说,“丑媳妇早晚还是要见公婆”, 不是吗?!
主要功能:通过自定义Razor(C#)表达式,对Orchard中Content的Handler添加处理程序,说白了,就是在内容有新建,发布等时,可以自已干点啥,比如:通过输入的内容创建另外类型的内容。
支持IContentHandler 定义的全部事件:
namespace Orchard.ContentManagement.Handlers |
public interface IContentHandler : IDependency |
void Activating(ActivatingContentContext context); |
void Activated(ActivatedContentContext context); |
void Initializing(InitializingContentContext context); |
void Creating(CreateContentContext context); |
void Created(CreateContentContext context); |
void Loading(LoadContentContext context); |
void Loaded(LoadContentContext context); |
void Versioning(VersionContentContext context); |
void Versioned(VersionContentContext context); |
void Publishing(PublishContentContext context); |
void Published(PublishContentContext context); |
void Unpublishing(PublishContentContext context); |
void Unpublished(PublishContentContext context); |
void Removing(RemoveContentContext context); |
void Removed(RemoveContentContext context); |
void Indexing(IndexContentContext context); |
void Indexed(IndexContentContext context); |
void Importing(ImportContentContext context); |
void Imported(ImportContentContext context); |
void Exporting(ExportContentContext context); |
void Exported(ExportContentContext context); |
void GetContentItemMetadata(GetContentItemMetadataContext context); |
void BuildDisplay(BuildDisplayContext context); |
void BuildEditor(BuildEditorContext context); |
void UpdateEditor(UpdateEditorContext context); |
如图:
示例代码:
Condition:
@ if (Model.Content.ContentType == "Page" ) |
Action:
@ using Orchard.ContentManagement; |
@ using Orchard.ContentManagement.Handlers; |
@ using Orchard.ContentManagement.Aspects; |
@ using Orchard.Core.Common.Models; |
@ using RaisingStudio.Trigger.Services; |
@ using RaisingStudio.Razor.Services; |
@ using RaisingStudio.Trigger.Models; |
@ using RaisingStudio.Razor.Models; |
IContentManager contentManager = Model.ContentManager; |
var bodyText = Model.As<BodyPart>().Text; |
var razorPage = contentManager.Create<RazorContentPart>( "RazorPage" , VersionOptions.Draft); |
razorPage.Template = bodyText; |
contentManager.Publish(razorPage.ContentItem); |
项目地址:
http://trigger4orchard.codeplex.com/Orchard Gallery下载:
http://orchardproject.net/gallery/server/Package/Download/Orchard.Module.RaisingStudio.Trigger/1.0