这里介绍的是模块开发好后的安装程序(通俗的讲,就是把你开发的程序,加入ShuipFCMS的模块管理,支持安装/卸载)。
基本的安装程序结构如下:
![2015-08-05/55c1976658f3d](https://box.kancloud.cn/2015-08-05_55c1976658f3d.png)
解释:
> Install 模块下的安装目录(注意大小写)
Template 前台模板目录(注意:该目录下需要创建一个和当前模块一样的文件夹,然后才在下面放相应模板。)例如:Special模块,我们就要创建“Special\Install\Template\Special\”这个目录,然后才在里面放各个控制对应的模板。
Menu.php 这个后台菜单项,也是权限控制项。
Special.sql 这个数据库安装脚本,命名是当前模块名。如果没有数据库相关,可以不需要。
* * * * *
这就是最基本的安装程序。可以实现模块的安装。
这里我们介绍下Menu.php文件:
~~~
return array(
array(
//父菜单ID,NULL或者不写系统默认,0为顶级菜单
"parentid" => NULL,
//地址,[模块/]控制器/方法
"route" => "Search/Search/index",
//类型,1:权限认证+菜单,0:只作为菜单
"type" => 0,
//状态,1是显示,0不显示(需要参数的,建议不显示,例如编辑,删除等操作)
"status" => 1,
//名称
"name" => "搜索配置",
//备注
"remark" => "搜索配置!",
//子菜单列表
"child" => array(
array(
"route" => "Search/Search/create",
"type" => 1,
"status" => 1,
"name" => "重建索引",
"child" => array(
//这里是其它的子菜单
)
),
array(
"route" => "Search/Search/searchot",
"type" => 1,
"status" => 1,
"name" => "热门搜索",
),
),
),
);
~~~
`如果您能开发模块,我相信您对上面的代码很了解它是干什么的吧~`
> 同时系统还提供一个 D('Admin/Access')->isCompetence 方法,用于判断是否有权限!
> 例如:D('Admin/Access')->isCompetence('Special/Index/index') 这个就是判断 Special模块下SpecialAction.class.php里的index方法是否有权限执行。
* * * * *
如果上面的安装方法已经满足你了,下面的更高级的用法,就可以不用看拉~
模块安装是支持安装脚本的,也就是“`Special\Install\Install.class.php`”
Install.class.php 文件,就是由开发者,自己来决定,要如何安装这个模块的一些流程,需要处理的东西。
安装脚本,必须实现两个方法,run 执行安装方法 end 安装完成回调方法。
一个例子:
~~~
namespace Search\Install;//这里的Search是你模块的目录名称,这点很重要
use Libs\System\InstallBase;
class Install extends InstallBase {
//安装前进行处理
public function run() {
return true;
}
//基本安装结束后的回调
public function end() {
return true;
}
}
~~~