Если указать Группе пользователей "Разрешить вступление при регистрации",
то при Регистрации выбор группы выводиться как select (выпадающий список),
а как его заменить на checkbox ?
Пожалуйста по возможности напишите код и куда его вставить, так как я еще плохо знаю движок.
На странице Регистрации изменить вывод Группы
ЕСТЬ РЕШЕНИЕ
ЗАКРЫТО
InstantCMS 2.X
заменить select на checkbox
скорее заменить на checkbox radio (без множественного выбора)Если указать Группе пользователей "Разрешить вступление при регистрации",
то при Регистрации выбор группы выводиться как select (выпадающий список),
а как его заменить на checkbox ?
но так такового в системе radio нет, есть select с возможностью включить checkbox но только в множественном варианте, для выбора группы вариант не пойдёт, есть флаг но без передачи массива значений
по этому:
создать файл в \system\fields с именем radio.php со следующим содержимым (это копия list.php с удалёнными данными на глазок):
<?php class fieldRadio extends cmsFormField { public $title = 'Радио список'; public $sql = 'int NULL DEFAULT NULL'; public $filter_type = 'int'; public $filter_hint = LANG_PARSER_LIST_FILTER_HINT; public $var_type = 'string'; public $native_tag = false; public $dynamic_list = false; public function getOptions(){ } public function getFilterInput($value) { $items = $this->getListItems(false); return html_select($this->name, $items, $value); } public function getRules() { if($this->item){ } return $this->rules; } public function getStringValue($value){ $items = $this->getListItems(); } foreach ($value as $val) { } } public function parse($value){ $items = $this->getListItems(); $item = ''; return html($item, false); } public function getListItems($show_empty_value = true){ $items = $this->items; $generator = $this->generator; $items = $generator($this->item); } else if ($this->hasDefaultValue()) { } return $items; } public function getListValuesItems(){ $items = $this->value_items; $generator = $this->values_generator; $items = $generator($this->item); } return $items; } public function parseListItems($string){ return string_explode_list($string); } public function getDefaultVarType($is_filter=false) { return parent::getDefaultVarType($is_filter); } public function applyFilter($model, $value) { return $model->filterEqual($this->name, $value); } else { return $model->filterIn($this->name, $value); } } public function getInput($value){ $value = cmsModel::yamlToArray($value); } $this->data['items'] = $this->getListItems(); $this->data['is_ns_value_items'] = false; if($this->dynamic_list){ $this->data['value_items'] = $this->getListValuesItems(); $this->class = 'list_dynamic'; if(!$value){ $value = new stdClass(); } } return parent::getInput($value); } }
<?php if ($field->title) { ?><label for="<?php echo $field->id; ?>"><?php echo $field->title; ?></label><?php } ?> <?php foreach ($field->data['items'] as $key => $val) { $checked = false; if($key == $value) {$checked = true;} echo html_radio($field->element_name, $checked, $key, $field->data['dom_attr']).''.$val.'<br>'; } ?>
заменить fieldList на fieldRadio, что бы получилось так
и будет в итоге так
#3
16 ноября 2019 в 01:48
Ура ))) работает