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.