如何在编辑特定页面时触发信号/挂钩?

时间:2012-03-21 13:37:41

标签: rss hook signals mediawiki

在编辑MediaWiki的一个特定页面后,是否可以触发某种信号或配置挂钩(例如执行已定义/硬编码的shell脚本)?

情景如下 到目前为止,每次请求RSS提要时,都会从一个特定的MediaWiki页面(称为wiki/index.php?title=News)的内容生成RSS提要。由于此页面仅在几天内被编辑一次,因此使用Perl :: CGI或PHP脚本作为RSS源的源(例如,供稿阅读器的URL:example.com/rss-feed.php)应该更好 - 就服务器而言加载。该脚本仅在编辑维基页面时生成静态RSS提要(例如,在example.com/rss.xml)。

注:
我正在谈论的wiki页面受到保护,只有受信任的用户才能编辑它。我无法考虑上面提议的工作流程中的安全问题。我很高兴得到其他说服力。

1 个答案:

答案 0 :(得分:1)

当然,完全有可能。

ArticleSaveComplete hook$article参数包含刚刚保存的文章的标题和命名空间(具体来说,您想要访问$article->mTitle的属性)。

如果标题(和名称空间!)与给定数据不匹配,只需使用if语句定义一个只返回true的函数。如果它们匹配,它将生成您需要的静态文件。

MediaWiki Hooks manual page有一些例子和关于钩子如何工作以及如何编写一个可以使用特定钩子的新函数的更多信息。

那就是说,我真的建议你考虑放弃这个想法,除非你实际上看到对你的机器产生不利的性能影响。在正常配置下,MediaWiki应该使用解析器缓存来处理像这样的查询的最负载密集型操作。