声明:本站文章均为作者个人原创,图片均为实际截图。如有需要请收藏网站,禁止转载,谢谢配合!!!

FastAdmin插件官方文档已经说得很详细了,按照文档做了一遍,成功了,因此记录下来

  • 权限管理
    基于完善的Auth权限控制管理、无限父子级权限分组、可自由分配子级权限、一个管理员可同时属于多个组别

  • 响应式开发
    基于Bootstrap和AdminLTE进行二次开发,手机、平板、PC均自动适配,无需要担心兼容性问题

  • 多语言
    不仅仅后台开发支持多语言,同时视图部分和JS部分仍然共享同一个语言包,语法相同且自动加载

  • 模块化开发
    控制器、模型、视图、JS一一对应,使用RequireJS进行JS模块化管理,采用Bower进行前端包组件管理

  • 一键CRUD
    可使用命令行一键生成控制器、模型、视图和JS文件,一键生成API文档,一键生成回收站,一键生成后台权限节点和菜单栏

  • 自由可扩展
    FastAdmin提供强大丰富的应用(插件)市场,可直接在线安装和卸载用户(插件),同时支持命令行一键操作

1.生成插件基本信息

php think addon -a bdbk -c create

图片alt
可以看到插件基本文件和信息

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

整个插件目录如下

图片alt