zoukankan      html  css  js  c++  java
  • Trigger4Orchard

    说实话,写的太粗糙,真有点不好意思拿出来示人,可是又一想,写都写了,还怕给人看?!俗话有说,“丑媳妇早晚还是要见公婆”, 不是吗?!
    主要功能:通过自定义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")
    {
    @: true
    }
    else
    {
    @: false
    }
    Action:
    @using Orchard;
    @using Orchard.Security;
    @using Orchard.Settings;
    @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);
     
    @: true
    }

    项目地址:http://trigger4orchard.codeplex.com/
    Orchard Gallery下载: http://orchardproject.net/gallery/server/Package/Download/Orchard.Module.RaisingStudio.Trigger/1.0
  • 相关阅读:
    golang中channels的本质详解,经典!
    Vim tips——Working with external commands
    go语言中log包的使用
    vue自定义轮播图组件 swiper
    Nerv --- React IE8 兼容方案
    微信小程序实战之 pay(支付页面)
    微信小程序实战之 goods(订餐页)
    微信小程序 自定义组件(stepper)
    微信小程序 自定义组件(modal) 引入组件
    微信小程序之 Swiper(轮播图)
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/2048461.html
Copyright © 2011-2022 走看看