[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
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
При этом в логах ошибка:
Ещё к сожалению поле контента не всегда подгружается. приходится перезагружать страницу, хотя снипет вызывается не кэшируемым (редактор bootstrapMarkdown)
Не могу взять в толк, доступ к контексту ms2formUserPolicy у администратора стоит по умолчанию, но даже будучи залогиненным форма не отображается.
И я прочитал в первом комментарии, что вы можете помочь, скажите сколько стоит установка и настройка вашего компонента на сайт по тз?
Просто некоторые заказчики упорно не хотят видеть код и разбираться в нём, хотят чтобы было как в «ворде».
2. Если нет, насколько проблемно самому сменить редактор на какой-нибудь визуальный, например на jhollingworth.github.io/bootstrap-wysihtml5/?
2 = Это id дополнительного поля.
Права стоят.
будто не видит это
ругается на это, видимо на моем хосте нет нужной либы, какая нужна?
но все равно Parse error: syntax error, unexpected '[' in /var/www/carticket/data/www/carticket.ru/core/components/ms2form/model/ms2form/ms2form.class.php on line 188
Но почему-то на никак не получается заставить его работать.
Для пользователей даны права:
Доступ к группам ресурсов: TicketSectionPolicy
Доступ к контекстам: ms2formUserPolicy
Доступ к источнику файлов (MS2 Images): Media Source User
Выскакивают ошибки
консоль браузера
Консоль ошибок Modx
И пи попытке загрузить файлы:
Что-то еще необходимо разрешить?
Поэтому пока не решил. Но если честно, еще толком не занимался.
вместе со всеми html-тегами
Ни как не могу найти решение этой проблемы
Но если зайти по админом, то все работает.
Так у меня работает:
В настройках группы пользователей выставляю:
права доступа > доступ к контекстам >
web Member — 9999 ms2formUserPolicy
web2 Member — 9999 ms2formUserPolicy (форма вызывается здесь)
Доступ к группам ресурсов: пусто
Доступ к источнику файлов (MS2 Images): пусто
Действительно, помогло добавление прав доступа пользователю к основному контексту (web), кроме того, на котором стоит форма
Век живи, век учись
github.com/vasilueff/ms2form
1) Продолжает ли компонент поддерживаться автором?
2) Вопрос по поводу безопасности компонента: вырезает ли он всякие «бяки» из коробки как Тикетс или нет? Имеется в виду, насколько все защищено и можно ли давать доступ к публикациям всем пользователям без разбора. Просто хочу сделать возможность добавления товаров из фронтенда любыми пользователями.
Подскажите как настроить права.
Под всеми пользователями, включая админа, вместо формы отображается «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
/assets/images/products/68/
Почему именно этот id 68, почему в него именно загружается? Я никак не мог понять, и удалил такой товар.
Теперь картинки грузились в другой товар, /assets/images/products/89/
Удалил и 89й.
Стало грузится в другой, /assets/images/products/72/
При этом сам новый товар создается, кроме изображения — все в порядке.
Почему так может происходить? Ошибок в логах нет.
Пробовал две версии, из репозитория modstore 1.3.0. и форк с гитхаба vasilueff 1.3.5 — результат один и тот же.
Я раньше не замечал, как работает форма и куда загружается картинка. А ведь, действительно, куда она загружается, если товар еще не создан и ему не присвоен id?
не знаю правильно ли это и вообще хотелось бы почитать что это за поля. и какие поля возможно еще добавить.
У меня тут появилась новая сложность я добавляю товары только по 1 шаблону
[[!ms2form?
&parents=`28`
&parentsIncludeTVs=`price`
&template=`5`
&tags=`0`
&tagsNew=`0`
]]
Но почему то после создание оказывается что шаблон не назначен
1. Важный: настроил форму, впринципе все работает, но при редактировании tv значения не обновляются, хотя при создании, tv отлично записываются. Уточните, где может быть проблема? Логи modx не фиксируют проблему. Стандартные поля обновляются (pagetitle, longtitle и тд.), а tv не хотят.
2. Можно ли как то разделить поле Категории на 2 разных: Главная категория и второстепенные?
Антон ЛевицСтолкнулся с такой проблемой.
на сайте реализована авторизация и лк пользователя, откуда можно добавлять товары на сайт. каждый зарегистрированный пользователь в ЛК может просматривать созданные им товары, а так же редактировать их, но если в адресной строке изменить id товара &pid=107
то пользователь получает возможно отредактировать товар другого пользователя
вариант решения вижу такой, получить значение поля автор объявления и сравнить его с текущем пользователем, но что-то в кучу все собрать не получается… может есть у кого готовые решения или идеи?
[[!If?
&subject=`[[+modx.user.id:userinfo=`username`]]`
&operator=`EQ`
&operand=`[[+createdby:userinfo=`username`]]`
&then=`yes`
&else=`no`
]]
[[!+fi.createdby:is=`[[!+modx.user.id]]`:then=`[[$Чанк_формы_редактирования]]`:else=`Вы не можете редактировать эту запись`]]
А вообще в ms2form есть встроенная проверка, у меня она работает. Другой момент, если вы вошли под админом, то там вроде полный доступ, но если войти под обычным юзером, то он не сможет редактировать ресурс другого юзера.
Сама загрузка файла у меня происходит относительно нормально. Но при сохранении товара — изображение не сохраняется в галереи.
Я в итоге отставил загрузку фото только при редактировании товара, тогда всё сохраняет нормально.
А как при редактировании формы правильно прикрепить файл? Можно пример вызова сниппета и\или шаблона.
Насколько я понимаю должно быть поле name=«image[]»?
1. Из чанка tpl.ms2form.create — просто убрал загрузку файлов (код как в пункте 2).
2. В чанке — tpl.ms2form.update:
На самой странице товара:
Не знаю, насколько это верно реализовано, но работает =)
at curl.js:16
at HTMLScriptElement.c.onload.c.onreadystatechange (curl.js:14)
Само собой компонент не работает вообще, кто знает что с этим можно сделать?