XunRuiCMS最灵活的地方就是插件机制完善,在XunRuiCMS的基础上开发出各种的功能的插件。
XunRuiCMS自带有一个示例插件,他位于dayrui/Temp/App/Myapp/
Myapp就是系统自带的一个示例插件,我们来分析一下这个示例插件的全部文件
一、插件配置目录Config
1、App.php
这是插件的信息配置文件,作用是描述这个插件的基本信息,内容如下:
<?php
return [
'type' => 'app', // 这是固定值,表示插件
'name' => '我的插件', // 插件的名字,中文名字,建议不超过8个汉字
'icon' => 'fa fa-user', // icon 图标
'author' => '天睿程序设计', // 插件的作者,不超过8个汉字
];
2、Install.sql
这个是插件安装时自动创建的sql语句,一般用来创建表,内容格式:
DROP TABLE IF EXISTS `dr_app_web_log`;
CREATE TABLE IF NOT EXISTS `dr_app_web_log` (
`id` BIGINT(18) unsigned NOT NULL AUTO_INCREMENT,
`time` int(10) NOT NULL,
`domain` varchar(100) NOT NULL,
`url` varchar(255) NOT NULL,
`param` text NOT NULL,
`method` varchar(20) NOT NULL,
`ip` varchar(100) NOT NULL,
`useragent` text NOT NULL,
`software` varchar(255) NOT NULL,
PRIMARY KEY (`id`),
KEY `time` (`time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='网站访客日志';
一般用于创建表,dr_表示表的前缀
3、Menu.php
是插件的菜单,安装插件后,在后台自动创建对应的菜单
<?php
/**
* 菜单配置
*/
return [
'admin' => [
// 往已有的菜单下增加链接菜单的写法
'app' => [
'left' => [
'app-plugin' => [ // 把菜单追加到[功能插件]之下
'link' => [
[
'name' => '我的测试应用',
'icon' => 'fa fa-user',
'uri' => 'myapp/home/index',
],
]
],
],
],
],
'member' => [
'content-module' => [// 把菜单追加到[内容管理]之下
'link' => [
[
'name' => '我的测试应用',
'icon' => 'fa fa-user',
'uri' => 'myapp/home/index',
],
],
],
],
];
上面的代码是在后台插件菜单里面增加本插件的名字、图标、链接
4、Routes.php
固定文件,直接复制就行
5、Uninstall.sql
卸载插件时执行的sql语句,一般是删除表,删除数据
6、Version.php
插件版本号
二、插件控制器目录 Controllers
1、Home.php
这是前端控制器文件
访问url是:/index.php?s=myapp&c=home&m=方法名
模板文件:/template/pc/default/home/myapp/*.html
2、Member/Home.php
这是用户中心的控制器文件
访问url是:/index.php?s=member&app=myapp&c=home&m=方法名
模板文件:/template/pc/default/member/myapp/*.html
3、Admin/Home.php
这事后台控制器文件
访问url是:/admin.php?s=myapp&c=home&m=方法名
模板参考四节
三、插件模型目录 Models
用于写数据操作的模型类
My.php是模型类文件,全局调用类方法:
\Phpcmf\Service::M('my', 'myapp')->方法名();
四、后台模板文件目录 Views
专门用于后台的模板文件,用于后台控制器的模板指定文件
五、如何把示例插件安装到XunRuiCMS系统中呢?
1、复制dayrui/Temp/App/Myapp/
2、粘贴到dayrui/App/Myapp/
3、去后台应用插件管理,就看到他了