[ms2form] Новые возможности для редактирования
Вышла новая версия компонента для публикации и редактирования товаров minishop2 c фронтэнда сайта.
Скачать можно здесь, документация
Скоро обновится версия в modstore
Со времени моего последнего поста, я добавил несколько ключевых возможностей, позволяющих полноценно использовать форму для редактирования контента на сайте.
- Полноценная работа с галерей изображений minishop2, загрузка, запись на диск, создание превью, поддержка настройки через источник файлов, возможность удалить старые картинки и загрузить новые.
- Возможность выбрать один из двух редакторов quilljs или bootstrap-markdown. Оба редактора удобные, один визуальный другой использует markdown синтаксис.
- Создание новых и поиск существующих категорий родителей в одном поле. Для автодополнения используется msearch2 со всеми его богатыми настройками.
- Из соображений безопасности добавлена фильтрация контента с помощью библиотеки HTML Purifier
Остальные поля товаров поддерживаются, но не полностью.
Простые поля поля типа price, нужно добавить в параметр allowedFields, вывод доступен через плейсхолдер [[+price]]. Их нужно добавить в чанки вручную.
<div class="form-group">
<label>price</label>
<input type="text" class="form-control" name="price" value="[[+price]]]" maxlength="50"/>
</div>
Для множественных полей, таких как color доступен только вывод типа [[+color.0]] [[+color.1]], их редактирование еще нужно доделать. Исходный код доступен на github создавайте issue если найдете ошибку и для идей по дальнейшему улучшению.
Компонент так будет оставаться бесплатным в modstore, так что донейшен будет весьма кстати.
Форма для донейшена
Кстати за то что я довел компонент до сегодняшнего уровня стоит благодарить Wassi Wassinen )
Комментарии: 58
Если кому интересно — Антон делает отличные дополнения. Если нужен адекватный разработчик с редким умением сделать всё именно так, как вы задумали и даже удобнее и лучше — рекомендую.
При редактировании не выводит контент — только заголовок и прикрепленые файлы. Вы сталкивались с подобным?
При этом в логах ошибка:
При этом в логах ошибка:
(ERROR @ /index.php) No foreign key definition for parentClass: modUser using relation alias: up2Profile
Ещё к сожалению поле контента не всегда подгружается. приходится перезагружать страницу, хотя снипет вызывается не кэшируемым (редактор bootstrapMarkdown)
Не увидел в описании, что дополнение умеет создавать категории. А это значит, что вы можете создавать блоги, разделы с статьями и все что вам вздумается. Можно публиковать товар в несколько категорий или использовать теги. И многое, многое другое.
Он зависим от minishop2?
да, он сделан для minishop2
Галерея это круто, давно была такая необходимость, будем тестить
Добрый день! Помогите разобраться, не записываются данные в tv-поля. https://modx.pro/help/5493/#comment-39775
Здравствуйте.
Не могу взять в толк, доступ к контексту ms2formUserPolicy у администратора стоит по умолчанию, но даже будучи залогиненным форма не отображается.
И я прочитал в первом комментарии, что вы можете помочь, скажите сколько стоит установка и настройка вашего компонента на сайт по тз?
Не могу взять в толк, доступ к контексту ms2formUserPolicy у администратора стоит по умолчанию, но даже будучи залогиненным форма не отображается.
И я прочитал в первом комментарии, что вы можете помочь, скажите сколько стоит установка и настройка вашего компонента на сайт по тз?
Пришлите доступ на me6iaton@gmail.com, я посмотрю в чем проблема
1. Текстовый редактор [bootstrap-markdown] поддерживает визуальный режим редактирования?
Просто некоторые заказчики упорно не хотят видеть код и разбираться в нём, хотят чтобы было как в «ворде».
2. Если нет, насколько проблемно самому сменить редактор на какой-нибудь визуальный, например на jhollingworth.github.io/bootstrap-wysihtml5/?
Просто некоторые заказчики упорно не хотят видеть код и разбираться в нём, хотят чтобы было как в «ворде».
2. Если нет, насколько проблемно самому сменить редактор на какой-нибудь визуальный, например на jhollingworth.github.io/bootstrap-wysihtml5/?
Можно выбирать между quilljs.com/ и bootstrap-markdown. Добавить новый тоже не сложно.
Да, уже вижу в параметрах сниппета — классно! Спасибо!
Не сразу понял что TV при этом должно иметь имя типа «tv2». =))))
2 = Это id дополнительного поля.
2 = Это id дополнительного поля.
minishop2 2.1.10-pl + ms2form = белый экран при вызове компонента.
Права стоят.
Права стоят.
$ms2form = $modx->getService('ms2form'....
будто не видит это
причем на modhost завелось сразу. может какие-то либы нужны на сервере не стандартные? и там и там чистая сборка 2.3.5-pl
core/components/ms2form/model/ms2form/ms2form.class.php
return $this->success("ok", ['html' => $html, 'file' => $file]);
ругается на это, видимо на моем хосте нет нужной либы, какая нужна?
php 5.4 нужен
Спасибо, почему-то был уверен, что 5.4 стоит
но все равно Parse error: syntax error, unexpected '[' in /var/www/carticket/data/www/carticket.ru/core/components/ms2form/model/ms2form/ms2form.class.php on line 188
но все равно Parse error: syntax error, unexpected '[' in /var/www/carticket/data/www/carticket.ru/core/components/ms2form/model/ms2form/ms2form.class.php on line 188
Подскажите, можно как-то вывести список документов, созданных определенным пользователем?
да, стандартными снипплетами вывода ресурсов, с фильтрацией по полю createdby
Если добавлять товар из админки, то поле предлагает ранее введенные варианты, можно ли это сделать при вводе в поля ms2form с фронтенда, как это сделать?
Привет. Отличное дополнение.
Но почему-то на никак не получается заставить его работать.
Для пользователей даны права:
Доступ к группам ресурсов: TicketSectionPolicy
Доступ к контекстам: ms2formUserPolicy
Доступ к источнику файлов (MS2 Images): Media Source User
Выскакивают ошибки
консоль браузера
Но почему-то на никак не получается заставить его работать.
Для пользователей даны права:
Доступ к группам ресурсов: TicketSectionPolicy
Доступ к контекстам: ms2formUserPolicy
Доступ к источнику файлов (MS2 Images): Media Source User
Выскакивают ошибки
консоль браузера
Failed to load resource: the server responded with a status of 400 (Bad Request)
Консоль ошибок Modx[2016-02-02 11:35:28] (ERROR @ /assets/components/ms2form/action.php) У вас недостаточно прав для этого действия.
И пи попытке загрузить файлы: Ошибка HTTP.
Что-то еще необходимо разрешить?
Вы нашли решение?
На этом ресурсе достаточно умных людей, которых раздражают «Глупые вопросы».
Поэтому пока не решил. Но если честно, еще толком не занимался.
Поэтому пока не решил. Но если честно, еще толком не занимался.
у Вас несколько контекстов?
Хатабыч, Вы не сталкивались с такой проблемой — при редактировании ресурса контент подгружается
вместе со всеми html-тегами
Ни как не могу найти решение этой проблемы
вместе со всеми html-тегами
Ни как не могу найти решение этой проблемы
Да, несколько.
Но если зайти по админом, то все работает.
Но если зайти по админом, то все работает.
У меня два контекста web и web2.
Так у меня работает:
В настройках группы пользователей выставляю:
права доступа > доступ к контекстам >
web Member — 9999 ms2formUserPolicy
web2 Member — 9999 ms2formUserPolicy (форма вызывается здесь)
Доступ к группам ресурсов: пусто
Доступ к источнику файлов (MS2 Images): пусто
Так у меня работает:
В настройках группы пользователей выставляю:
права доступа > доступ к контекстам >
web Member — 9999 ms2formUserPolicy
web2 Member — 9999 ms2formUserPolicy (форма вызывается здесь)
Доступ к группам ресурсов: пусто
Доступ к источнику файлов (MS2 Images): пусто
Спасибо, Хоттабыч.
Действительно, помогло добавление прав доступа пользователю к основному контексту (web), кроме того, на котором стоит форма
Век живи, век учись
Действительно, помогло добавление прав доступа пользователю к основному контексту (web), кроме того, на котором стоит форма
Век живи, век учись
Свежие версии теперь на гитхабе:
github.com/vasilueff/ms2form
github.com/vasilueff/ms2form
Wassi Wassinen, есть 2 вопроса по поводу ms2Form:
1) Продолжает ли компонент поддерживаться автором?
2) Вопрос по поводу безопасности компонента: вырезает ли он всякие «бяки» из коробки как Тикетс или нет? Имеется в виду, насколько все защищено и можно ли давать доступ к публикациям всем пользователям без разбора. Просто хочу сделать возможность добавления товаров из фронтенда любыми пользователями.
1) Продолжает ли компонент поддерживаться автором?
2) Вопрос по поводу безопасности компонента: вырезает ли он всякие «бяки» из коробки как Тикетс или нет? Имеется в виду, насколько все защищено и можно ли давать доступ к публикациям всем пользователям без разбора. Просто хочу сделать возможность добавления товаров из фронтенда любыми пользователями.
Здравствуйте.
Подскажите как настроить права.
Под всеми пользователями, включая админа, вместо формы отображается «ms2form_err_no_auth».
MODX 2.5 (php7), один контекст.
Ставлю, например, права группе администраторы: web — Member — 9999-ms2formUserPolicy, пробовал web-Super User — 0 — ms2formUserPolicy, результат один ms2form_err_no_auth.
Что ещё нужно сделать ни как не пойму.
Подскажите как настроить права.
Под всеми пользователями, включая админа, вместо формы отображается «ms2form_err_no_auth».
MODX 2.5 (php7), один контекст.
Ставлю, например, права группе администраторы: web — Member — 9999-ms2formUserPolicy, пробовал web-Super User — 0 — ms2formUserPolicy, результат один ms2form_err_no_auth.
Что ещё нужно сделать ни как не пойму.
Попробовал переустановить, при установке выдало:
Error 23000 executing statement: INSERT INTO `rcps_transport_packages` (`signature`, `created`, `state`, `workspace`, `provider`, `disabled`, `source`, `package_name`, `version_major`, `version_minor`, `version_patch`, `release`, `release_index`) VALUES ('pdotools-2.5.3-pl', '2016-06-16 08:50:41', 1, 1, 2, 0, 'pdotools-2.5.3-pl.transport.zip', 'pdoTools', 2, 5, 3, 'pl', 0) Array ( [0] => 23000 [1] => 1062 [2] => Duplicate entry 'pdotools-2.5.3-pl' for key 'PRIMARY' )
Could not save package pdoTools
PHP notice: Undefined index: package_action
Успешно установлен пакет ms2form-1.3.0-beta
Error 23000 executing statement: INSERT INTO `rcps_transport_packages` (`signature`, `created`, `state`, `workspace`, `provider`, `disabled`, `source`, `package_name`, `version_major`, `version_minor`, `version_patch`, `release`, `release_index`) VALUES ('pdotools-2.5.3-pl', '2016-06-16 08:50:41', 1, 1, 2, 0, 'pdotools-2.5.3-pl.transport.zip', 'pdoTools', 2, 5, 3, 'pl', 0) Array ( [0] => 23000 [1] => 1062 [2] => Duplicate entry 'pdotools-2.5.3-pl' for key 'PRIMARY' )
Could not save package pdoTools
PHP notice: Undefined index: package_action
Успешно установлен пакет ms2form-1.3.0-beta
Вдруг неожиданно, при добавлении картинки, она загружается в папку уже существующего товара, например:
/assets/images/products/68/
Почему именно этот id 68, почему в него именно загружается? Я никак не мог понять, и удалил такой товар.
Теперь картинки грузились в другой товар, /assets/images/products/89/
Удалил и 89й.
Стало грузится в другой, /assets/images/products/72/
При этом сам новый товар создается, кроме изображения — все в порядке.
Почему так может происходить? Ошибок в логах нет.
Пробовал две версии, из репозитория modstore 1.3.0. и форк с гитхаба vasilueff 1.3.5 — результат один и тот же.
Я раньше не замечал, как работает форма и куда загружается картинка. А ведь, действительно, куда она загружается, если товар еще не создан и ему не присвоен id?
/assets/images/products/68/
Почему именно этот id 68, почему в него именно загружается? Я никак не мог понять, и удалил такой товар.
Теперь картинки грузились в другой товар, /assets/images/products/89/
Удалил и 89й.
Стало грузится в другой, /assets/images/products/72/
При этом сам новый товар создается, кроме изображения — все в порядке.
Почему так может происходить? Ошибок в логах нет.
Пробовал две версии, из репозитория modstore 1.3.0. и форк с гитхаба vasilueff 1.3.5 — результат один и тот же.
Я раньше не замечал, как работает форма и куда загружается картинка. А ведь, действительно, куда она загружается, если товар еще не создан и ему не присвоен id?
Все таки есть в логах ошибка, после добавления товара
(ERROR @ /var/www/sitename/core/components/ms2form/processors/web/product/categories.class.php : 27) PHP warning: Invalid argument supplied for foreach()
решил проблему? Я тоже сидел мучился пока в чанке не удалил input type=«hidden» name=«pid» value=«0»
не знаю правильно ли это и вообще хотелось бы почитать что это за поля. и какие поля возможно еще добавить.
У меня тут появилась новая сложность я добавляю товары только по 1 шаблону
[[!ms2form?
&parents=`28`
&parentsIncludeTVs=`price`
&template=`5`
&tags=`0`
&tagsNew=`0`
]]
Но почему то после создание оказывается что шаблон не назначен
не знаю правильно ли это и вообще хотелось бы почитать что это за поля. и какие поля возможно еще добавить.
У меня тут появилась новая сложность я добавляю товары только по 1 шаблону
[[!ms2form?
&parents=`28`
&parentsIncludeTVs=`price`
&template=`5`
&tags=`0`
&tagsNew=`0`
]]
Но почему то после создание оказывается что шаблон не назначен
Решили проблему с назначением шаблона? Такая же вот беда не могу решить пока
Добрый день. Можно ли в данном компоненте прикрутить добавление даты публикации и даты снятия с публикации?
Это уже работает. Создавайте поле в чанке ms2form и в него добавляйте дату вида yyyy-mm-dd. Самое простое — прикрутить скрипт datepicker. И сохраняйте значение в поле publishedon и т.д.
Добрый день! Помогите решить 2 вопроса:
1. Важный: настроил форму, впринципе все работает, но при редактировании tv значения не обновляются, хотя при создании, tv отлично записываются. Уточните, где может быть проблема? Логи modx не фиксируют проблему. Стандартные поля обновляются (pagetitle, longtitle и тд.), а tv не хотят.
2. Можно ли как то разделить поле Категории на 2 разных: Главная категория и второстепенные?
1. Важный: настроил форму, впринципе все работает, но при редактировании tv значения не обновляются, хотя при создании, tv отлично записываются. Уточните, где может быть проблема? Логи modx не фиксируют проблему. Стандартные поля обновляются (pagetitle, longtitle и тд.), а tv не хотят.
2. Можно ли как то разделить поле Категории на 2 разных: Главная категория и второстепенные?
Кто-нибудь знает как решить проблему с сохранением tv полей?
Спасибо за отличный компонент!
Столкнулся с такой проблемой.
на сайте реализована авторизация и лк пользователя, откуда можно добавлять товары на сайт. каждый зарегистрированный пользователь в ЛК может просматривать созданные им товары, а так же редактировать их, но если в адресной строке изменить id товара &pid=107
то пользователь получает возможно отредактировать товар другого пользователя
вариант решения вижу такой, получить значение поля автор объявления и сравнить его с текущем пользователем, но что-то в кучу все собрать не получается… может есть у кого готовые решения или идеи?
Столкнулся с такой проблемой.
на сайте реализована авторизация и лк пользователя, откуда можно добавлять товары на сайт. каждый зарегистрированный пользователь в ЛК может просматривать созданные им товары, а так же редактировать их, но если в адресной строке изменить id товара &pid=107
то пользователь получает возможно отредактировать товар другого пользователя
вариант решения вижу такой, получить значение поля автор объявления и сравнить его с текущем пользователем, но что-то в кучу все собрать не получается… может есть у кого готовые решения или идеи?
Решил через вот так
[[!If?
&subject=`[[+modx.user.id:userinfo=`username`]]`
&operator=`EQ`
&operand=`[[+createdby:userinfo=`username`]]`
&then=`yes`
&else=`no`
]]
[[!If?
&subject=`[[+modx.user.id:userinfo=`username`]]`
&operator=`EQ`
&operand=`[[+createdby:userinfo=`username`]]`
&then=`yes`
&else=`no`
]]
Можно реализовать без расширения IF. У меня так реализовано:
[[!+fi.createdby:is=`[[!+modx.user.id]]`:then=`[[$Чанк_формы_редактирования]]`:else=`Вы не можете редактировать эту запись`]]
А вообще в ms2form есть встроенная проверка, у меня она работает. Другой момент, если вы вошли под админом, то там вроде полный доступ, но если войти под обычным юзером, то он не сможет редактировать ресурс другого юзера.
[[!+fi.createdby:is=`[[!+modx.user.id]]`:then=`[[$Чанк_формы_редактирования]]`:else=`Вы не можете редактировать эту запись`]]
А вообще в ms2form есть встроенная проверка, у меня она работает. Другой момент, если вы вошли под админом, то там вроде полный доступ, но если войти под обычным юзером, то он не сможет редактировать ресурс другого юзера.
Столкнулся с ms2form_err_no_auth для любого пользователя включая админа, естественно я авторизован в этот момент, поиск ничего не дал, здесь тоже вопрос этот выше висит без ответа и еще в вопросах два сообщения и тоже тишина. Вроде все сделал как описано, в чем проблема может быть?
Каким образом прикрепить изображение к галереи minishop?
Сама загрузка файла у меня происходит относительно нормально. Но при сохранении товара — изображение не сохраняется в галереи.
Сама загрузка файла у меня происходит относительно нормально. Но при сохранении товара — изображение не сохраняется в галереи.
Тоже сталкивался с такой проблемой. У вас при создании нового товара не сохраняет галерею? Возможно это как и при создании товара через админку, пока не сохранишь ресурс, галереи по факту не существует.
Я в итоге отставил загрузку фото только при редактировании товара, тогда всё сохраняет нормально.
Я в итоге отставил загрузку фото только при редактировании товара, тогда всё сохраняет нормально.
Хм. Возможно.
А как при редактировании формы правильно прикрепить файл? Можно пример вызова сниппета и\или шаблона.
Насколько я понимаю должно быть поле name=«image[]»?
А как при редактировании формы правильно прикрепить файл? Можно пример вызова сниппета и\или шаблона.
Насколько я понимаю должно быть поле name=«image[]»?
Делал так:
1. Из чанка tpl.ms2form.create — просто убрал загрузку файлов (код как в пункте 2).
2. В чанке — tpl.ms2form.update:
На самой странице товара:
Не знаю, насколько это верно реализовано, но работает =)
1. Из чанка tpl.ms2form.create — просто убрал загрузку файлов (код как в пункте 2).
2. В чанке — tpl.ms2form.update:
<div class="form-group">
<div class="ticket-form-files">
[[+files]]
</div>
</div>
На самой странице товара:
{if $_modx->user.id > 0 && $_modx->resource.createdby == $_modx->user.id}
{if $.get['pid']}{else}
<a href="{$_modx->resource.id | url}?&pid={$_modx->resource.id}" title="Редактировать">Редактировать</a>
{/if}
{/if}
{if $.get['pid']}
[[!ms2form?
&parent=`1`
&templates=`1`
&allowedFields=`pagetitle`
&requiredFields=`pagetitle`
]]
{/if}
Не знаю, насколько это верно реализовано, но работает =)
Большое спасибо дружище!
Установил данный пакет, в консоли ошибка curl.js:16 Uncaught Error: Multiple anonymous defines encountered
at curl.js:16
at HTMLScriptElement.c.onload.c.onreadystatechange (curl.js:14)
Само собой компонент не работает вообще, кто знает что с этим можно сделать?
at curl.js:16
at HTMLScriptElement.c.onload.c.onreadystatechange (curl.js:14)
Само собой компонент не работает вообще, кто знает что с этим можно сделать?
Тут дело в загрузчике curl.js (который в ms2form используется для загрузки других библиотек). Желательно его грузить последним, иначе может вылететь ошибка из-за загрузки других AMD-модулей раньше него. Чаще всего AdminPanel грузится после, тем самым выбивает curl. Попробуйте деактивировать плагин AdminPanel.
А если плагина AdminPanel вообще нет, а ошибка всё равно присутствует?
На странице вместе с ms2form был вызван mSearchForm. После того, как убрал форму поиска, ошибка исчезла
Всем привет. А каким образом можно удалить товар из фронтенда?
Роман, доброго дня! Нашли ответ на сей вопрос?
Не-а…
Я написал разработчику—мож ответит…
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.