phpcmsv9开发新模块 phpcms开发新模块

phpcms开发新模块――简介

对于一个网站来说,随着他的运营和扩大,为了用网站用户和自身管理,总会产生各种需求,且是phpcms不具有的。二次开发,就显得尤为重要。因为phpcms的MVC架构非常清晰,二次开发相对来说非常方便快捷。现在就大家介绍phpcms开发一个新模块的方法

phpcms开发新模块――方法/步骤

phpcms开发新模块 1、

了解模块的主要目录结构

classes 类目录

functions 函数目录

install 安装目录

-languages 模块的语言文件

-templdates 模块前台使用模板

-config.inc.php 模块信息,填写模块名称、简介、开发者信息

-extention.inc.php 后前管理菜单生成文件

-model.php 模型定义文件

-moduels.sql 用于向数据库插入 模块的配置信息,

templates 后台模板目录

uninstall 卸载模块相关文件目录

-extention.inc.php 后前管理菜单生成文件

-model.php 模型定义文件

index.php 是前台浏览调用的类文件

了解了目录结构,现在我们就着手开发模块了


phpcms开发新模块 2、

建立模块的基本目录结构。

现在我们新建个test模块,再在phpcms/modules目录下新建个test目录

在依次新建classes、functions、install、templdates、uninstall目录,


phpcms开发新模块 3、

新建模块配置文件。

在install目录下新建一个config.inc.php文件,

defined('IN_PHPCMS') or exit('Access Denied');

defined('INSTALL') or exit('Access Denied');

$module = 'test'; //模块的标识符,唯一性,不可重名,应该和目录同名

$modulename = '测试';

$introduce = '测试模块,用来测试的';

$author = '子海';

$authorsite = 'http://www.zihaidetiandi.com';

$authoremail = 'zihaidetiandi@sina.com';

phpcms开发新模块_cms开发


phpcms开发新模块 4、

查看模块配置信息

我们进入后台,打开模块->模块管理,找到test模块,不要急着点确定,因为许多安装之前的工作,我们还没有完成。


phpcms开发新模块 5、

添加模块主菜单

在新建的test模块目录下的install目录里,新建个extention.inc.php文件,用编辑器打开,填写以下代码,注意,parentid中的29是模块菜单的Id号,如果要在主菜单显示,可以parentid的值改为0,如果要在指定菜单中显示,可以把parentid改成对应菜单id的值即可,菜单的id可以在扩展中的菜单管理中查看。

phpcms开发新模块_cms开发


phpcms开发新模块 6、

新建模块后台类文件和模板文件

phpcms的url是这样的index.php?m=admin&c=index&a=public_main,m的值表示是模块名,c表示是类名,a表示的是类的方法名,在上一步中,我们已经向菜单表中插入一条模块名为test,类名为test,方法名为init的条菜单记录。所以就必需在test模块(即test根目录)中新建一个test类文件,并添加init方法,

defined('IN_PHPCMS') or exit('No permission resources.');

pc_base::load_app_class('admin','admin',0);

class test extends admin {

function __construct() {

parent::__construct();

}

public function init() {

include $this->admin_tpl('test');

}

}

如果方法要调用模板文件,还必需要在test/templdates目录下新建对应模块,如上述代码中,我们调用了一个test模板文件,现在我们也新建个test.tpl.php文件

<?php

defined('IN_ADMIN') or exit('No permission resources.');

include $this->admin_tpl('header','admin');

?>

<div class="pad_10">

我是测试

</div>

phpcmsv9开发新模块 phpcms开发新模块

</body>

</html>


phpcms开发新模块 7、

向模块表中插入模块安装信息并试安装模块

在install目录新建个modules.sql文件写上以下代码

INSERT INTO `phpcms_module` (

`module`, `name`, `url`, `iscore`, `version`, `description`, `setting`, `listorder`, `disabled`, `installdate`, `updatedate`)

VALUES ('test', '测试', '', '0', '1.0', '', '', '0', '0', '2010-09-06', '2010-09-06');

因为字段的名称已经很好的阐述了字段的作用,所以我只对解释iscore、disabled和setting三个字段稍作解释,iscore如果为1,表示是系统内置模块,是必选模块,对于二次开发来说,我们填写值为0即可。disabled如果为1表示禁止卸载,如果为0表示可卸载,对于我们来说,当然也是填0值。setting是模块的配置变量,用来设置模块的一些基本信息,值为一个字符串数组。例如,表单向导中的模块配置功能。

我们再回到模块管理,安装这个test模块,成功安装之后你就能看到下图的效果

phpcms开发新模块_cms开发


phpcms开发新模块 8、

新建模块子菜单

再次打开extention.inc.php,我们向菜单表中追加几个菜单

$menu_db->insert(array('name'=>'add_test', 'parentid'=>$parentid, 'm'=>'test', 'c'=>'test', 'a'=>'add_test', 'data'=>'', 'listorder'=>0, 'display'=>'1'));

$menu_db->insert(array('name'=>'edit_test', 'parentid'=>$parentid, 'm'=>'test', 'c'=>'test', 'a'=>'edit_test', 'data'=>'', 'listorder'=>0, 'display'=>'1'));

$menu_db->insert(array('name'=>'delete_test', 'parentid'=>$parentid, 'm'=>'test', 'c'=>'test', 'a'=>'delete_test', 'data'=>'', 'listorder'=>0, 'display'=>'1'));

$language = array('test'=>'测试','add_test'=>'添加测试','edit_test'=>'编辑测试','delete_test'=>'删除测试');

之后的步骤就可以参考第六步了。因为模块已经安装了,所以先把test模块卸载再重新安装。


phpcms开发新模块 9、

新建表和模型类文件

还是打开install目录,新建个model.php文件.

写上以下代码

defined('IN_PHPCMS') or exit('Access Denied');

defined('INSTALL') or exit('Access Denied');

return array('test');

这个文件的作用是用来定义模块的表名,在安装时模块时,系统会根据这个数组的值调用同目录下的同名sql文件。

而在phpcms中,一个表对应一个模型类文件。所在,我们在model文件中的返回数组中添加了一个值,对应的,我们就要新建一个同名的sql文件和一个model文件。

我们先在install目录下新建一个test.sql文件

DROP TABLE IF EXISTS `phpcms_test`;

CREATE TABLE `phpcms_test (

`id` mediumint(8) unsigned DEFAULT '0',

`name` char(20) NOT NULL,

PRIMARY KEY (`id`),

KEY `ip` (`ip`)

) TYPE=MyISAM COMMENT '测试表';

再在phpcms/model目录新建个test_model.class.php文件

defined('IN_PHPCMS') or exit('No permission resources.');

pc_base::load_sys_class('model', '', 0);

class test_model extends model {

public function __construct() {

$this->db_config = pc_base::load_config('database');

$this->db_setting = 'default';

$this->table_name = 'test';

parent::__construct();

}

}

phpcms开发新模块_cms开发


phpcms开发新模块 10、

创建自己的语言文件

考虑到多国语言,我们就得为模块新建语言文件。模块的语言文件名和模块的名称一样,在模块的install目录下的languages目录对应的语言新建一个test.lang.php文件,在安装时,系统会自动把文件拷贝到phpcms/languages下对应的语言目录下。


phpcms开发新模块 11、

配置卸载文件

在uninstall目录新建extention.inc.php和model文件,和install中的model文件一样,模块新建了多少个表,就得在这个文件的返回数组中写入多少个值,并且在uninstall目录中新建对应表名的drop表的sql文件。如果模块向其它表中插入的数据,就在extention.inc.php文件中写删除方法。


phpcms开发新模块 12、

创建模块前台文件

如果模块也为前台服务,必然要使用到模板,因此,我们就得在模块的install目录下新建个templates目录,把前台所需要的模板,全部放在这个目录。模块安装时,系统会自动在网站根目录下的templdates目录中,新建一个和模块名一样的目录,把install/templates目录下的模板文件拷贝一份进来。

前台的逻辑处理文件直接在模块根目录下新建即可。

phpcms开发新模块――注意事项
config.inc.php中的$module、目录名、modules.sql中的字段module三个值必需一样.模块的安装的处理代码,可以参考hpcms/modules/admin/module.php和phpcms/modules/admin/classes/module_api.class.php这两个文件如有不明之处,可以到原网页进行留言,作者会第一时间进行解答

  

爱华网本文地址 » http://www.aihuau.com/a/8104530103/295440.html

更多阅读

西门子GPRS模块开发详解 西门子200plc指令详解

以模块MC55为例,MC55是SIEMENS(西门子)公司推出的GSM/GPRS三频模块,主要为语音传输、短消息和GPRS数据业务提供无线接口。MC55集成了完整的RF射频电路和GSM的基带处理器,十分适合开发一些基于GSM/GPRS的无线应用产品,如监控、调度、车载

中国人保新产品开发的思考 中国人保车险

康 国 君(2000年8月)在知识经济时代的今天,知识和知识创新的作用超过了土地、资本和劳动,成为最重要的生产要素。对企业而言,一切识应用于生产领域之中的最简捷和最有效的途径就是产品创新,就是建立一个有效的开发机制,为企业新产品的开发

声明:《phpcmsv9开发新模块 phpcms开发新模块》为网友挽弦暮笙分享!如侵犯到您的合法权益请联系我们删除