Ms2form

05 мая 2015, 08:39

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

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

Возможности

  • Создание продуктов 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 - отключить редактор [0 quill bootstrapMarkdown]
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 [new 0 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 и в чанки

tpl.ms2form.create:

<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>

tpl.ms2form.update:

<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.