Skip to content
  1. Компоненты
  2. ms2form

ms2form ​

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

ms2form

Последние версии

Возможности ​

  • Создание продуктов 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_bcc1Укажите через запятую список id администраторов, которым нужно отправлять сообщения о создании нового ресурса.
ms2form_mail_createdbyДаОтправлять уведомление создателю ресурса
ms2form_mail_fromАдрес для отправки почтовых уведомлений. Если не заполнен - будет использована настройка emailsender.
ms2form_mail_from_nameИмя, от которого будут отправлены все уведомления. Если не заполнен - будет использована настройка site_name.

Параметры вызова сниппета ​

НазваниеПо умолчаниюОписание
allowFilesДаРазрешить пользователю загружать файлы на сервер.
allowedFieldsparent, pagetitle, content, published, template, hidemenu, tagsПоля продукта, которые разрешено заполнять пользователю. Можно указывать имена TV параметров.
editorquillТип редактора контента. 0 - отключить редактор, quill
parentId основной категории для публикации ресурса. Обязательно для заполнения
parentMse2formРазрешить создавать новые категории и использовать форму Msearch2 для автодополнения. Json строка с параметрами сниппета mSearchForm [json]
parentsСписок id, через запятую, ресурсов для поиска категорий в которых будет опубликован ресурс одновременно с основной категорией. По умолчанию выводятся все доступные категории с фронтенда, с проверкой прав.
parentsIncludeTVsСписок названий TV, через запятую, которые будут выводиться вместе с дополнительными категориями
parentsSortbypagetitleПоле для сортировки дополнительных категорий, можно использовать TV
parentsSortdirASCНаправление сортировки дополнительных категорий
resourcesСписок id, через запятую, категорий в которых будет опубликован ресурс одновременно с основной категориией. Альтернатива parents
permissionssection_add_childrenПроверка прав на публикацию в раздел. По умолчанию проверяется разрешение section_add_children.
redirectPublishednewНа какой документ отправлять пользователя при создании ресурса? new - на вновь созданный, 0 - не перенаправлять, id - на ресурс с указанным id
redirectScheme-1Схема создания url для перенаправления modx.makeurl
requiredFieldsparent, pagetitle, contentОбязательные поля ресурса, которые пользователь должен заполнить для отправки формы.
sourceId источника медиа для загрузки файлов. По умолчанию будет использован источник, указанный в системной настройке ms2_product_source_default.
templateid шаблона для публикации ресурса, эта настройка отключает настройку templates
templates1Список id шаблонов для публикации ресурсов формата 1==Базовый,2==Дополнительный, можно указать только один id шаблона, по умолчанию используется шаблон с id равным 1
tagstrueРазрешить или запретить вывод тегов
tagsNewtrueРазрешить или запретить добавлять новые теги
tplCreatetpl.ms2form.createЧанк для создания нового ресурса
tplEmailBcctpl.ms2form.email.bccЧанк для уведомления администраторов сайта о новом ресурсе.
tplFiletpl.ms2form.fileЧанк оформления загруженного файла, который не является изображением.
tplFilestpl.ms2form.filesКонтейнер для вывода загрузчика и списка уже загруженных файлов.
tplImagetpl.ms2form.imageЧанк оформления загруженного изображения.
tplSectionRowtpl.ms2form.section.rowЧанк для оформления вывода дополнительной категории
tplTagRowtpl.ms2form.tag.rowЧанк для оформления вывода тега
tplUpdatetpl.ms2form.updateЧанк для обновления существующего ресурса

Использование компонента ​

Для создания нового товара вызовите не кешируемый сниплет ms2form с необходимыми параметрами.

Для редактирования существующего товара с помощью формы, на ресурс с формой должна вести ссылка с GET параметром ?&pid=[id товара].

Политики доступа ​

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

Способы вызова ​

Сниппет вызывается не кэшированным.

modx
[[!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 и в чанки:

modx
<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>
modx
<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 и полей ресурса кроме шаблона, тегов, мультикатегорий, редактора контента и галереи нужно определять вручную с помощью сторонних скриптов или использовать скрытое поле:

html
<input type="hidden" name="hidemenu" value="0"/>

Разработка дополнения ​

О предложениях и ошибках в работе ms2Form сообщайте на Github.