Вариант создания поля, в котором можно выбрать цвет и любую из 26+ тысяч иконок Font-Awesome
Данный вариант предназначен для сайтов у которых уже в шаблоне используется FA!
![[[*pagetitle]]](assets/images/image-2023-9-5-15-31-50.png)
![[[*pagetitle]]](assets/images/image-2023-9-5-15-36-56.png)
Для этого мы будем использовать 2 пакета:
https://extras.modx.com/package/colorpicker позволит нам создать поле выбора цвета
https://modstore.pro/packages/other/icontv позволит нам создать поле выборка иконки с собственным списком иконок
После установки пакетов создаем свой JSON конфиг для плагина icontv по адресу /core/components/icontv/elements/config/
В строке "css": "..." меняем адрес к вашему файлу стилей FA который указан в шаблоне
Далее при создании TV с типом icontv выбираем наш JSON конфиг в поле "Выберите поддержку иконок"
Пример MIGX поля
MIGX TV advantages-migx JSON формы
[
{
"caption": "Иконки",
"fields": [
{
"field": "title",
"caption": "Заголовок",
"inputTVtype": "text"
},
{
"field": "text",
"caption": "Описание",
"inputTVtype": "textarea"
},
{
"field": "color_bg",
"caption": "Цвет фона",
"inputTV": "colorpicker"
},
{
"field": "color_icon",
"caption": "Цвет иконки",
"inputTV": "colorpicker"
},
{
"field": "icon_class",
"caption": "Класс иконки (FA PRO 6.4.0 https://fontawesome.com/search например: fa-regular fa-star)",
"inputTVtype": "text"
},
{
"field": "icontv",
"caption": "ИЛИ выберите иконку из списка (в поиске)",
"inputTV": "icontv"
}
]
}
]
MIGX TV advantages-migx JSON колонки
[{
"header": "Заголовок",
"dataIndex": "title",
"sortable": "true"
},{
"header": "Описание",
"dataIndex": "text",
"sortable": "true"
},{
"header": "Цвет фона",
"dataIndex": "color_bg",
"sortable": "true"
},{
"header": "Цвет иконки",
"dataIndex": "color_icon",
"sortable": "true"
},{
"header": "Иконка",
"dataIndex": "icon_class",
"sortable": "true"
},{
"header": "Иконка",
"dataIndex": "icontv",
"sortable": "true"
}]
Чанк advantages-migx.tpl
<li class="advantages__item item-advantages">
<div class="item-advantages__icon" style="background-color: [[+color_bg]];">
<i class="[[+icon_class:default=`[[+icontv]]`]]" style="color: [[+color_icon]];"></i>
</div>
<div class="item-advantages__title">[[+title]]</div>
<p>[[+text]]</p>
</li>
В данном случае "inputTV": "icontv" и "inputTV": "icontv" это названия отдельных полей которых мы используем в своем MIGX, не тип поля, а название существующего поля