2012-03-21 61 views
0

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

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

注:
我谈论的wiki页面被保护,只有受信任的用户可以对其进行编辑。在上述建议的工作流程中,我无法考虑安全问题。我很高兴得到其他的说服。

回答

1

当然,完全有可能。

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

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

MediaWiki Hooks manual page有一些例子和关于钩子是如何工作的,以及如何去编写一个新的函数来处理特定的钩子。这就是说,我真的建议你考虑放弃这个想法,除非你真的看到不利的性能影响你的机器。在正常配置下,MediaWiki应该使用分析器缓存来处理像这样的查询的最负载密集型操作。

+0

谢谢你的回答。正如你所说,我会放弃这个想法。我上面提到的Perl脚本非常快,并且不会导致大量的负载。我结束了使用运行该脚本的每小时cron作业。 – 2012-03-27 13:13:44

相关问题