Переменная в MediaWiki для текущего пользователя
В MediaWiki вы можете использовать переменную ("Волшебное слово"), такую как
{{PAGENAME}}
или же
{{REVISIONDAY}}
чтобы получить конкретную информацию, относящуюся к текущей просматриваемой странице. Существует ли похожая переменная (или, возможно, другой способ), чтобы получить текущего пользователя, который вошел в вики, то есть что-то вроде
{{USERNAME}}
контекст: Попытка использовать запрос #ask в Semantic MediaWiki, чтобы сузить список итоговых страниц, чтобы показать те, которые только пользователь создал или отредактировал:
{{#ask: [[Case Reflection:+]] [[Contributing User::{{USERNAME}}]]
| format=template
| template=Case Reflection Form Summary
| link=all
| sort=Last Edited
| order=DESC
| default=You have no case reflections related to this Case Study.}}
2 ответа
Для этого есть множество расширений, таких как GetUserName, MyVariables, UserInfo. Вся концепция отображения имен пользователей несовместима с кэшированием страниц (хотя вам нужно анализировать страницу каждый раз, когда кто-то смотрит на нее), поэтому, как правило, это не очень хорошая идея.
Я просто искал то же самое и смотрел, смогу ли я сделать это без расширений. Похоже, что есть функция по умолчанию, которая позволяет это, если вы хотите, чтобы это было частью записи статической версии на страницу, а не "Привет, Имя пользователя!" (Этот последний случай - то, почему они не реализовали это как стандартную переменную, потому что это вызывает проблемы кэширования.)
Запрос функции Викимедиа T14733 решается с помощью:
{{subst:REVISIONUSER}}
{{REVISIONUSER}} будет динамически показывать последний редактор, который обычно не тот, который вы хотите. Но если вы хотите, например, создать шаблон, который включает в себя дескриптор пользователя как часть некоторого вставленного текста, это должно сделать эту работу. Я думаю, что в вашем примере выше,
[[Contributing User::{{subst:REVISIONUSER}}]]
(Я не уверен, что Semantic Mediawiki заставит вас избежать замен, но если это произойдет, дальнейшие инструкции находятся в разделе "Руководство: замена", "Многоуровневая замена".)