FastAdmin插件官方文档已经说得很详细了,按照文档做了一遍,成功了,因此记录下来
权限管理
基于完善的Auth权限控制管理、无限父子级权限分组、可自由分配子级权限、一个管理员可同时属于多个组别响应式开发
基于Bootstrap和AdminLTE进行二次开发,手机、平板、PC均自动适配,无需要担心兼容性问题多语言
不仅仅后台开发支持多语言,同时视图部分和JS部分仍然共享同一个语言包,语法相同且自动加载模块化开发
控制器、模型、视图、JS一一对应,使用RequireJS进行JS模块化管理,采用Bower进行前端包组件管理一键CRUD
可使用命令行一键生成控制器、模型、视图和JS文件,一键生成API文档,一键生成回收站,一键生成后台权限节点和菜单栏自由可扩展
FastAdmin提供强大丰富的应用(插件)市场,可直接在线安装和卸载用户(插件),同时支持命令行一键操作
1.生成插件基本信息
php think addon -a bdbk -c create
可以看到插件基本文件和信息
2.手动创建其他文件及文件夹
- config.php 配置信息
- info.ini 插件版本信息
- Bdbk.php 插件核心文件,可以写入插件安装卸载等操作
- controller 插件前台控制器
- Test
- view 插件前台视图文件
- assets 插件前台静态资源
- application
- controller
- bdbk
- Btest1.php //后端控制器
- view
- bdbk
- btest1
- index.view //后端视图文件
- model
- bdbk
- BtestModel //后端模型文件
- public
- assets
- js
- backend
- bdbk
- btest1.js //后端js文件
3.编写插件前台页面及功能
直接按照常规流程在根目录/application/admin/controller/bdbk
开发后台管理功能
注意:
- 先按照正常后台管理开发,然后在打包前将文件移动到相应上述位置
4.移动后台文件到相应位置
直接移动,不用更改代码中命名空间及路径
addons/bdbk/application/admin/controller/bdbk
插件后台控制器
addons/bdbk/application/admin/view/bdbk
插件后台页面
addons/bdbk/application/admin/model/bdbk
插件后台模型
addons/bdbk/public/assets/js/backend/mydemo
插件静态资源文件夹
5.编写插件后台页面及功能
按照常规流程开发
在 根目录/addons/bdbk/controller
开发前端页面
在 根目录/addons/bdbk/view
开发前端页面
在 根目录/addons/bdbk/assets
放置前端资源
访问路径是 http://abc.com/addons/bdbk/test
6.更改静态资源引用路径
- 打包前要替换成
__ADDON__
<script src="__ADDON__/js/test1.js"></script>
7.配置插件菜单及安装/卸载功能
<?php
namespace addons\mydemo;
use app\common\library\Menu;
use think\Addons;
/**
* 插件
*/
class Bdbk extends Addons
{
/**
* 插件安装方法
* @return bool
*/
public function install()
{
$menu = [
[
'name' => 'mydemo',
'title' => '测试插件1管理',
'icon' => 'fa fa-magic',
'sublist' => [
['name' => 'mydemo/btest1', 'title' => '菜单1', 'icon' => 'fa fa-magic', 'sublist' => [['name' => 'mydemo/btest1/index', 'title' => '菜单一index']]],
['name' => 'mydemo/m2', 'title' => '菜单2', 'icon' => 'fa fa-magic', 'sublist' => [['name' => 'mydemo/m2/index', 'title' => '菜单二index']]],
['name' => 'mydemo/m3', 'title' => '菜单3', 'icon' => 'fa fa-magic', 'sublist' => [['name' => 'mydemo/m3/index', 'title' => '菜单三index']]]
]
]
];
Menu::create($menu);
return true;
}
/**
* 插件卸载方法
* @return bool
*/
public function uninstall()
{
Menu::delete("mydemo");
return true;
}
/**
* 插件启用方法
* @return bool
*/
public function enable()
{
Menu::enable('disable');
return true;
}
/**
* 插件禁用方法
* @return bool
*/
public function disable()
{
Menu::disable('disable');
return true;
}
}
8.配置install.sql数据库文件和testdata.sql测试数据库文件
install.sql
CREATE TABLE `__PREFIX__btest1` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = MyISAM AUTO_INCREMENT = 4 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of fa_btest1
-- ----------------------------
BEGIN;
INSERT INTO `__PREFIX__btest1` VALUES (1, 'a1');
INSERT INTO `__PREFIX__btest1` VALUES (2, 'a2');
INSERT INTO `__PREFIX__btest1` VALUES (3, 'a3');
COMMIT;
testdata.sql
BEGIN;
INSERT INTO `__PREFIX__btest1` VALUES (4, 'a4');
INSERT INTO `__PREFIX__btest1` VALUES (5, 'a5');
INSERT INTO `__PREFIX__btest1` VALUES (6, 'a6');
COMMIT;
9.打包
php think addon -a bdbk -c package
打包后文件位于
/runtime/addons/bdbk-1.0.0.zip
整个插件目录如下