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

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

Fastadmin插件开发教程之目录文件介绍

管理员 2024-12-14
Fastadmin
6

Fastadmin插件开发教程之目录文件介绍

------ FastAdmin最新版新增了插件功能,可收自由扩展和开发插件,这里简单整理一个插件文档。在此以官方博客插件为示例来介绍,因为官方博客插件是前后台都有的一套完整方案。

目录文件结构

blog├── application│   └── admin│       ├── controller│       │   └── blog│       │       ├── Category.php│       │       ├── Comment.php│       │       └── Post.php│       ├── lang│       │   └── zh-cn│       │       └── blog│       ├── model│       │   ├── BlogCategory.php│       │   ├── BlogComment.php│       │   └── BlogPost.php│       └── view│           └── blog│               ├── category│               │   ├── add.html│               │   ├── edit.html│               │   └── index.html│               ├── comment│               │   ├── add.html│               │   ├── edit.html│               │   └── index.html│               └── post│                   ├── add.html│                   ├── edit.html│                   └── index.html├── assets│   ├── css│   │   ├── main.css│   │   └── main.css.map│   ├── fonts│   ├── img│   ├── js│   ├── less│   └── lib│       ├── jquery.js│       └── jquery.pjax.js├── controller│   ├── Ajax.php│   └── Index.php├── lang│   └── zh-cn.php├── model│   ├── Category.php│   ├── Comment.php│   └── Post.php├── public│   └── assets│       └── js│           └── backend│               └── blog│                   ├── category.js│                   ├── comment.js│                   └── post.js├── view│   ├── common│   │   ├── commentlist.html│   │   ├── postlist.html│   │   └── sidebar.html│   └── index│       ├── archieve.html│       ├── category.html│       ├── index.html│       └── post.html├── Blog.php├── bootstrap.js├── LICENSE├── config.php├── info.ini└── install.sql

目录介绍

blog├── application    //此文件夹中所有文件会覆盖到根目录的/application文件夹├── assets        //此文件夹中所有文件会复制到/public/assets/addons/blog文件夹├── controller    //此文件夹为插件控制器目录├── lang            //此文件夹为插件语言包目录├── model            //此文件夹为插件模型目录├── public        //此文件夹中所有文件会覆盖到根目录的/public文件夹├── view            //此文件夹为插件视图目录├── Blog.php        //此文件为插件核心安装卸载控制器,必需存在├── bootstrap.js    //此文件为插件JS启动文件├── LICENSE        //版权文件├── config.php    //插件配置文件,我们在后台插件管理中点配置按钮时配置的文件,必需存在├── info.ini        //插件信息文件,用于保存插件基本信息,插件开启状态等,必需存在└── install.sql    //插件数据库安装文件,此文件仅在插件安装时会进行导入

其中的applicationpublic文件夹会覆盖到根目录,这两个文件夹主要用于我们后台管理功能的开发,我们可以先在后台开发好对应的管理功能后,再将对应的功能打包进插件即可,FastAdmin在插件安装和卸载时会自动进行文件冲突检测,如果遇到冲突的文件会提醒用户是否进行覆盖。
assets这个文件夹很关键,FastAdmin会将assets中的所有文件夹和文件复制到/public/assets/addons/blog/文件夹中去,这个blog即是我们的插件目录名称,assets文件夹中的所有文件不会进行文件冲突检测,/public/assets/addons/blog/这个目录下的文件,我们在视图文件中可以直接通过__ADDON__指向这个路径。因此在开发视图时我们可以先使用相对路径设计,完成后我们再统一加上这个__ADDON__的前缀
controllerlangmodelview这四个文件夹是我们插件前台功能的MVC部分,这部分文件夹不会复制或移动到其它位置。
Blog.php这个文件是插件的核心文件,我们可以在这个文件中编写插件安装或卸载时执行的脚本,或者在此插件中编写菜单的生成或删除,同时插件的行为方法也是编写在此文件中的,插件所支持的行为事件会在后面讲到。此文件命令规则为插件目录名称首字母大写。
bootstrap.js这个文件是插件的启动文件,插件在安装完启用后,FastAdmin会将此文件中的内容合并到/public/assets/js/addons.js中去,你可以在此编写插件核心JS或注册事件,在此JS中可以使用require依赖其它模块。同时在此插件中可以使用Fast、Backend、Lang等全局对象,因为在此之前此类对象已经加载且注册。
config.php这个文件是插件的配置文件,我们在后台插件管理中点配置按钮时会保存在此文件,此文件的内容格式为:

<?phpreturn [    [        //配置名称,该值在当前数组配置中确保唯一        'name'    => 'yourname',        //配置标题        'title'   => '配置标题',        //配置类型,支持string/text/number/datetime/array/select/selects/image/images/file/files/checkbox/radio/bool        'type'    => 'string',        //配置select/selects/checkbox/radio/bool时显示的列表项        'content' => [            '1' => '显示',            '0' => '不显示'        ],        //配置值        'value'   => '1',        //配置验证规则,更之规则可参考nice-validator文件        'rule'    => 'required',        'msg'     => '验证失败提示文字',        'tip'     => '字段填写帮助',        'ok'      => '验证成功提示文字'    ],    [        'name'    => 'yourname2',        'title'   => '配置标题2',        'type'    => 'radio',        'options' => [            '1' => '显示',            '0' => '不显示'        ],        'value'   => '1',        'rule'    => 'required',        'msg'     => '验证失败提示文字',        'tip'     => '字段填写帮助',        'ok'      => '验证成功提示文字'    ]];

config.php中的值在FastAdmin任何地方均可使用get_addon_config('blog')来获取配置值
info.ini这个文件仅用于保存插件基础信息和开启状态,此文件的内容格式为

name = blogtitle = 博客插件intro = 响应式博客插件,包含日志、评论、分类、归档等author = Karsonwebsite = https://www.fastadmin.netversion = 1.0.0state = 1

install.sql 这个文件中只能是SQL语句,同时在此文件中可以使用__PREFIX__表示数据库表前缀,FastAdmin在安装导入SQL时自动进行替换。此文件的内容格式为

;我们在创建数据库时最好加上IF NOT EXISTSCREATE TABLE IF NOT EXISTS `__PREFIX__blog_category` (  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,  `pid` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '父分类ID',  `name` varchar(30) NOT NULL DEFAULT '' COMMENT '分类名称',  `nickname` varchar(50) NOT NULL DEFAULT '' COMMENT '分类昵称',  `flag` set('hot','index','recommend') NOT NULL DEFAULT '' COMMENT '分类标志',  `image` varchar(100) NOT NULL DEFAULT '' COMMENT '图片',  `keywords` varchar(255) NOT NULL DEFAULT '' COMMENT '关键字',  `description` varchar(255) NOT NULL DEFAULT '' COMMENT '描述',  `diyname` varchar(30) NOT NULL DEFAULT '' COMMENT '自定义名称',  `createtime` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',  `updatetime` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '更新时间',  `weigh` int(10) NOT NULL DEFAULT '0' COMMENT '权重',  `status` varchar(30) NOT NULL DEFAULT '' COMMENT '状态',  PRIMARY KEY (`id`),  KEY `weigh` (`weigh`,`id`),  KEY `pid` (`pid`)) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8  COMMENT='博客分类表';; 在执行插入时最好加上BEGIN;和COMMIT;BEGIN;INSERT INTO `__PREFIX__blog_category` VALUES ('1', '0', '默认分类', 'default', '', '/assets/img/qrcode.png', '', '', '', '1502112587', '1502112587', '0', 'normal');COMMIT;

行为事件

FastAdmin中的行为支持ThinkPHP5的所有行为,同时FastAdmin自定义部分专属的行为事件,以下是所有所支持的行为事件
插件标签位
使用行为时在Blog.php中添加上对应的方法,FastAdmin在安装时、禁用、启用即可自动注册行为。但一定请注意在Blog.php中编写行为方法是使用的是驼峰式规则,例如upload_after,方法名则为uploadAfter,如果方法名使用upload_after则不会注册成功
至此,FastAdmin插件开发所涉及到的文件和文件夹已经介绍完了,如果有疑问,请及时在群或论坛反馈。


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

相关推荐

扫码关注

qrcode

QQ交谈

回顶部