MediaWiki仅在特定页面中运行扩展(ClipUpload)

时间:2019-01-04 01:43:52

标签: php mediawiki

我有一个媒体维基供我的团队运行。

Extension:ClipUpload是有用的扩展程序,允许用户通过简单的复制和粘贴将图像上传到剪贴板中。 但是,它有时会导致剪贴板上的不必要的上传(例如,从excel或其他MS Office软件复制的文本)

所以我要创建一个特定页面,以便在特定页面中使用ClipUpload扩展。

这是我做过的但是失败的事情:

  1. 创建了一个页面:http://my.domain/wiki/index.php/UploadFromClipboard

  2. 当我进入编辑页面时:http://my.domain/wiki/index.php?title=UploadFromClipboard&action=edit

  3. 我想运行扩展程序,因此在LocalSettings.php中添加了一行

    if(preg_match(“ /(Clipboard)/ i”,$ wgArticlePath))require_once(“ $ IP / extensions / ClipUpload / ClipUpload.php”);

  4. 这种类型的解决方案不起作用。问题是我无法解析查询中的页面标题。

能否请您提出一些我可以尝试的解决方案?

1 个答案:

答案 0 :(得分:0)

LocalSettings.php是在MediaWiki解析URL之前加载的,并且有很多边缘情况,您不希望自己这样做。

一种选择是使用可以早运行但已设置基本变量(例如BeforeInitialize)的东西,并根据标题禁用那里的扩展名(例如$wgHooks['EditPage::showEditForm:initial'] = array_diff( $wgHooks['EditPage::showEditForm:initial'], [ 'ClipSetup' ] );。)

或者您可以尝试修复扩展名/文件中的错误(丢弃不是图像的剪贴板内容似乎很简单)。