基础教程:https://www.xunruicms.com/doc/734.html
本例中,把默认的日期字段样式组件改成layer的日期组件,效果如下:
1、下载laydate
https://www.ilayuis.com/laydate/
随便放在网站目录中,例子我放在static/laydate
2、新建自定义继承类文件:dayrui/My/Field/Date.php
_not_edit($field, $value)) { return $this->show($field, $value); } // 字段显示名称 $text = ($field['setting']['validate']['required'] ? ' * ' : '').$field['name']; // 表单宽度设置 $width = \Phpcmf\Service::_is_mobile() ? '100%' : ($field['setting']['option']['width'] ? $field['setting']['option']['width'] : 200); // 风格 $style = 'style="width:'.$width.(is_numeric($width) ? 'px' : '').';"'; // 表单附加参数 $attr = $field['setting']['validate']['formattr']; // 按钮颜色 $color = $field['setting']['option']['color'] ? $field['setting']['option']['color'] : 'default'; // 字段提示信息 $tips = ($name == 'title' && APP_DIR) || $field['setting']['validate']['tips'] ? ''.$field['setting']['validate']['tips'].'' : ''; // 格式显示 $format = (int)$field['setting']['option']['format2']; // 是否必填 $required = $field['setting']['validate']['required'] ? ' required="required"' : ''; $str = ''; if (!$this->is_load_js($field['filetype'])) { $str.= ' '; $this->set_load_js($field['filetype'], 1); } // 字段默认值 !$value && $value = $this->get_default_value($field['setting']['option']['value']); if ($value == 'SYS_TIME' || (APP_DIR && $name == 'updatetime')) { $value = SYS_TIME; } elseif (strpos($value, '-') === 0) { } elseif (strpos($value, '-') !== false) { $value = strtotime($value); } $value = $format ? dr_date($value, 'Y-m-d') : dr_date($value, 'Y-m-d H:i:s'); $shuru = ''; $tubiao = ''; $str.= ''; $str.= $field['setting']['option']['is_left'] ? $tubiao.$shuru : $shuru.$tubiao; $str.= ''; if ($format) { // 日期 $str.= ' '; } else { // 日期 + 时间 $str.= ' '; } APP_DIR && $name == 'updatetime' && $str.= ''; $str.= $tips; return $this->input_format($name, $text, ''.$str.''); } }
这种继承方法可以无缝替换系统字段组件,不影响升级