寻求MediaWiki文件版本回退操作的钩子实现方案
解决MediaWiki文件回退操作的钩子对接问题
核心钩子推荐:
FileUndoComplete
这个钩子是MediaWiki专门为**文件版本回退(Revert/Rollback)**操作设计的,会在回退操作成功完成后触发,完全匹配你的需求。它的参数包含回退涉及的文件对象、目标旧版本对象、执行操作的用户等,能满足你获取操作上下文的需求。示例代码片段:
$wgHooks['FileUndoComplete'][] = function( $file, $oldimage, $user, $comment ) { // 编写你需要执行的逻辑,比如记录操作日志、触发后续流程 // $file 是回退后的File对象 // $oldimage 是被回退到的旧版本(OldLocalFile对象) // $user 是执行回退操作的用户对象 // $comment 是回退时填写的备注信息 return true; };备选方案:
UploadComplete
文件回退本质上是将旧版本重新上传覆盖当前版本,因此UploadComplete也会触发。如果需要区分这是回退操作而非普通上传,可以通过上传对象的属性判断:$wgHooks['UploadComplete'][] = function( $upload, $context ) { // 检查是否为回退操作 if ( $upload->getAction() === 'revert' ) { // 执行回退专属逻辑 $file = $upload->getLocalFile(); $oldImageName = $upload->getOldImageName(); // 被回退到的旧版本名称 $user = $context->getUser(); } return true; };注意事项
- 不要混淆页面回退和文件回退的钩子:页面内容回退用
RollbackComplete,但文件回退属于文件版本操作,对应FileUndoComplete。 - 确保你的MediaWiki版本支持该钩子:
FileUndoComplete从MediaWiki 1.23版本开始引入,若使用旧版本可能需要升级或采用备选方案。
- 不要混淆页面回退和文件回退的钩子:页面内容回退用
内容的提问来源于stack exchange,提问作者Arsenii
相关产品推荐
相关产品推荐

