Должно быть возможно написать крючок PageContentSave, который привязывает все изменения к определенной странице несуществующему пользователю, изменив параметр , который передается по ссылке, примерно так:
function anonymizeSandboxEdits(&$wikiPage, &$user, &$content, &$summary,
$isMinor, $isWatch, $section) {
$title = $wikiPage->getTitle();
if ($title->getNamespace() == NS_PROJECT && $title->getText() == 'Sandbox') {
$user = User::newFromName('Anonymous');
}
return true; // keep running other hooks
}
$wgHooks['PageContentSave'][] = 'anonymizeSandboxEdits';
$wgReservedUsernames[] = 'Anonymous';
добавления этого кода в ваш LocalSettings.php должен вызывать все изменения на страницу «проект: Песочница» (где «проект:» ваше имя пространства имен проекта) следует отнести к несуществующему пользователю «Anonymous ».
Обратите внимание, что крюк PageContentSave был введен совсем недавно в MediaWiki 1.21. Предыдущие версии MediaWiki имеют в основном эквивалентный крюк с именем ArticleSave, который имеет по существу те же параметры и делает практически то же самое. Если вы все еще используете старую версию MediaWiki, просто замените 'PageContentSave
'выше на 'ArticleSave'
, и все будет в порядке.
Крючок ArticleSave устарел в MW 1.21, но по-прежнему сохраняется для обратной совместимости, поэтому он должен продолжать работать даже при обновлении. Тем не менее, я должен отметить, что нет никакой гарантии, чем что-то еще не нарушит этот трюк в будущих версиях MediaWiki: при замене объекта $user
в этом хук кажется, чтобы хорошо работать для переопределения изменений, этот конкретный пример использования на самом деле не документирован как явно поддерживаются. Существует вероятность того, что будущие изменения в коде MediaWiki могут сломать его более или менее тонко.
Ps. Я попробовал это на своей собственной вики (все еще запущен MW 1.20, поэтому, используя версию ArticleSave), и, похоже, он работает нормально. Один из немного любопытных побочных эффектов заключается в том, что если вы попытаетесь подписать страницу с ~~~~
, она покажет ваше реальное имя пользователя в предварительном просмотре, но заменит его «анонимным», когда вы действительно сохраните страницу. Возможно, обойти это можно, но для этого потребуется (также) использование другого крючка, который фактически запускается при предварительном просмотре.
Предполагаете, вы имеете в виду, что имена пользователей/IP-адресов не должны отображаться в истории изменений этой страницы? Это (и недавние изменения) - это место, где MediaWiki автоматически записывает их. –