На странице Регистрации изменить вывод Группы
заменить select на checkbox
то при Регистрации выбор группы выводиться как 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, что бы получилось так
и будет в итоге так