【发布时间】:2023-03-06 16:01:01
【问题描述】:
我有一个简单的扩展程序,它通过确保所有具有特定类别的页面都包含特定模板来验证文章页面。我的检查发生在 onPageContentSave 函数中。
我按照文档使用了 $status->fatal(),并返回 false 以中止保存。但是,没有向用户显示任何内容,因此他们不知道出了什么问题。
我尝试过的:
public static function onPageContentSave($wikiPage, $user, $content, $summary, $isMinor, $isWatch, $section, $flags, $status) {
$content = $content->getNativeData();
$response = self::httpPost("http://api.oneorzero.org:9999/theo", ['data' => json_encode(['wikiPage' => $wikiPage, 'user' => $user, 'content' => $content, 'summary' => $summary, 'isWatch' => $isWatch, 'section' => $section, 'flags' => $flags, 'status' => $status])]);
$response = json_decode($response, true);
$continue = false;
if(json_encode($response) == '{"message":"success"}') {
$continue = true;
} else {
$status->fatal( new RawMessage(json_encode($response)));
}
// $response should be true on success, and false on fail
// false cancels the article save
return $continue;
}
此代码的工作原理是 RawMessage 永远不会向用户显示。
感谢任何帮助
【问题讨论】:
-
这是正确的方法(除了 PageContentSave 自 MediaWiki 1.35 以来已被弃用,使用 MultiContentSave 作为替代;但它仍然有效),因此您的代码中可能存在错误。跨度>
标签: mediawiki mediawiki-extensions