msFieldsManager свои свойства в товаре miniShop2
Компонент msFieldsManager позволяет расширять свойства товара в miniShop2 путем добавления своих полей. В зависимости он выбранного типа данных для поля, будет создан соответствующий веб компонент для работы с ним.
Подробности в видео-обзоре
Подробности в видео-обзоре
Комментарии: 176
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Дмитрий АюповВаше видео очень напомнило вот это :)
и по теме:
вот так я задаю валюту, в которой считать стоимость продукта:
При этом использую стандартный minishop2
xtype: 'minishop2-combo-vendor', заменив у него адрес обращения на
url: miniShop2.config.assets_url+'../currencyrate/connector.php' — стандартный коннектор расширения currensyrate,
ну и подправил чуть чуть tpl.
Еще иногда через плагины не требуется создавать новых полей в базе данных, а нужно изменить только extJS представление существующих полей в админке.
Было бы классно, если ваш компонент так умел.
UPD: хотя для этих целей в легкую можно использовать дополнительное поле через плагин
И еще вопрос: если делать импорт из эксельника, будут ли корректно записываться свойства, созданные при помощи msFieldsManager?
Да, т.к поля созданные через msFieldsManager становятся как бы родными для продукта. С вашим полями которые вы создали вручную проблем же нет.
Но даже пусть будет селект. В олбщем пробелма: в карточке товара выводится поле дополнительное (tinyint -> php boolean) — так вот оно на сервер похоже отдает значения true\false текстом. И потому в базу сохраняется всегда значение 0. При этом если я (через другой компонент) вытсавляю этому полю значение 1 — то в карточке он нормально отображается как «ДА».
В общем похоже виджет надо поправить — чтобы возвращало значение.
p.s. кстати сейчас пришла идея использовать string заместо tinyint — но это все равно не решение имхо… поле нужно именно int.
$this->setCheckbox('field_name')
core/model/modx/modprocessor.class.php стр 209
core/components/minishop2/processors/mgr/product/update.class.php
А вообще наверное лучше через плагин делать, прицепив его к соответствующему системному событию
С нетерпением жду новую версию)
Добавлено:
Элементы формы
1) флажок
2) группа радиокнопок
3) кастомный выпадающий список
4) текстовый редактор (должен быть установлен TypoMCE или подобный)
5) редактор кода (должен быть установлен Ace)
Для всего списка элементов доступна возможность кастоматизации.
Помимо всего прочего доступна возможность создавать свои процессоры и использовать их в кастомных элементах.
Больше инфы на странице компонента и в новом видео обзоре
Подскажите, использую «Кастомный выпадающий список» в свойствах товара с именем color.
Вывожу его через mFilters
[[!mFilter2?
&limit=`9`
&parents=`0`
&element=`msProducts`
&filters=`
parent:categories,
ms|pole1,
ms|master,
ms|color`
&tpls=`tpl.msProducts.row`
&class=`msProduct`
&tplOuter=`tpl.mFilter2.outer`
&tplFilter.outer.ms|price=`tpl.mFilter2.filter.slider`
&tplFilter.row.ms|price=`tpl.mFilter2.filter.number`
]]
Однако получаю не то, что хотелось бы видеть.
На выходе чекбокс [«petrov»,«ivanov»,"\u0431\u0435\u043b\u044b\u0439"] (русских букв он не понимает тоже почему-то)
А хотелось бы:
чекбокс petrov
чекбокс ivanov
чекбокс \u0431\u0435\u043b\u044b\u0439
Можно ли вывести каждое свойство отдельно и фильтровать по нему? Или может не тот тип использую?
Живой пример: у меня один товар делают два мастера, хотелось бы добавить каждого мастера к товару(для этого использую тип «Кастомный выпадающий список»), но иметь возможность фильтровать по каждому мастеру.
MODx — 2.5.1
MiniShop2 — 2.4.5
Причем в ms2_product_extra_fields поле добавляется, а в свойствах товара — нет
Пришлось пользоваться радио-кнопками, надеюсь в скором времени удастся пофиксить проблему. Без чекбоксов тяжко )
я поставил
Как бы картинку выбрать можно, всё отлично, только вот renderer бы еще
Добавленные поля появляются но название свойства и описание свойства нет.
P.S. «Название свойста: Так пишется в компоненте»
Тип ТЕХТ
Тип свойства: группа радиокнопок
Выводит только последнее значение. ([topcontenticon] => icon_set_1_icon-4)
А надо массивом [topcontenticon] => icon_set_1_icon-4,icon_set_1_icon-1,icon_set_1_icon-5
Как можно поправить или что прописать?
значение одно.
это ко всем именам?
и все…
При обновлении страницы чекбоксы сбрасываются
это
то что тебе нужно но у тебя 1 поле в БД а там откуда этот код 6 или phptype = json или array
Здесь создание панели. Но видимо тоже в JSON
Так как у меня в панели товара оно ничего не сортирует.
Поля созданные через msFieldsManager не показывают заголовок в фильтре mFilter2
— посмотреть: girostep.ru/giroskuteryi
Прошу помочь с вопросом! Спасибо
-Добавлено: Свои вкладки ( можно создать свои вкладки которые располагаются сразу поле вкладки «Свойства товара» )
-Добавлено: Группировка полей (дает возможность вывести группу полей в определенной обвислости на своей вкладке)
Делаете query на tv, потом пересохраняете всё полученное в бд уже в новом формате
2. Очень не хватает tooltip с именем ключа у полей, можно это как-то сделать?
Еще вопрос, если щас использовать список с автозаполнением, то когда появится группа чекбоксов будет ли совместимо (смогу поменять тип поля и жить дальше)?
Что бы было понятнее, есть проект, нужно внедрять что то, если щас группы чекбоксов нет, то что можно использовать, что бы когда это появится тип поля (группа чекбокосов) можно беспроблемно переехать? Спасибо!
скорей всего да
Ключевое слово «скорее всего» очень обнадеживает! Думаю придется ждать (((
да лучше подождать
— Просьба, как выпустите новую версию, напишите тут (на тему подписан, тут же узнаю о новой версии). Спасибо!
Хотел задать вопрос, но разобрался сам.
Может кому еще поможет.
fileinstruction — название поля в базе
Тип свойства: Текстовое поле
например, если бы я использовал опции минишопа, то делал бы так
// проставка Опций
function addOption($modx, $parent_id, $option, $value){
$option = $modx->newObject('msProductOption', array(
'product_id' => $parent_id,
'key' => $option,
'value' => $value
));
$option->save();
}
а как в этом компоненте можно поступить?
на данный момент я написал скрипт по наполнению базы msProduct со свойствами, используя Вашу подсказку. скрипт отрабатывает на небольшом количестве объектов и ~40 свойствах в консоль-менеджере modx (конечно пока есть оговорка, что это тестовый сервер), но как только объектов > 500, менеджер «отваливается», но объекты догружаются, то есть nginx видимо не дожидается ответа от apache.
что я делаю дальше — дополняю скрипт и вешаю его на крон как php-cli… он снова грузит объекты, но почему то не проставляются свойства (
я еще конечно посмотрю логи на тестовом, но корректно вообще ли вешать такого рода скрипт на крон /usr/bin/php?
-Добавлено: Поле «Группа флажков»
-Добавлено: Поле «Файл»
-Добавлено: Создание индекса для поля
Создаю поле по видео-инструкции. Заполняю его у нескольких товаров подобными значениями:
На странице каталога вывожу фильтр:
В итоге вот такой фильтр выходит:
Как-то можно сделать, чтобы в итоге получился чекбокс для каждого значения, а не для всей строки полностью?
Здесь можно глянуть: s12612.h9.modhost.pro/
Так работает:
Имя базы было с дефисом. из за этого список таблиц при создании кастом процессора не выпадал. добавив апострофы все заработало
поля таблицы аналогично только с апострафами: в 307 строке
— группа свойств отображается только если создать вкладку и прикрепить группу к ней.
— отмеченные флажки в группы флажков записыпаются в бд, но сбрасываются при обновлении страницы. но если группу флажков добавить в группу свойств, а её к новой вкладке, то всё норм.
подскажите, как вывести на странице товара и на странице со списком товаров:
— список отмеченных значений в группе флажков
— название добавленного свойства (есть ли вообще такая возможность?)
Все поля созданные через msFieldsManager являются как бы родными полями minishop2 типа как price или color и соответственно с ними так же и нужно работать. Флажки это поле типа color или tags поэтому так же его значения и выводи
Названия свойств добавляются в лексикон
-Добавлено: Хранилища данных для списков
-Добавлено: Интеграция с msProductsComposerSelection
— Изменено: Сортировка элементов с помощью drag and drop
-Исправлено: мелкие баги
Видео обзор работы с хранилищем данных и интеграции с msProductsComposerSelection
В админке:
— заношу по очереди 5ть значений, сохраняю, перезагружаю страницу, все ок.
— сюда же, заношу 6е значение, сохраняю, перезагружаю, в поле нет не одного значения
п.с. под видео укажите, что устарело, специально для таких как я ))
Добавлено: Вывод поля в категории товара
Добавлено: Сортировка в категории товара
Размерность, т.е. единица измерения для каждой характеристики.
Суть в том, чтобы, например, не вводить вручную в каждом чанке «единицы измерения».
Например, в карточке товара, в блоке с фильтрами, на странице товара, в корзине могут быть использованы «единицы измерения» каких-то параметров.
Добавлено: Единицы измерения
Добавлено: Сниппет msfmUnit
Исправлено: Значение по умолчанию NULL
Примеры вызова сниппета msfmUnit
Возникла такая проблема.
Пишу свой сниппет. В сниппете идет обращение к созданным через msFieldManager полям вот таким образом:
Но для некоторых полей значение выводится в виде вот такого массива:
Хотя в базе значение либо вообще отсутствует, либо в виде строки.
Для каких-то полей нормально выводится значение, не понимаю по какой логике.
Если предварительно получить объект через $modx->getObject(), то всё работает как надо, $object->get('myFieldName') выводит значение правильно.
Возможно, дело в сайте и в его загруженности всякими плагинами, сниппетами, дополнениями. Но я просто не знаю даже в какую сторону капать. Пробовал уже отключать плагины всевозможные, но результат тот же.
Из-за чего может такое происходить?
П.С. Если обращаться через феном {$_modx->resource.manual}, то значение отображается корректно.
К шаблону (который стоял у товара) были еще подключены ТВ с такими же названиями.
Хотя, по идеи, ТВ должны вызываться через getTVValue().
Как поменять порядок следования полей в админке на странице товара? Пробовал устанавливать в «Да» опцию «Сортировка», пробовал сортировать в таблице компонента. Располагаю нужно поле первым, но на странице товара все поля выстраиваются в том порядке, в котором они было добавлены. (Кеш естественно сбрасывал)
Компонент:
Страница товара:
После обновления, когда захожу в раздел список полей, то там нет не единого поля joxi.ru/zANJvYgT6x4NDA но полей там должно быть много.
В логах только одна ошибка:
Помоги пожалуйста, как исправить? Если я правильно понял, то проблема в БД.
Покупал модуль 13.02.2018, по этому в ТП написать не дает:
Буду очень благодарен за помощь.
Наверное будет обновление?
Еще, не знаю на сколько это важно, но joxi.ru/p27KV9QIWxWGk2 пустой
MODX Revolution 2.7.3-pl
msFieldsManager 1.2.6-beta
Нужно массово у товаров c родителем Х установить свойство Y в значение Z.
Свойство создано через msFiledsManager.
Импортирую изображения с другого сайта
У изображений нету расширения
ссылка типа
site.com//resizer?imageKeys=26968238~SID~B746~S0~I5~RW2592~H1944~TH0&width=845&height=633
в логе пишет
[2020-06-22 19:56:42] (ERROR @ /www/core/components/msimportexport/model/msimportexport/msie.class.php: 4241) Ошибка загрузки "/www/assets/components/msimportexport/upload/resizer":
подскажите, как решить этот вопрос?
спасибо
Например у меня записывается в поле значение такого рода y==y==1m==1
пытаюсь получить в сниппете…
Сейчас потребовалось сделать множественный выбор ресурсов в опции товара, подскажите как это можно сделать? Спасибо
$productData->set('my_var','my_val');
$productData->save();
Пробую таким образом обновить данные, в своем скрипте, но ничего не обновляется