php数据库管理模板 php数据管理系统( 二 )


【php数据库管理模板 php数据管理系统】 4class mytest_admin extends admin
5{
6public function __construct() {}
7public function init()
8{
9$myvar = 'oh,i am phpcmser';
10echo $myvar;
11}
12}
13 ?
在控制器中增加模板调用
phpcms 可以实现完全的模板与程序分离,所以在我们的控制器程序中要加载模板,才可以更友好的显示出来 。
1.加载前台模板
前台模板文件在phpcms\templates\default\模块名称的目录中,本示例也就在phpcms\templates\default\test中 。
加载模板方法如下:
1 // 加载模板方法:
2 include template('test', 'mytest', 'default');
其中,test为模块名称,mytest为模板目录下模板名称,default为风格名称,默认为default 。
在上面例子中如果要给mytest.php中init方法加载一个mytest的模板(可以拷贝content模块下的index.html作为替代),如下(所以模板名称为index):
1 public function init()
2 {
3$myvar = 'hello world!';
4echo $myvar;
5include template('test', 'index');
6 }
这时,当我们再通过URL访问该方法的时候也就加载了对应的模板 。
2.加载后台模板
后台模板文件在phpcms\modules\模块名称\templates 目录中,本示例也就在phpcms\modules\test\templates中
加载模板方法如下:
// 加载模板方法:
include $this-admin_tpl('mytest_admin_list');
其中mytest_admin_list为phpcms\modules\test\templates中mytest_admin_list.tpl.php 。
注意:此处模板必须以.tpl.php 作为后缀
在上面例子中如果要给mytest_admin.php中init方法加载一个mytest_admin_list的模板,如下:
1 public function init()
2 {
3$myvar = 'oh,i am phpcmser';
4echo $myvar;
5include $this-admin_tpl('mytest_admin_list');
6 }
加载模板部分内容也可以参见系统框架源码content模块 phpcms\modules\content content.php文件的实现 。
【3】创建数据库模型类
至此,已经明确,各模块的数据库模型位于:phpcms/model/ 目录下 。
数据模型文件的命名规则建议为:数据表名称 + '_model.class.php'
如果在我们的创建的模块中我要使用一个数据库“test”,首先需要建立一个数据库模型文件,文件名称为'test_model.class.php'
内容如下:
1 ?php
2 defined('IN_PHPCMS') or exit('No permission resources.');
3 pc_base::load_sys_class('model', '', 0);
4 class test_model extends model
5 {
6public function __construct()
7{
8$this-db_config = pc_base::load_config('database');
9$this-db_setting = 'default';
10$this-table_name = 'test';
11parent::__construct();
12}
13}
14 ?
书写数据库模型类注意一下几点:
1. 数据库模型类名称必须与文件名称相同 。
2. 必须继承与数据库模型基类model 。
3. $this-db_setting = 'default'为数据库配置文件中配置数据库链接池名称,默认为default , 一般情况下不需要修改 。
4. $this-table_name = 'test'为数据表名称 。
这样我们就建立好一个数据库模型类 。那么,怎么使用呢?
在模块的控制器中使用(加载方式):
$this-db = pc_base::load_model('test_model');
具体如下:
1 ?php
2defined('IN_PHPCMS') or exit('No permission resources.');
3class mytest
4{
5private $db;
6function __construct()
7{
8$this-db = pc_base::load_model('test_model'); // 加载数据库模型
9}
10public function init()
11{
12$myvar = 'hello world!';
13echo $myvar;
14include template('test', 'index');
15$result = $this-db-select(); // 调用select方法

推荐阅读