|
|
(2 intermediate revisions by the same user not shown) |
Line 1: |
Line 1: |
− | {{Extension4i | + | {{Extension4info |
| |name=SimpleForms | | |name=SimpleForms |
| |mediawiki=1.18+ | | |mediawiki=1.18+ |
− | |url=http://wiki.4intra.net/SimpleForms (оригинал — [[mediawikiwiki:Extension:Simple Forms]]) | + | |url=http://wiki.4intra.net/SimpleForms |
− | |назначение=Вставка форм для создания вики-страниц по шаблону. Отрефакторенная версия расширения. | + | |url mw=http://www.mediawiki.org/wiki/Extension:Simple_Forms |
| + | |description en=Creating/editing articles via a form. Refactored version. |
| + | |description ru=Вставка форм для создания вики-страниц по шаблону. Отрефакторенная версия расширения. |
| |created=2007-04-25 | | |created=2007-04-25 |
| |version=0.5 (2013-01-21) | | |version=0.5 (2013-01-21) |
| |included=2010-10-26 | | |included=2010-10-26 |
| |status=fork | | |status=fork |
| + | |useful=maybe |
| }} | | }} |
− | | + | {{ExtensionFromInfo|lang=en|name=SimpleForms}} |
− | == Использование ==
| + | [[Category:Incomplete extension descriptions]] |
− | | + | |
− | Идеи использования расширения:
| + | |
− | # (Хорошая) добавить на страницу форму с какими-то полями, а по нажатию кнопки собирать и сохранять из значений этих полей новую страницу по какому-либо шаблону.
| + | |
− | # (Хуже, но сойдёт) добавить на страницу форму, которая может показать результат выполнения шаблона с учётом переданных полей формы, никуда его не сохраняя. Что-то вроде предварительного просмотра формы.
| + | |
− | # (Совсем дурацкая) с помощью данного расширения добавить на страницу произвольную форму, отправляющую произвольные данные на произвольный ресурс. Данная идея совсем плоха — произвольные формы проще задать в виде чистого HTML в блоке <html> </html>, к чему и перешли авторы, когда забросили данное расширение.
| + | |
− | | + | |
− | И оригинальная версия расширения, и наша могут выполнять все 3 пункта.
| + | |
− | | + | |
− | Делается это с помощью 4-х новых функций парсера: form, input, formend и request.
| + | |
− | | + | |
− | Пример использования:
| + | |
− | | + | |
− | <pre>
| + | |
− | {{#form: content = <nowiki>{{#dpl:category={{subst:#request:cat}}}}</nowiki> }} | + | |
− | {{#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:}}
| + | |
− | </pre>
| + | |
− | | + | |
− | Здесь:
| + | |
− | * Нажатие Preview list покажет будущий результат внизу формы
| + | |
− | * Нажатие Save page сохранит результат подстановки на страницу, название которой будет в поле pagename
| + | |
− | * Нажатие Preload edit form откроет обычную форму редактирования страницы, название которой будет в поле pagename, с содержимым, заполненным из результата подстановки.
| + | |
− | | + | |
− | Обратите внимание на <tt><nowiki>{{subst:#request:cat}}</nowiki></tt>. Это и есть та подстановка, которая будет выполнена при сохранении статьи. Прочитать о subst подробнее можно в [[mediawikiwiki:Manual:Substitution|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.
| + | |
− | | + | |
− | == Установка ==
| + | |
− | | + | |
− | Процедура установки стандартная, нужно включить в <tt>LocalSettings.php</tt>:
| + | |
− | | + | |
− | <code-php>
| + | |
− | require_once "$IP/extensions/SimpleForms/SimpleForms.php";
| + | |
− | </code-php>
| + | |
− | | + | |
− | [[en:SimpleForms/en]]
| + | |