Mihan

Mihan

С нами с 26 октября 2013; Место в рейтинге пользователей: #249
Илья
16 января 2015, 20:11
3
+2
Разобрался сам
[[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;
}
Получилось довольно симпатично
Алексей Ерохин
20 ноября 2014, 20:25
4
+2
Я так делал.
Перед собственно определением плагина в 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: 'Пол'}
Сергей Шлоков
16 октября 2014, 12:38
6
0
Вот важная информация для админов сайтов — Как защитить MODX Revolution от взлома
Вот еще от себя могу добавить —