phpcms二次开发流程
1.创建数据库和数据库表
2.创建模块目录
首先要在phpcms/modules目录下创建文件夹,如建一个test文件夹。test里面可以建classes文件夹,来做模块类库包,functions文件夹来做模块函数库包,templates文件夹,来放后台模板文件(html页面),在建一个index.php,来作为前台控制器,建test.php,来作为后台控制器 test.php例子:
/*
http://localhost/admin.php?m=test&c=index&a=init
m表示的是所建的模块文件夹,index是前台控制器index.php,init是控制器index.php中的init方法,不写a默认就是找init
*/
<?php
defined('IN_PHPCMS') or exit('No permission resources.');
class test {
function __construct() {
}
public function init() { // 默认会找这个方法
$var = 'hello world!';
echo $myvar;
}
public function mylist() {
$var = 'hello world!this is a example!';
echo $myvar;
}
}
?>
要在数据库中的mouble表中添加这个模块的数据,模块管理中就有这个模块的安装,然后在扩展的菜单管理中添加这个模块
创建数据库模型类在phpcms/model/目录下,例如:test_model.class.php
<?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();
}
}
?>
3.开发模块控制器
4.开发模块类与模块函数(如无可略过)
5.创建模板文件(如前台显示可略过)
6.运行和调试
常用操作列表
1 调用数据库模型
$this->db = pc_base::load_model("test_model");
2 加载系统类
$http = pc_base::load_sys_class('http');//实例化http类
pc_base::load_sys_class('form','',0);//调用form类,不进行实例化操作,加载系统函数
3 加载系统函数库
pc_base::load_sys_func('mail');调用mail函数包
4 加载模块类
$test = pc_base::load_sys_class(‘classname‘,’test’); //实例化test模块下 classname类
5 加载模块函数库
pc_base::load_sys_func(‘global‘,’test’); //调用test模块的global函数包
6 加载前台模板
include template('test','mytest','default');
7 加载后台模板
include $this->admin_tpl("mytest_admin_list");
8 权限控制
后台控制器需要加载admin模块下的admin类,并继承该类
<?php
defined('IN_PHPCMS') or exit('No permission resources');
pc_base::load_app_class('admin','admin',0);
class mytest_admin extends admin{
//这个控制器需要登录后台才可以访问
}
?>