我有一个PHP脚本,在我的MediaWiki上显示员工列表。我还有一个特殊的页面,您可以在其中管理哪些用户是员工,这非常有效。但是,当您在特殊页面上进行后端更改时,更改不会显示在wikipage上,并在其中插入标记,直到您编辑该页面,并且不进行任何更改并保存。
这只能是因为我使用了错误的钩子。我尝试使用此挂钩,但它似乎无法正常工作:http://www.mediawiki.org/wiki/Manual:Hooks/ArticlePageDataBefore
现在我正在使用这个钩子。只是更改变量名称不起作用:
$wgHooks['ParserFirstCallInit'][] = 'wfEmployeesParserInit';
// Hook our callback function into the parser
function wfEmployeesParserInit( Parser $parser ) {
// When the parser sees the <sample> tag, it executes
// the wfEmployeesRender function (see below)
$parser->setHook( 'employees', 'wfEmployeesRender' );
// Always return true from this function. The return value does not denote
// success or otherwise have meaning - it just must always be true.
return true;
}
// Execute
function wfEmployeesRender( $input, array $args, Parser $parser, PPFrame $frame ) {
...
答案 0 :(得分:1)
这个钩子不应该归咎于此;而不是MediaWiki的页面缓存 - 除非编辑页面或定期缓存清除,否则页面不会更新。围绕这个问题有几种方法;你可以做空编辑;你可以关闭缓存;或者您可以清除受影响页面的内容,这会强制MW重新呈现页面。
一些有用的链接,包含这些方法的详细信息:
答案 1 :(得分:1)
感谢。我找到了解决方案。
$wgHooks['ParserFirstCallInit'][] = 'wfNewsParserInit';
function wfNewsRender($input, array $args, Parser $parser, PPFrame $frame)
{
$parser->disableCache();
...