迅睿CMS靈活的地方就是插件機制完善,在迅睿CMS的基礎上開發(fā)出各種的功能的插件,例如社區(qū)互動論壇、商城購物平臺、空間Zone基地等等。
迅睿CMS自帶有一個示例插件,他位于dayrui/Temp/App/Myapp/
Myapp就是系統(tǒng)自帶的一個示例插件,我們來分析一下這個示例插件的全部文件
一、插件配置目錄Config
1、App.php
這是插件的信息配置文件,作用是描述這個插件的基本信息,內容如下:
<?php return [ 'type' => 'app', // 這是固定值,表示插件 'name' => '我的插件', // 插件的名字,中文名字,建議不超過8個漢字 'icon' => 'fa fa-user', // icon 圖標 'author' => '天睿程序設計', // 插件的作者,不超過8個漢字 ];
2、Install.sql
這個是插件安裝時自動創(chuàng)建的sql語句,一般用來創(chuàng)建表,內容格式:
DROP TABLE IF EXISTS `{dbprefix}app_web_log`; CREATE TABLE IF NOT EXISTS `{dbprefix}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='網站訪客日志';
一般用于創(chuàng)建表,{dbprefix}表示表的前綴
3、Menu.php
是插件的菜單,安裝插件后,在后臺自動創(chuàng)建對應的菜單
<?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
卸載插件時執(zhí)行的sql語句,一般是刪除表,刪除數(shù)據(jù)
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=方法名
模板參考四節(jié)
三、插件模型目錄 Models
用于寫數(shù)據(jù)操作的模型類
My.php是模型類文件,全局調用類方法:
\Phpcmf\Service::M('my', 'myapp')->方法名();
四、后臺模板文件目錄 Views
專門用于后臺的模板文件,用于后臺控制器的模板指定文件