MediaWiki запускает расширение (ClipUpload) только на определенных страницах - PullRequest
0 голосов
/ 04 января 2019

У меня есть медиа-вики для моей команды.

Расширение: ClipUpload - это полезное расширение, которое позволяет пользователям загружать изображения в буфер обмена простым копированием и вставкой.Однако иногда это вызывает нежелательную загрузку буфера обмена (например, текст, скопированный из Excel или других офисных программ MS)

Итак, я хочу создать определенную страницу, чтобы использовать расширение 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 голосов
/ 06 января 2019

LocalSettings.php загружается до того, как MediaWiki проанализирует URL-адрес, и существует достаточно граничных случаев, поэтому вам не следует делать это самостоятельно.

Один из вариантов - использовать что-то, что запускается раньше, но после того, как основные переменныебыл установлен (например, BeforeInitialize ) и отключил расширение там на основе заголовка (что-то вроде $wgHooks['EditPage::showEditForm:initial'] = array_diff( $wgHooks['EditPage::showEditForm:initial'], [ 'ClipSetup' ] );.

. Или вы можете попытаться исправить расширение / файл с ошибкой (отказ от буфера обмена).содержимое, которое не является изображением, кажется довольно тривиальным).

...