Расширение для MediaWiki, PageForms, загрузка изображений

5 000 руб. за проект
27 октября 2021, 15:21 • 1 отклик • 18 просмотров
Требуется разработка расширения FormInput для расширения PageForms (MediaWiki) - разрабатываемое расширение должно расширять PageForms добавляя новый input type в PageForms под названием simpleupload. Инпут предназначен для упрощения загрузки файлов и изображений а так же отображения загруженных файлов и изображений в форме в режиме редактирования.

Для загрузки с фронтенд части использовать jQuery-File-Upload ( открыт к альтернативам ), в части бекенда - API MediaWiki или API расширения на усмотрение исполнителя.

Предусмотреть только загрузку одного файла, загрузка множественных файлов не нужна. В интерфейсной части на форме редактирования в поле:

- отображать кнопку "Select file to upload" если файл не загружен
- при выборе файла для загрузки - автоматически его загружать на сервер, сохранять имя загруженного файла (из ответа сервера) в hidden поле формы и отображать кнопку очистки поля
- при отправке формы информация о названии загруженного файла должна передаваться через hidden поле
- при наличии загруженного файла (hidden поле заполнено) - отображать его название или картинку если файл - картинка, а так же кнопку очистки поля

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

{{field|SomeImage1|input type=simpleupload}}
{{field|SomeImage1|input type=simpleupload|extensions=jpg,png,jpeg,tiff,git}}
{{field|SomeImage1|input type=simpleupload|extensions=jpg,png,jpeg,tiff,git|max=1024}}

В части кода - результат должен представлять отдельное расширение, класс инпута должен наследоваться от https://github.com/wikimedia/mediawiki-extensions-PageForms/blob/master/includes/forminputs/PF_TextInput.php#L10 и регистрироваться через хук PageForms::FormPrinterSetup, https://github.com/wikimedia/mediawiki-extensions-PageForms/blob/master/includes/PF_FormPrinter.php#L90

Для выполнения задачи рекомендуется иметь опыт работы с MediaWiki, бюджет обсуждаем, почасовая оплата возможна.

Ссылки:

- PageForms: https://www.mediawiki.org/wiki/Extension:Page_Forms
- jQuery File Upload: https://github.com/blueimp/jQuery-File-Upload
- API: https://www.mediawiki.org/wiki/API:Upload