【问题标题】:Using hooks to trigger a process使用钩子触发进程
【发布时间】:2014-09-02 19:02:11
【问题描述】:

我正在尝试弄清楚如何使用 Hooks,但似乎无法正确获取语法。

我使用 PirahnaCMS 建立了一个网站,其中包含一个博客组件,并且正在扩展它以调用一些社交插件并自动发布到 FB、Twitter 等。

不过,我似乎无法使语法正确。我的应用是 MVC,我已经看过这个部分

1.2 ASP.NET MVC

如果您使用的是 ASP.NET MVC 挂钩,则应在 Application_Start 方法中的 Global.asax.cs 中或您保存启动代码的任何其他位置附加。您使用以下语法附加挂钩:

protected void Application_Start() {


  Piranha.WebPages.Hooks.Menu.RenderItemLink = (ui, str, title, url) => {
    str.Append(String.Format("<span><a href=\"{0}\">{1}</a></span>", url, title)) ;  
  } ;
} 

我认为我想使用的 Hook 是 Piranha.WebPages.Hooks.Manager.PostEditModelAfterSave 但我这辈子似乎无法解决。

【问题讨论】:

    标签: hook piranha-cms


    【解决方案1】:

    所有的钩子都是你可以附加方法的静态委托。在上面的例子中,一个匿名方法被分配给了钩子,语法如下:

    delegate += (parameters) => { method body }
    

    你也可以分配一个先前声明的方法。

    delegate += MyMethod
    

    官方网站的文档中应该提供附加钩子的示例骨架。如果没有,您可以在文件中找到挂钩:

    ~/WebPages/Hooks.cs
    

    所有代表:

    ~/Delegates.cs
    

    我希望这些 URL:s 是正确的,因为我是凭记忆输入的 :)

    问候

    【讨论】:

    • 好吧,我的错。我试图使用 Hooks.Manager.PostEditModelAfterSave 委托,以便在保存帖子后采取一些措施。文档中列出的 Hook 确实按预期工作,并且我了解如何使用它们,我错误地假设我可以使用 Hooks.Manager 委托。当页面/帖子被更新/添加/删除时有可用的钩子会很好,但我现在会解决它。我会将其添加为 Git 上的功能请求。
    猜你喜欢
    • 2015-01-26
    • 1970-01-01
    • 1970-01-01
    • 2011-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-07
    • 1970-01-01
    相关资源
    最近更新 更多