SimpleForms/ru
SimpleForms — расширение MediaWiki.
- Назначение: Вставка форм для создания вики-страниц по шаблону. Отрефакторенная версия расширения.
- Репозиторий: https://github.com/mediawiki4intranet/SimpleForms
- Домашняя страница: http://wiki.4intra.net/SimpleForms, SimpleForms на mediawiki.org
- Версия MediaWiki: гарантирована совместимость с 1.18+, возможна с другими
- Лицензия: GPLv2.0+
- Дата создания: 2007-04-25
- Последняя версия: 0.5 (2013-01-21)
- Оценка расширения: Возможно полезное (3)
Включение в сборку Mediawiki4Intranet:
- Дата включения: 2010-10-26
- Включённая версия: последняя
- Состояние доработок: Значительно доработано в сборке MediaWiki4Intranet
Использование
Идеи использования расширения:
- (Хорошая) добавить на страницу форму с какими-то полями, а по нажатию кнопки собирать и сохранять из значений этих полей новую страницу по какому-либо шаблону.
- (Хуже, но сойдёт) добавить на страницу форму, которая может показать результат выполнения шаблона с учётом переданных полей формы, никуда его не сохраняя. Что-то вроде предварительного просмотра формы.
- (Совсем дурацкая) с помощью данного расширения добавить на страницу произвольную форму, отправляющую произвольные данные на произвольный ресурс. Данная идея совсем плоха — произвольные формы проще задать в виде чистого HTML в блоке <html> </html>, к чему и перешли авторы, когда забросили данное расширение.
И оригинальная версия расширения, и наша могут выполнять все 3 пункта.
Делается это с помощью 4-х новых функций парсера: form, input, formend и request.
Пример использования:
{{#form: content = {{#dpl:category={{subst:#request:cat}}}} }} {{#input: type = select | name = cat | * Select category * Category 1 * Category 2 }} {{#input: type = ajax | value = Preview list}} Title: {{#input: type = text | name = pagename}} {{#input: type = save | value = Save page}} {{#input: type = edit | value = Preload edit form}} {{#formend:}}
Здесь:
- Нажатие Preview list покажет будущий результат внизу формы
- Нажатие Save page сохранит результат подстановки на страницу, название которой будет в поле pagename
- Нажатие Preload edit form откроет обычную форму редактирования страницы, название которой будет в поле pagename, с содержимым, заполненным из результата подстановки.
Обратите внимание на {{subst:#request:cat}}. Это и есть та подстановка, которая будет выполнена при сохранении статьи. Прочитать о subst подробнее можно в Manual:Substitution.
Отличия от оригинальной версии
Оригинальная версия данного расширения представляет из себя ужасное наслоение кривых хаков, имеет потенциальные проблемы безопасности, заброшена авторами и на MediaWiki 1.18 уже не заводится.
В нашей версии многие проблемы исправлены:
- Код расширения помещён в git-репозиторий :) и более не хранится на вики-странице.
- Ликвидирован наикривейший хак со страницей UNTITLED, использовавшийся для показа HTML-текста страницы, ни на какой странице не сохранённого.
- Улучшена безопасность:
- Оригинальный Simple Forms перезаписывал ЛЮБУЮ статью, если в запросе был всего лишь один параметр content. Наша версия сохраняет страницы только из одного места, со спецстраницы-обработчика.
- Добавлена проверка EditToken’ов при сохранении страниц.
- Проверка прав доступа при сохранении страниц более корректна.
- Добавлена возможность заполнения формы редактирования страницы (input type=edit).
- Добавлено раскрытие подстановок (subst). Как можно было использовать расширение без этого — загадка.
- Убран мёртвый код, локализация вынесена в отдельный файл. классы вынесены в отдельные файлы с автозагрузкой, JS вынесен в отдельный файл, подгружающийся ResourceLoader’ом.
- Убрана функция paramtype, по ошибке кроме того называвшася paratype.
Несовместимые изменения:
- Чтобы с формы можно было сохранить страницу, нужно указать input type=save вместо input type=submit.
Установка
Процедура установки стандартная, нужно включить в LocalSettings.php:
require_once "$IP/extensions/SimpleForms/SimpleForms.php";