Поле ввода InputBox

Материал из Базы Знаний
Перейти к: навигация, поиск

InputBox (ФормаВвода) — расширение MediaWiki, позволяющее добавлять на вики-страницы предопределённые формы HTML. Пользователь может "заполнить" форму (ввести текст, выбрать пункт меню, и т.п.), вводя текста в поле ввода.

Исходно InputBox создавался Эриком Мёллером для того, чтобы можно было добавить форму Создать статью в Викиновости.


Пример

Вики-код

<inputbox>
type=search
width=42
buttonlabel=Перейти
searchbuttonlabel=Найти
break=no
</inputbox>

Результат

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

Основной синтаксис

InputBoxes устроен следующим образом:

<inputbox>
type=
bgcolor=
width=
default=
preload=
editintro=
buttonlabel=
hidden=
searchbuttonlabel=
break=
namespaces=
prefix=
</inputbox>

Параметр type обязателен. Все остальные параметры опциональны.

Типы форм ввода

Тип Пример Описание
type=search
Создаёт форму для поиска с шириной поля ввода по умолчанию в 50 символов. Производится поиск информации, добавленной в текстовое поле.
type=create

Создаёт новую страницу. Введённая в текстовое поле информация становится именем новой страницы, открываемой в режиме редактирования.
type=comment

Добавляет новый раздел внизу страницы, имя которой задано в текстовом поле ввода.
type=commenttitle

Добавляет новый раздел c заголовком, определённом в тестовом поле. Целевая страница определяется через значение параметра page=.
type=fulltext
Форма поиска только с одной кнопкой полнотекстового поиска, без кнопки «Перейти».

Параметры

Параметр
Назначение
Пример
bgcolor=
Все типы
 
Задаёт цвет фона таблицы (значения цветов HTML). Без кавычек.
<inputbox>
type=search
bgcolor=#eeeeff
</inputbox>
width=
Все типы
 
Задаёт ширину формы ввода в символах.
<inputbox>
type=create
width=24
</inputbox>

default=
Все типы
 
Текст, помещаемый в InputBox по умолчанию.
<inputbox>
type=comment
default=User talk:Eloquence
</inputbox>

preload=
comment, create
 
Текст, взятый со страницы с заданным здесь названием, будет помещён в открывшуюся при создании новой страницы форму редактирвоания.
<inputbox>
type=create
preload=Log
</inputbox>

Введите название ещё не существующей страницы в примерах InputBox выше или ниже, и нажмите «⧼createarticle⧽» или «Оставить комментарий», соответственно, для проверки эффекта.
editintro=
comment, create
 
текст со страницы, имя которой задано через этот параметр, будет отображаться в качестве инструкции над окном редактирования.
<inputbox>
type=comment
editintro=MediaWiki:Missingcommenttext
</inputbox>

buttonlabel=
Все типы
 
Этот текст будет отображаться на основной кнопке формы.
<inputbox>
type=comment
buttonlabel=Добавить новую сплетню
</inputbox>

hidden=
create, comment
 
Этот параметр отключает собственно поле ввода.
Используется в паре с параметром "default", который в этом случае определяет не умолчание, но фиксированное имя страницы.
<inputbox>
type=comment
editintro=Extension:InputBox/editintro comment
preload=Extension:InputBox/preload
hidden=yes
default=Extension talk:Inputbox
buttonlabel=Оставить комментарий на странице обсуждения
</inputbox>

searchbuttonlabel=
search, fulltext
 
Этот текст будет отображаться на кнопке «⧼searchfulltext⧽» формы поиска.
<inputbox>
type=search
searchbuttonlabel=Копать глубже
</inputbox>
break=
Все типы
 
Определяет, будет или не будет делаться перевод строки между полем ввода и кнопкой (кнопками). Значение по умолчанию — yes (разрыв строки добавлен).
<inputbox>
type=create
width=24
break=no
</inputbox>
namespaces=
search, fulltext
 
Поддержка флажков пространств имён при полнотекстовом поиске.
Значение вида "Namespace**" задаёт режим использования настроек по умолчанию.
<inputbox>
type=search
namespaces=Main**,Help
</inputbox>
prefix=
search, fulltext
 
Сузить область поиска, ограничив его страницами, начинающимися с определённого префикса. Заметьте, что это работает не для всех поисковых движков, в настоящее время — только с последней версией.
По умолчанию — пустая строка (искать среди всех страниц).

Примечание: подчеркивания не распознаются как пробелы.

<inputbox>
type=search
prefix={{FULLPAGENAME}}/Archive
</inputbox>

Применение форм типа «create» для существующей страницы просто откроет её в режиме редактирования. В этом случае страница, заданная в качестве preload, будет проигнорирована. Применение форм типа «comment» допустимо и для новых страниц.

Тексты из пространства имён MediaWiki: приведены только для примера, в качестве значений editintro или preload могут быть указаны любые существующие страницы. К сожалению, режим preload пока не применим для поля «Краткое описание:» страницы Special:Upload.

Пожалуйста, не забывайте, что переменные, шаблоны, функции парсера и параметры шаблонов не поддерживаются в качестве параметров InputBox.

Закрепление выравнивания

Редакторам может потребоваться определять выравнивание отдельно для каждого случая использования форм ввода. Для этого можно просто удалить тег div tag из HTML-кода и задавать div при размещении InputBox в вики-тексте. Вместо этого редакторы могут установить модифицированную версию расширения со встроенной поддержкой возможности для редакторов измененять способ выравнивания — через определение значений параметра align=left, align=center, или align=right.

Использование InputBox в шаблонах

Когда требуется создавать множество похожих форм ввода, InputBox можно использовать внутри шаблона. Однако, передача значений параметров шаблона в значения параметров InputBox работает, только если тег <inputbox>...</inputbox> записан внутри шаблона в форме {{#tag:inputbox | ...}}.

В следующем примере представлен текст шаблона для создания вики-страницы на основе некотрого именованного шаблона:

{{#tag:inputbox |
type=create
buttonlabel=Создание новой {{{1|статьи}}}
preload={{{2|Template:Статья}}} }}

При обработке шаблона, первый параметр дает элемент, который планируется создать (по умолчанию, статья), для отображения на кнопке, второй параметр задает имя шаблона, который используется для создания этого элемента (по умолчанию, Template:Статья).

Например, код формы ввода для создания нового проекта из шаблона проекта может выглядеть следующим образом:

{{Template:CreateNew|проект|Template:Проект}}