You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

寻求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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 11:42:04