Skip to content
页面梗概

助力生态可持续发展

赞助 Fresns 发展

成为赞助者

插件开发

从框架结构上理解,在「管理后台」中的“扩展插件”、“控制面板”、“网站引擎”这三个频道均是插件,只不过业务方向有所不同,开发本质上没有区别。

目录结构

php
fresns/             //主程序根目录
└── extensions/         //扩展目录(插件和主题)
    └── plugins/            //插件目录
        └── DemoPlugin/         //示例插件
            ├── app/
            ├── config/
            ├── database/
            ├── resources/
            │   ├── assets/
            │   │   ├── fresns.png  //插件封面图(正方形),必须存在且位置固定
            │   │   ├── js/
            │   │   │   └── app.js
            │   │   └── sass/
            │   │       └── app.scss
            │   ├── lang/
            │   └── views/
            ├── routes/
            ├── tests/
            ├── plugin.json
            └── composer.json

文件分发介绍

插件安装发布时,将静态资源分发到 public 目录。

插件文件夹分发到站点资源目录
/extensions/plugins/{unikey}/Resources/assets//public/assets/plugins/{unikey}/

plugin.json 配置信息

json
{
    "unikey": "DemoPlugin", // 唯一标识,大驼峰
    "type": 1, // 类型: 1.扩展插件 2.控制面板 3.网站引擎 4.主题模板
    "name": "演示插件", // 名字
    "description": "这是演示插件", // 描述
    "author": "唐杰", // 开发者
    "authorLink": "https://tangjie.me", // 开发者主页
    "version": "1.0.0", // 语义化版本号
    "scene": [
        // 插件用途场景
        // 参见开发者文档「数据库」插件表介绍 plugins > scene
    ],
    "accessPath": "/mall", // 前端访客路由
    "settingPath": "/mall/admin", // 后端设置页路由
}
  • 插件用途场景 scene 参数
场景参数介绍操作界面位置
apiKey插件需要密钥服务应用中心 > 应用密钥
register“公开模式”注册功能配置系统设置 > 站点设置
join“私有模式”加入通道支持插件系统设置 > 站点设置
sendEmail邮件服务商系统设置 > 发信设置
sendSms短信服务商系统设置 > 发信设置
connect第三方互联支持系统设置 > 用户配置
realName实名认证支持系统设置 > 用户配置
multiUser多用户模式支持系统设置 > 用户配置
recharge充值服务商系统设置 > 钱包设置
withdraw提现服务商系统设置 > 钱包设置
storage存储服务商系统设置 > 存储设置
map地图服务商系统设置 > 地图设置
editor编辑器插件运营配置 > 发表配置
followGroup内容小组关注方式插件运营配置 > 内容小组
extendEditor编辑器扩展扩展管理 > 编辑器扩展
extendContentType内容类型扩展扩展管理 > 内容类型扩展
extendIpIP 服务商扩展管理 > 内容处理扩展(IP)
extendReview审核服务商扩展管理 > 内容处理扩展(审核)
extendData数据服务商扩展管理 > 内容处理扩展(数据源)
extendSearch搜索服务商扩展管理 > 内容处理扩展(搜索)
extendManage管理扩展扩展管理 > 管理扩展
extendGroup小组扩展扩展管理 > 小组扩展
extendUser用户功能扩展扩展管理 > 用户功能扩展
扩展管理 > 用户资料扩展
engine网页引擎客户端 > 网站网页
appNotify移动通知服务商客户端 > 移动应用

composer.json 配置信息

json
{
    "name": "fresns/fresns-email",
    "license": "Apache-2.0",
    "require": {
        "laravel/email": "^2.0"
    },
    "autoload": {
        "psr-4": {
            "Plugins\\FresnsEmail\\": "./"
        }
    },
    "extra": {
        "laravel": {
            "providers": [
                "Plugins\\FresnsEmail\\Providers\\FresnsEmailServiceProvider",
                "Plugins\\FresnsEmail\\Providers\\CmdWordServiceProvider",
                "Plugins\\FresnsEmail\\Providers\\RouteServiceProvider"
            ],
            "aliases": {}
        }
    }
}