MediaWiki/Формы

From SysadminWiki.ru
Jump to: navigation, search

Общая информация

Форма - это удобный способ заполнения шаблонов. С помощью форм можно создавать и редактировать страницы (основанные на шаблонах), создавать запросы поиска. Формы предоставляются расширением Page Forms. Все формы можно посмотреть на специальной странице Служебная:Forms.


Для ссылки на форму (для её вызова) можно использовать следующие функции парсера:

  1. #forminput
  2. #formlink
  3. #formredlink -- вызов формы для не существующей страницы
  4. #queryformlink -- вызов формы запроса
  5. #default_form -- добавление закладки (таба) "Редактировать с помощью формы" в меню

Кнопка вызова формы (#formlink)

Для создания ссылки Загрузить изображение на форму Изображение можно использовать два способа:

1) Ссылка на спец страницу:

[[Special:FormEdit/Изображение/|Загрузить изображение]]

2) Создание кнопки:

{{#formlink:form=Изображение
 | link text=Загрузить изображение
 | link type=button
}}

Создание новой страницы с помощью формы (#formredlink)

Форму можно привязать к ссылке и если она ссылается на несуществующую страницу, то для создания этой страницы будет вызвана указанная форма, вместо обычного окна редактирования. Это удобно использовать в шаблонах, где определяются ссылки на страницы.

Так если в шаблоне использовалась ссылка

Автор: [[{{{автор|}}}]]

то для создания страницы с помощью формы "Карточка личности" пишем:

Автор: {{#formredlink:target={{{автор|}}}|form=Карточка личности}} }}

Если при этом хотим задать семантическое свойство "Имя":

Автор: {{#formredlink:target={{{автор|}}}|form=Карточка личности}}}} {{#set:Имя={{{автор|}}} }}

Если параметр может принимать несколько значений, разделённых запятой:

{{#arraymap:{{{автор|}}}|,|@@| {{#set:Имя=@@}} {{#formredlink:target=@@|form=Карточка личности}} }}

Добавление закладки "Редактировать с помощью формы" (#default_form)

Есть несколько способов добавить закладку со ссылкой на форму. Различаются они тем, куда добавить строку привязки к форме:

{{#default_form:Название формы}}
  1. Для отдельной страницы -- непосредственно на страницу, либо в шаблон, который она использует
  2. Для всех страниц в категории - на страницу описания категории, например: Категория:Использующие форму Изображение
  3. Для пространства имён - на страницу описания пространства имён, например: Проект:Участник (Project:User)

Выше приведено перечисление в порядке приоритета в случае пересечения разных форм по умолчанию, т.е. в первую очередь система смотрит задана ли форма по умолчанию для страницы, если да, то дальнейшие формы игнорируются. Если нет, то используется форма для категории, а для пространства имён игнорируется.

  • Чтобы скрыть закладку, но оставить привязку, используйте строку:
<span style="display:none">{{#default_form:Название формы}}</span>
  • Чтобы принудительно убрать привязку (например для отдельных страниц из категории):
{{#default_form:}}

Загрузка изображения с помощью формы

Для загрузки изображения в форму из этой же формы нужно в соответствующий тэг field добавить параметр uploadable. А чтобы имя формы содержало имя файла нужно указать параметр page name в тэге info:


<includeonly>{{{info
 | page name=Файл:<Изображение[имя файла]>
 | create title=Новое описание изображения
 | edit title=Изменение описания изображения
}}}
{{{for template|Изображение}}}
{| class="formtable"
! Файл: 
| {{{field | имя файла | input type=text | uploadable}}} [[Служебная:Список_файлов|все]], [[Служебная:Журналы/upload|последние]]
...

А в шаблоне, связанном с этой формой определить свойство с именем файла: .

{| class="wikitable"
|-
| Имя файла
| {{{имя файла|}}} {{#set: Файл=Файл:{{{имя файла|}}} }}
...

Полезные ссылки:

Если не работает окно загрузки по умолчанию (использующее библиотеку FancyBox), то можно включить в LocalSettings.php упрощенный вариант:

$wgPageFormsSimpleUpload = true;


См. также

  • Defining forms -- описание всех возможных параметров формы