使用钩子触发进程
Posted
技术标签:
【中文标题】使用钩子触发进程【英文标题】: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 但我这辈子似乎无法解决。
【问题讨论】:
【参考方案1】:所有的钩子都是你可以附加方法的静态委托。在上面的例子中,一个匿名方法被分配给了钩子,语法如下:
delegate += (parameters) => method body
你也可以分配一个先前声明的方法。
delegate += MyMethod
官方网站的文档中应该提供附加钩子的示例骨架。如果没有,您可以在文件中找到挂钩:
~/WebPages/Hooks.cs
所有代表:
~/Delegates.cs
我希望这些 URL:s 是正确的,因为我是凭记忆输入的 :)
问候
【讨论】:
好吧,我的错。我试图使用 Hooks.Manager.PostEditModelAfterSave 委托,以便在保存帖子后采取一些措施。文档中列出的 Hook 确实按预期工作,并且我了解如何使用它们,我错误地假设我可以使用 Hooks.Manager 委托。当页面/帖子被更新/添加/删除时有可用的钩子会很好,但我现在会解决它。我会将其添加为 Git 上的功能请求。以上是关于使用钩子触发进程的主要内容,如果未能解决你的问题,请参考以下文章
React生命周期, setState、props改变触发的钩子函数
在 pre updateOne 钩子中设置 document: true, query: false,不会触发钩子