Илья · 16 января 2015, 20:11 Разобрался сам [[msOptions? &name=`size` &tplOuter=`tpl.msOptions.size.outer` &tplRow=`tpl.msOptions.size.row` ]]tpl.msOptions.size.outer <div class="form-group"> <label class="col-sm-2 control-label">[[%ms2_product_[[+name]]]]:</label> <div class="col-sm-9"> [[+rows]] </div> </div>tpl.msOptions.size.row <input type="radio" id="check-size-[[+value]]" class="size" value="[[+value]]" [[+checked]] [[+disabled]] name="options[size]"> <label for="check-size-[[+value]]"><span>[[+value]]</span></label>CSS /* UI Styles: radio Sizes */ input[type="radio"], input[type="radio"]:active, input[type="radio"]:focus, input[type="radio"]:checked { display: none; } input[type="radio"] + label span { display: inline-block; width: 32px; height: 30px; background: #454545; border-radius: 4px; cursor: pointer; position: relative; padding: 0; margin: 5px; border: none; -webkit-backface-visibility: hidden; -webkit-appearance: none; -moz-appearance: none; -ms-appearance: none; -o-appearance: none; appearance: none; -webkit-transition: .075s; -moz-transition: .075s; -ms-transition: .075s; -o-transition: .075s; transition: .075s; box-shadow: 0 2px 0 #000; } input[type="radio"].size + label span { background: #b9d9f5; box-shadow: 0 2px 0 #94bfe4; text-align: center; font-family: "Open Sans", sans-serif; line-height: 32px; font-size: 16px; color: #fff; } input[type="radio"].size + label span:hover { background: #7db3e1; box-shadow: 0 2px 0 #6495be; } input[type="radio"].size + label span:active { top: 2px; box-shadow: 0 0px 0 #94bfe4; } input[type="radio"]:checked.size + label span { content: ""; color: #fff; background: #7db3e1; box-shadow: 0 2px 0 #6495be; } input[type="radio"]:checked.size + label span:after { content: ""; color: rgba(255, 255, 255, 0.3); } input[type="radio"]:disabled.size + label span { opacity: 0.4; } input[type="radio"]:disabled.size + label span:hover { background: #b9d9f5; box-shadow: 0 2px 0 #94bfe4; } input[type="radio"]:disabled.size + label span:active { top: 0; box-shadow: 0 2px 0 #94bfe4; } input[type="radio"]:checked + label span:after { cursor: pointer; display: block; position: absolute; top: -4px; left: -4px; width: 40px; height: 40px; box-shadow: inset 0 0 0 2px #d0d0d0; border-radius: 4px; line-height: 40px; font-size: 16px; text-align: center; font-family: "proviz"; content: "\e25a"; color: rgba(255, 255, 255, 0.3); -webkit-backface-visibility: hidden; -webkit-transition: .045s; -moz-transition: .045s; -ms-transition: .075s; -o-transition: .045s; transition: .045s; } input[type="radio"]:disabled.size + label span { opacity: 0.4; } :before, :after { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; }Получилось довольно симпатично Вопросы / Как организовать подобный выбор размера и цвета? 10 +2 3
Алексей Ерохин · 20 ноября 2014, 20:25 Я так делал. Перед собственно определением плагина в js-файле добавлял это: var storesex = new Ext.data.ArrayStore({ id: 'minishop2-product-sex' ,fields: [{name: 'name', type: 'string']} ,data: [['Мужской'],['Женский'],['Унисекс']] }); miniShop2.combo.ProductSex = function(config) { config = config || {}; Ext.applyIf(config,{ store: storesex ,emptyText: _('ms2_combo_select') ,displayField: 'name' ,valueField: 'name' ,hiddenName: 'sex' ,mode: 'local' ,triggerAction: 'all' ,editable: false ,selectOnFocus: false ,preventRender: true ,forceSelection: true ,enableKeyEvents: true }); miniShop2.combo.ProductSex.superclass.constructor.call(this,config); }; Ext.extend(miniShop2.combo.ProductSex,MODx.combo.ComboBox); Ext.reg('minishop2-combo-product-sex',miniShop2.combo.ProductSex);Теперь в плагине можно использовать xtype только что зарегистрированного комбобокса sex: {xtype: 'minishop2-combo-product-sex',fieldLabel: 'Пол'} Вопросы / Добавить свойство товара Список (одиночный выбор) 7 +2 4
Сергей Шлоков · 16 октября 2014, 12:38 Вот важная информация для админов сайтов — Как защитить MODX Revolution от взлома Вот еще от себя могу добавить — Вопросы / Взломали сайт 17 0 6
Где можно править тексты и заголовки писем? «Управление словарями» находится в панели администратора по пути: меню Система (иконка в виде шестеренки) -> Управление словарями.
mxBoard: канбан-доска для команд, людей и ИИ-агентов в MODX 3 Токены для ИИ-агентов, чтобы они могли работать с доской. Подробнее написал тут Баг проверю и постараюсь исправить.
Плагин EnvBadge: визуальный индикатор окружения в админке MODX3 Лучше автоматический ci/cd настроить и не править прод напрямую. Это самый безопасный вариант. Другое дело, что далеко не каждый владелец сайта и далеко не каждый сайт готовы в авт...
[videoGallery] Видео галерея YouTube, Vimeo Невозможно установить пакет с подписью: videogallery-1.4.0-beta Ошибка установки Error в /core/packages/videogallery-1.4.0-beta/modCategory/7fc931a7772edc9752c16e9c41eb5e52.reso...
Релиз miniShop2 ver. 4.4.1 & 4.4.2 Подскажите пожалуйста, может я что-то не знаю или упустил. Но есть ли решение по глюку с radio? Указываешь свое radio c одинаковым name и в результате при переключении получаешь вс...
MaxNotify Обновление компонента 1.3.0-pl (22.07.2026) — добавлено автоматическое получение полей через msOrder->toArray(); — массивы и объекты безопасно пропускаются; — стандартные...
MyFavorites MyFavorites — 3.0.0-beta Первая версия для MODX Revolution 3.x — компонент полностью переписан с нуля (PHP >= 8.4, namespaced-ядро MODX 3, PSR-4, сервис-ориентированная архит...
tpl.msOptions.size.outer
tpl.msOptions.size.row
CSS
Получилось довольно симпатично
Перед собственно определением плагина в js-файле добавлял это:
Теперь в плагине можно использовать xtype только что зарегистрированного комбобокса
Вот еще от себя могу добавить —