最新消息:ShuipFCMS 已经发布

ThinkPHP独立分组时开发新模块介绍

个人作品 0浏览 2评论

主要介绍的是ShuipFCMS开发新模块时需要注意的事项。由于ShuipFCMS使用的TP的独立分组方式,所以开发新模块都很方便快捷。

这里我们来开发一个简单的Hello模块。

第一步:首先在“shuipf/Modules”目录下创建一个Hello文件夹。文件夹里面分别创建以下目录“Action,Tpl,Uninstall,Install”这几个目录。他们分别代表着,控制器目录,模板目录(这里的模板指的后台模板,并非前台模板),卸载目录,安装目录。

第二步:

这一步会写创建几个简单的文件。

Action/HelloAction.class.php

//这里的规范请参考ThinkPHP 开发手册
//AdminbaseAction 是后台公用控制器,必须继承他
//前台可以继承BaseAction
class HelloAction extends AdminbaseAction {
    //首页
    public function index(){
        echo "Hello";
    }
}

由于没使用模板(也就是$this->display()),所以这里就不用创建相应的模板文件了。

第三步:制作安装/卸载程序。

Install/Config.inc.php 模块配置信息

//模块目录
$module = 'Hello';
//模块名称
$modulename = '测试模块';
//模块简介
$introduce = '这是一个测试模块!';
//模块作者
$author = '水平凡';
//作者地址
$authorsite = 'http://www.abc3210.com/';
//作者邮箱
$authoremail = 'admin@abc3210.com';
//版本号
$version = "20130519";

Install/Extention.inc.php 这个文件是后台菜单配置文件

/**
 * 模块安装,菜单/权限配置
 * Some rights reserved:abc3210.com
 * Contact email:admin@abc3210.com
 */
defined('INSTALL') or exit('Access Denied');
//添加一个菜单到后台“模块->模块列表”ID等于常量 MENUID
$parentid = M("Menu")->add(array(
    //父ID
    "parentid" => MENUID,
    //模块目录名称,也是项目名称
    "app" => "Hello",
    //文件名称,比如HelloAction.class.php就填写 Hello
    "model" => "Hello",
    //方法名称
    "action" => "index",
    //附加参数 例如:a=12&id=777
    "data" => "",
    //类型,后台是1。
    "type" => 1,
    //状态,1是显示,2是不显示
    //需要条件的方法这里设置为0,比如删除,修改这类方法
    "status" => 1,
    //名称
    "name" => "Hello测试模块",
    //备注
    "remark" => "测试的",
    //排序
    "listorder" => 0
));

Uninstall/Extention.inc.php 卸载程序

defined('UNINSTALL') or exit('Access Denied');
//删除菜单/权限数据
M("Menu")->where(array("app"=>"Hello"))->delete();
M("Access")->where(array("g" => "Hello"))->delete();


注意安装卸载涉及到数据库的,可以直接在同目录下添加和模块名称一样的SQL文件。例如:Hello.sql。表前缀统一使用“shuipfcms_”系统会替换这个为安装系统时设置的表前缀。


前台模板前台模板统一放到“Install/Template”目录下,比如Hello模块的前台模板地址应该是“Install/Template/Hello/”这个目录,这个目录创建规则和TP规范的一样。默认是一个控制器对应一个目录,一个方法对应一个模板文件。


到这里就开发完毕了,可以直接到模块管理进行安装使用!

备注:

需要增加函数,可以在模块目录下创建“Common/function.php”。

增加模块配置文件,可以在模块目录下创建“Conf/config.php”。

需要用到模型,可以直接在模块目录下创建“Model/模块名Model.class.php”即可。例如:Model/HelloModel.class.php 使用的时候可以直接 D("Hello")即可!(小技巧:如果模型名和模块名一样,直接在其他模块使用时可以直接D方法使用不用导入文件,系统会自动加载!不同文件名跨模块使用需要手动载入。)

转载请注明:水平凡's Blog » ThinkPHP独立分组时开发新模块介绍