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 是前台浏览调用的类文件了解了目录结构,现在我们就着手开发模块了


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

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



9、新建表和模型类文件还是打开install目录,新建个model.php文件.写上以下代码define颊俄岿髭d('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(); }}

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

11、配置卸载文件在uninstall目录新建extention.inc.php和model文件,和install中的model文件一样,模块新建了多少个表,就得在这个文件的返回数组中写入多少个值,并且在uninstall目录中新建对应表名的drop表的sql文件。如果模块向其它表中插入的数据,就在extention.inc.php文件中写删除方法。
12、创建模块前台文件如果模块也为前台服务,必然要使用到模板,因此,我们就得在模块的install目录下新建个templates目录,把前台所需要的模板,全部放在这个目录。模块安装时,系统会自动在网站根目录下的templdates目录中,新建一个和模块名一样的目录,把install/templates目录下的模板文件拷贝一份进来。前台的逻辑处理文件直接在模块根目录下新建即可。