phpcms V9 二次开发
目录结构图如下:
在phpcms的具体的modules目录下就是,具体的项目模块了。
classes 为模块类库包
functions 为模块函数库包
templates 为模板包,这里通常放置含有权限控制的控制器模板,也就是后台模板。
前台模板放在phpcms/templates/default目录下
模板目录与控制器名称一致(或者自行考虑).
模块控制器类,放在模块目录下。命名的时候一般加上my开头,以此来表示这是二次开发所加入。
关于模块控制器类的创建:
两种类型:
一种:前台浏览 (不含权限控制)
二种:后台浏览 (含权限控制)
第一种控制器类的创建:
1.在模块目录下创建mytest.php文件
写入:
<?php
defined('IN_PHPCMS') or exit('No permission resource.');
class mytest{
function __construct() {
}
public function init() {
$myvar = 'hello world!';
echo $myvar;
}
public function mylist() {
$myvar = 'hello world!this is a example';
echo $myvar;
}
}
?>
关于路径访问:
使用你的项目域名:
例如:www.cms.com/index.php?m=test&c=mytest&a=mylist
m 代表的是module模块
c 代表的是controller控制器
a 代表的是具体控制器下的action 方法
第二种带有权限控制的控制器的创建:
1.创建文件:mytest_admin.php
<?php
defined('IN_PHPCMS') or exit('No permission resources.');
pc_base::load_app_class('admin','admin',0);
class mytest_admin extends admin {
private $db;
public function __construct() {
}
public function init() {
$myvar = 'hi , this is my world!';
echo $myvar;
}
}
?>
关于模板文件的引用(加载):
在你的控制器具体的方法中使用:
include、require、include_once、require_once
栗子如下:
include template('test','mytest','default');
关于数据库的相关的配置:
phpcms的相关配置在:
caches/configs目录下
数据库的配置文件在caches/configs/database.php
配置形式:数组形式。
栗子:
<?php
return array (
'default' => array (
'hostname' => 'localhost',
'port' => 3306,
'database' => 'phpcmsv9',
'username' => 'root',
'password' => 'root',
'tablepre' => 'v9_',
'charset' => 'utf8',
'type' => 'mysqli',
'debug' => true,
'pconnect' => 0,
'autoconnect' => 0
),
?>
如果想用其他的配置,可以在数据中在加入一个配置的索引
<?php
return array (
'default' => array (
'hostname' => 'localhost',
'port' => 3306,
'database' => 'phpcmsv9',
'username' => 'root',
'password' => 'root',
'tablepre' => 'v9_',
'charset' => 'utf8',
'type' => 'mysqli',
'debug' => true,
'pconnect' => 0,
'autoconnect' => 0
),
'mytest' => array (
'hostname' => 'localhost',
'port' => 3306,
'database' => 'demo',
'username' => 'root',
'password' => 'root',
'tablepre' => '',
'charset' => 'utf8',
'type' => 'mysqli',
'debug' => true,
'pconnect' => 0,
'autoconnect' => 0
),
);
?>
然后在控制器中使用数据时候,可以指定需要什么样的数据库配置参数。
关于在控制器中使用数据curd:
数据库模型放在:phpcms/model目录下面
数据模型的名称可以这样:数据表名称 + _model.class.php
例如要使用一个'test'数据库,就先需要创建一个test_model.class.php数据库模型文件.
<?php
defined('IN_PHPCMS') or exit('No permission resource.');
pc_base::load_sys_class('model','',0);
class user_model extends model{
public function __construct() {
$this->db_config = pc_base::load_config('database');
$this->db_setting = 'mytest';
$this->table_name = 'user';
parent::__construct();
}
}
?>
数据库模型类名与文件名一致
$this->db_setting = '具体的数据库参数配置,可以使用默认配置default 或者自定义';
$this->table_name = '数据表名';
在控制器中的链接方式:
<?php
defined('IN_PHPCMS') or exit('No permission resources.');
pc_base::load_app_class('admin','admin',0);
class mytest_admin extends admin {
private $db;
public function showList() {
$this->db = pc_base::load_model('user_model');
$data = $this->db->select();
print_r($data);
}
}
?>