财务系统开发文档>插件
quot;user")->limit(0, 5)->select(); $demos=PluginDemoModel::all(); // print_r($demos); $this->assign("users", $users); $this->assign("Title", ‘Demo title’);# 自定义title return $this->fetch("/index"); }}4、插件前台控制器(前台基类控制器app\home\controller\PluginHomeBaseController;)在插件controller/clientarea目录下创建,与后台类似;注意命名空间:namespace addons\插件目录\controller\clientarea; 例:namespace addons\client_care\controller\clientarea;具体可以参考demo_style插件; 5、模板目录插件目录下template目录:后台模板目录template/admin/;前台模板目录template/clientarea/;模板常量__ROOT__: 网站根目录,不带/;__PLUGIN_ROOT__: 插件根目录,不带/;__PLUGIN_TMPL__: 插件模板根目录,也就是插件目录下template目录,不带/;__PLUGIN_ADMIN_TMPL__: 插件模板后台根目录,template/admin目录,不带/;__PLUGIN_CLIENTAREA_TMPL__: 插件模板前台根目录,template/clientarea目录,不带/;__ADMIN_TMPL__: 系统后台模板根目录,用于加载后台模板的相关 css,js 等资源文件,不带/;__STATIC__: public/static目录,不带/;include标签: 加载插件模板目录 public文件夹下head.html文件(参考thinkPHP5.1){include file="public/head"/}标签用法参考thinkPHP5.1;6、模型7、多语言lang/目录下,建en-us.php ,zh-cn.php等;8、第三方库(待定)9、Url生成方法说明:shd_addon_url($url, $vars = [], $home = false)/** * 生成访问插件的url * @param string $url url格式:插件名://控制器名/方法 * @param array $vars 参数 [‘id’=>1,’page’=>1] * @param bool $home 是否前台 * @return string */后台路由地址:www.test.com/admin/addons?_plugin=client_care&_controller=client_care&_action=index前台路由地址:www.test.com/addons?_plugin=205&_controller=client_care&_action=index 10、插件管理界面若需要后台菜单:插件根目录下建立index.tpl,例:(舍弃)<a href="{:shd_addon_url('DingtalkTicket://AdminIndex/setting')}">设置</a><a href="{:shd_addon_url('DingtalkTicket://AdminIndex/setWebHook')}">提交</a>若需要后台菜单:插件根目录下建立menu.php,例:(2.1.9版本后)<?php/* * 自定义菜单 */return [ [ 'name' => '样式1', # 链接名称 'url' => 'DemoStyle://AdminIndex/addhelp', # 链接格式 插件名://控制器名/方法 'custom' => 0, # 是否为自定义路由 ], [ 'name' => '样式7', 'url' => 'https://www.baidu.com', 'custom' => 1, ],];11、插件前台菜单插件根目录下创建menuclientarea.php文件,范例如下<?php/* * 前台自定义菜单 */return [ [ 'name' => '插件样式Demo', # 菜单名称 默认为一级菜单 'url' => '', # 菜单路由 (若有子菜单,此值留空) 'fa_icon' => 'bx bxs-grid-alt', # 菜单图标 支持bootstrap 'lang' => [ # 菜单多语言 'chinese' => '插件样式Demo', # 中文 'chinese_tw' => '插件样式Demo', # 台湾 'english' => 'Style Demo', # 英文 ], 'child' => [ # 子菜单 没有定义为空数组 [ 'name' => '样式1', # 链接名称 'url' => 'DemoStyle://Index/addhelp', # 链接格式 插件名://控制器名/方法 菜单路由 (若有子菜单,此值留空) 'fa_icon' => '', 'lang' => [ # 菜单多语言 'chinese' => '样式1', # 中文 'chinese_tw' => '样式1', # 台湾 'english' => 'Style1', # 英文 ], 'child' => [] ], [ 'name' => '样式2', # 链接名称 'url' => 'DemoStyle://Index/customerdetail1', # 链接格式 插件名://控制器名/方法 'fa_icon' => '', 'lang' => [ # 菜单多语言 'chinese' => '样式2', # 中文 'chinese_tw' => '样式2', # 台湾 'english' => 'Style2', # 英文 ], 'child' => [] ], [ 'name' => '样式3', # 链接名称 'url' => 'DemoStyle://Index/customerdetail2', # 链接格式 插件名://控制器名/方法 'fa_icon' => '', 'lang' => [ # 菜单多语言 'chinese' => '样式3', # 中文 'chinese_tw' => '样式3', # 台湾 'english' => 'Style3', # 英文 ], 'child' => [] ], [ 'name' => '样式4', # 链接名称 'url' => 'DemoStyle://Index/customerdetail3', # 链接格式 插件名://控制器名/方法 'fa_icon' => '', 'lang' => [ # 菜单多语言 'chinese' => '样式4', # 中文 'chinese_tw' => '样式4', # 台湾 'english' => 'Style4', # 英文 ], 'child' => [] ], [ 'name' => '样式5', # 链接名称 'url' => 'DemoStyle://Index/customerdetail4', # 链接格式 插件名://控制器名/方法 'fa_icon' => '', 'lang' => [ # 菜单多语言 'chinese' => '样式5', # 中文 'chinese_tw' => '样式5', # 台湾 'english' => 'Style5', # 英文 ], 'child' => [] ], [ 'name' => '样式6', # 链接名称 'url' => 'DemoStyle://Index/helplist', # 链接格式 插件名://控制器名/方法 'fa_icon' => '', 'lang' => [ # 菜单多语言 'chinese' => '样式6', # 中文 'chinese_tw' => '样式6', # 台湾 'english' => 'Style6', # 英文 ], 'child' => [] ] ] ]]; 12、安装第三方库创建 composer.json,以export_excel为例:在export_excel插件根目录public/plugins/addons/export_excel中创建composer.json文件{ "name": "thinkcmf/export_excel", "description": "ExportExcel", "type": "cmf-plugin", "license": "apache2.0", "authors": [ { "name": "test", "email": "test@qq.com" } ], "require": { }} composer.json属性:name: compser包的的名称,格式your-vendor-name/package-namedescription:compser包的描述type:compser包的类型,这里固定为 cmf-pluginlicense:compser包的开源协议authors:compser包的作者及联系方式require:依赖库,这里留空{} 安装第三方库cd 到插件目录下,然后执行 composer安装命令,如:composer require phpoffice/phpspreadsheet剩下所有更新,删除包等操作就是标准的composer操作