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.