close_xss = 1; $this->fieldtype = ['TEXT' => '']; $this->defaulttype = 'TEXT'; } /** * 字段相关属性参数 * * @param array $value 值 * @return string */ public function option($option) { $option['options'] = isset($option['options']) ? $option['options'] : 'name1|1'.PHP_EOL.'name2|2'; return [$this->_search_field(). '
'.dr_lang('格式:选项名称|选项值[回车换行]选项名称2|值2....').'
'.dr_lang('默认选中项,多个选中项用|分隔').'
' , '
' ]; } /** * 字段入库值 */ public function insert_value($field) { \Phpcmf\Service::L('Field')->data[$field['ismain']][$field['fieldname']] = dr_array2string(\Phpcmf\Service::L('Field')->post[$field['fieldname']]); } /** * 字段入库值 */ public function output($value) { return dr_string2array($value); } /** * 字段表单输入 * * @return string */ public function input($field, $value = '') { // 字段禁止修改时就返回显示字符串 if ($this->_not_edit($field, $value)) { return $this->show($field, $value); } // 字段存储名称 $name = $field['fieldname']; // 字段显示名称 $text = ($field['setting']['validate']['required'] ? ' * ' : '').dr_lang($field['name']); // 表单附加参数 $attr = $field['setting']['validate']['formattr']; // 字段提示信息 $tips = ($name == 'title' && APP_DIR) || $field['setting']['validate']['tips'] ? ''.$field['setting']['validate']['tips'].'' : ''; // 字段默认值 if ($value) { $value = dr_string2array($value); } elseif ($field['setting']['option']['value']) { $value = $this->get_default_value($field['setting']['option']['value']); $value = is_array($value) ? $value : explode('|', $value); } else { $value = null; } $str = ''; // 显示方式 $show_type = (int)$field['setting']['option']['show_type']; // 表单选项 $options = dr_format_option_array($field['setting']['option']['options']); if ($options) { foreach ($options as $v => $n) { $s = is_array($value) && in_array($v, $value) ? ' checked' : ''; $kj = ''; $str.= ''; } } return $this->input_format($name, $text, '
'.$str.'
'.$tips); } /** * 字段表单显示 * * @param string $field 字段数组 * @param array $value 值 * @return string */ public function show($field, $value = null) { $str = ''; $value = dr_string2array($value); $options = dr_format_option_array($field['setting']['option']['options']); if ($options && $value) { foreach ($options as $v => $n) { is_array($value) && in_array($v, $value) && $str.= '   '; } } return $this->input_format($field['fieldname'], $field['name'], '
'.$str.'
'); } }