PHP建站技术分享-从入门到精通PHP建站技术分享-从入门到精通PHP建站技术分享-从入门到精通

QQ:420220301 微信/手机:150-3210-7690
当前位置:首页 > CMS教程 > Fastadmin

关于 fastadmin 改造思路,主要是想解决 fastadmin 版本升级困难 的情况

管理员 2024-12-14
Fastadmin
9

fastadmin 改版思路,主要写了一下 table 表格的改版方式,同理也可以适用于 form 表单模板的改造。

form表单也可以内置一部分样式格式并分离成单个html插件,根据 getAllFields() 自动类型渲染不同插件,用户可以自定义新增更多样式插件或覆盖内置插件样式。

table 渲染改造

php    model    class User        /**        * 获取数据库显示字段全量信息        * fa 根据数据库字段前置以及描述信息,自动生成        *        * return array        */        public getAllFields()        {            return [                'id' => [                    'desc' => '自增ID', //字段描述                    'type' => 'integer', //字段类型                    'format' => '', //前台格式化显示类型 //为空表示直接显示字段内容,不使用 js 格式化插件                ],                'email' => [                    'desc' => '邮箱',                    'type' => 'string',                    'format' => 'email', //前台格式化显示类型 //table表格显示字段时,需要使用 js 格式化插件 email 预处理                ],                'state' => [                    'desc' => '状态',                    'type' => 'tinyint',                    'format' => 'toggle', //前台格式化显示类型 //table表格显示字段时,需要使用 js 格式化插件 toggle 预处理                    'values' => [ //字段值对应显示内容                        '0' => '关闭',                        '1' => '显示'                    ]                ]            ];        }        /**        * 获取sql查询字段 用于index方法查询时使用        * fa 根据数据库字段前置以及描述信息,自动生成        *         * @param null|bool|string $table  字段前是否需要表前置,默认不带,true表示使用当前 model 对应表名, 其他字符串表示使用此字符串代替表名(应对表别名情况)        * @param null|bool|string $as 连表查询时使用,通过 as 别名区分不同表相同字段,as 生成格式可以参考 tp 关联查询时的字段格式        * return string        */        public getSqlFields($table = null,$as = null)        {            $fields = $this->getAllFields();            // 数组格式转化            return 'user.id,user.email,user.state'; //使用 表.字段 的格式可以避免关联查询出现问题        }    controller        class User            /**            * @var appModelUser            */            protected $model;            public index()            {                if($request->isAjax()){                    $total = $this->model->where()->count();                    $list = $this->model->field($this->model->getSqlFields())->where()->limit()->order()->select();                }                $this->assignconfig('fileds',$this->model->getAllFields); //透传字段处理格式到 js                 //展示通用 table 模板文件,需要定制化处理模板时,手动复制到 tp 模板路径下,创建新的模板渲染即可                return $this->view->fetch('common/table.html');             }view    common        table.html    user        index.html //fa框架可用不再创建这个模板文件 通用情况下使用 common/table.html 定制化模板直接 cp common/table.html user/index.htmlpublic    assets        common // 此目录下所有文件禁止修改 全部由 fa 框架维护,fa 升级时,从 fa 版本中复制出最新版本文件覆盖此目录下内容 // fa 对于此目录文件应考虑兼容性,尽量避免修改旧文件            js // fa 公共 js 文件夹                table_format // table 字段格式化插件目录                     email.js // table_email 邮件样式展示插件                    toggle.js // table_toggle 开关样式展示插件 //                    url.js // table_url 链接样式展示插件                    image.js // 单图片样式展示插件                    images.js // 多图片样式展示插件                common                    table.js //table.html 模板自动引入此 table 全局 js //内部根据 php 透传的 fileds 变量,自动初始化 table columns 显示列                libs // js 库,存放 jquery bootstrap 等            css // fa 公共 css 文件夹                table_format // table 字段格式化插件 对应 css 主题,方便某些 js 样式插件需要 css 样式支撑        backend            js // 用户自定义后台 js 文件夹 // 此目录优先级高于 common fa 公共目录 目的是方便用户重写 fa 通用插件                table_format // 用户自定义 table 格式化插件目录                    swiper.js // 轮播图样式插件                    email.js // 邮件样式插件,基于 fa 官方邮件样式修改,增加 xxx 功能                    url.js // 链接样式查看,基于 fa 官方链接样式修改,美化展示样式

希望以上内容对你有所帮助!如果还有其他问题,请随时提问。 各类知识收集 拥有多年CMS企业建站经验,对 iCMS, Fastadmin, ClassCMS, LeCMS, PbootCMS, PHPCMS, 易优CMS, YzmCMS, 讯睿CMS, 极致CMS, Wordpress, HkCMS, YznCMS, WellCMS, ThinkCMF, 等各类cms的相互转化,程序开发,网站制作,bug修复,程序杀毒,插件定制都可以提供最佳解决方案。

相关推荐

扫码关注

qrcode

QQ交谈

回顶部