继承重写日期字段组件

2022-09-27 11:26 0

基础教程:https://www.xunruicms.com/doc/734.html

本例中,把默认的日期字段样式组件改成layer的日期组件,效果如下:

image


1、下载laydate

https://www.ilayuis.com/laydate/

随便放在网站目录中,例子我放在static/laydate

image


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.'
');     } }


这种继承方法可以无缝替换系统字段组件,不影响升级

相关文章
咨询
微信
电话