
ms2form
Выводит форму для создания продукта minishop2 пользователем из фронтэнда.

Возможности
- Создание продуктов minishop2 из фронтэнда.
- Редактирование существующих minishop2 продуктов с фронтенда, с проверкой прав.
- Поддержка нескольких редакторов quill и bootstrap-markdown.
- Автоматическое создание новой категории в которой будет опубликован продукт, интеграция с msearch2 для автодополнения.
- Загрузка изображений в галерею продукта перетаскиванием, запись превью на диск, настройка параметров через источник файлов.
- Поддержка мультикатегорий
- Поддержка тегов
- Поддержка дополнительных TV
- Возможность выбора шаблона из фронтэнда.
- Фильтрация контента с помощью HTML Purifier.
Системные настройки
| Название | По умолчанию | Описание |
|---|---|---|
| ms2form_assets_url | /assets/components/ms2form/ | Url к файлам фронтенда |
| ms2form_core_path | {core_path}components/ms2form/ | Путь к компоненту |
| ms2form_frontend_css | /assets/components/ms2form/css/web/ms2form.css | Путь к файлу со стилями магазина. Если вы хотите использовать собственные стили - укажите путь к ним здесь, или очистите параметр и загрузите их вручную через шаблон сайта. |
| ms2form_frontend_js | /assets/components/ms2form/js/web/ms2form.js | Путь к файлу со скриптами магазина. Если вы хотите использовать собственные скрипты - укажите путь к ним здесь, или очистите параметр и загрузите их вручную через шаблон сайта. |
| ms2form_mail_bcc | 1 | Укажите через запятую список id администраторов, которым нужно отправлять сообщения о создании нового ресурса. |
| ms2form_mail_createdby | Да | Отправлять уведомление создателю ресурса |
| ms2form_mail_from | Адрес для отправки почтовых уведомлений. Если не заполнен - будет использована настройка emailsender. | |
| ms2form_mail_from_name | Имя, от которого будут отправлены все уведомления. Если не заполнен - будет использована настройка site_name. |
Параметры вызова сниппета
| Название | По умолчанию | Описание |
|---|---|---|
| allowFiles | Да | Разрешить пользователю загружать файлы на сервер. |
| allowedFields | parent, pagetitle, content, published, template, hidemenu, tags | Поля продукта, которые разрешено заполнять пользователю. Можно указывать имена TV параметров. |
| editor | quill | Тип редактора контента. 0 - отключить редактор, quill |
| parent | Id основной категории для публикации ресурса. Обязательно для заполнения | |
| parentMse2form | Разрешить создавать новые категории и использовать форму Msearch2 для автодополнения. Json строка с параметрами сниппета mSearchForm [json] | |
| parents | Список id, через запятую, ресурсов для поиска категорий в которых будет опубликован ресурс одновременно с основной категорией. По умолчанию выводятся все доступные категории с фронтенда, с проверкой прав. | |
| parentsIncludeTVs | Список названий TV, через запятую, которые будут выводиться вместе с дополнительными категориями | |
| parentsSortby | pagetitle | Поле для сортировки дополнительных категорий, можно использовать TV |
| parentsSortdir | ASC | Направление сортировки дополнительных категорий |
| resources | Список id, через запятую, категорий в которых будет опубликован ресурс одновременно с основной категориией. Альтернатива parents | |
| permissions | section_add_children | Проверка прав на публикацию в раздел. По умолчанию проверяется разрешение section_add_children. |
| redirectPublished | new | На какой документ отправлять пользователя при создании ресурса? new - на вновь созданный, 0 - не перенаправлять, id - на ресурс с указанным id |
| redirectScheme | -1 | Схема создания url для перенаправления modx.makeurl |
| requiredFields | parent, pagetitle, content | Обязательные поля ресурса, которые пользователь должен заполнить для отправки формы. |
| source | Id источника медиа для загрузки файлов. По умолчанию будет использован источник, указанный в системной настройке ms2_product_source_default. | |
| template | id шаблона для публикации ресурса, эта настройка отключает настройку templates | |
| templates | 1 | Список id шаблонов для публикации ресурсов формата 1==Базовый,2==Дополнительный, можно указать только один id шаблона, по умолчанию используется шаблон с id равным 1 |
| tags | true | Разрешить или запретить вывод тегов |
| tagsNew | true | Разрешить или запретить добавлять новые теги |
| tplCreate | tpl.ms2form.create | Чанк для создания нового ресурса |
| tplEmailBcc | tpl.ms2form.email.bcc | Чанк для уведомления администраторов сайта о новом ресурсе. |
| tplFile | tpl.ms2form.file | Чанк оформления загруженного файла, который не является изображением. |
| tplFiles | tpl.ms2form.files | Контейнер для вывода загрузчика и списка уже загруженных файлов. |
| tplImage | tpl.ms2form.image | Чанк оформления загруженного изображения. |
| tplSectionRow | tpl.ms2form.section.row | Чанк для оформления вывода дополнительной категории |
| tplTagRow | tpl.ms2form.tag.row | Чанк для оформления вывода тега |
| tplUpdate | tpl.ms2form.update | Чанк для обновления существующего ресурса |
Использование компонента
Для создания нового товара вызовите не кешируемый сниплет ms2form с необходимыми параметрами.
Для редактирования существующего товара с помощью формы, на ресурс с формой должна вести ссылка с GET параметром ?&pid=[id товара].
Политики доступа
Все необходимы права находятся в политике доступа ms2formUserPolicy, примените эту политику к группе пользователей чтобы у них была возможность пользоваться формой
Способы вызова
Сниппет вызывается не кэшированным.
[[!ms2form?
&parent=`54`
&parentMse2form=`{"parents": "114"}`
&parents=`54,58`
&editor=`bootstrapMarkdown`
&templates=`1==Базовый,2==Дополнительный`
&allowedFields=`parent,pagetitle,content,published,template,hidemenu,tags,tv1`
&requiredFields=`parent,pagetitle,content`
]]Свойства ресурса и дополнительные поля нужно добавить в параметр allowedFields и в чанки:
<input type="hidden" name="hidemenu" value="0"/>
<div class="form-group">
<label>[[%ms2form_pagetitle]]</label>
<span class="text-danger">*</span>
<input type="text" class="form-control" placeholder="[[%ms2form_pagetitle]]" name="pagetitle" value="" maxlength="50" id="ms2formPagetitle"/>
</div>
<div class="form-group">
<label>Пример TV </label>
<br/>
<input type="text" name="tv1" class="form-control">
</div><input type="hidden" name="hidemenu" value="0"/>
<div class="form-group">
<label>[[%ms2form_pagetitle]]</label>
<input type="text" class="form-control" placeholder="[[%ms2form_pagetitle]]" name="pagetitle" value="[[+pagetitle]]" maxlength="50" id="ms2form-pagetitle"/>
</div>
<div class="form-group">
<label>Пример TV </label>
<br/>
<input type="text" value="[[+tv1]]" name="tv1" class="form-control">
</div>Внешний вид дополнительных TV и полей ресурса кроме шаблона, тегов, мультикатегорий, редактора контента и галереи нужно определять вручную с помощью сторонних скриптов или использовать скрытое поле:
<input type="hidden" name="hidemenu" value="0"/>Разработка дополнения
О предложениях и ошибках в работе ms2Form сообщайте на Github.
