Discuz二次开发-入口文件、控制器、模型、模板文件的建立

发布时间:2017-09-17 编辑:小张个人博客 查看次数:3475

Discuz二次开发涉及到入口php文件、控制php文件、模板html文件的最基本内容。最终仅显示模板文件的内容。

Discuz入口文件建立

1、定义常量

define('APPTYPEID',5);
define('CURSCRIPT', 'xs');

2、引入核心类文件并且初始化

require './source/class/class_core.php';
$discuz = C::app();
$discuz->init();

3、引入第三方库,模块分发逻辑处理

$modarray = array('index', 'my');
$mod = !in_array($_G['mod'], $modarray) ? 'index' : $_G['mod'];
define('CURMODULE', $mod);

4、设置全局变量

$_G['disabledwidthauto'] = 0;

5、根据Mod参数分发到对应模块

require DISCUZ_ROOT.'./source/module/xs/xs_'.$mod.'.php';

Discuz控制器文件建立

1、在source/module下创建入口文件命名的目录

2、新建以入口文件_为前缀的php文件

3、定义安全常量

if(!defined('IN_DISCUZ')) {
  exit('Access Denied');
}

4、用if()elseif()语句区分action参数,编写业务逻辑

if(empty($_GET['action'])){
 $_['action'] = 'index';
}
if($_GET['action'] == 'index'){
 echo "这是首页!";
}elseif($_GET['action'] == 'update')){
echo "更新数据";
}

Discuz模板文件建立

1、在自定义风格目录下创建自定义目录

2、新建htm模板文件

3、在控制器中使用include template('目录/文件名')引入模板

if($_GET['action'] == 'index'){
  include template('xs/xs_index');
}

Discuz模板文件中引入头部和尾部

 <!--{template common/header}-->   引入头部
 <!--{template common/footer}-->   引入尾部

Discuz模型文件建立

1、在source/class/table下建立以tabel_为前缀的php文件

2、构造模型类

if(!defined('IN_DISCUZ')) {
exit('Access Denied');
}
class table_user extends discuz_table{
public function __construct() {

	$this->_table = 'user';  // 表名
	$this->_pk    = 'uid';   // 主键名

	parent::__construct();
}    
}

3、编写查询方法

public function count_by_uid($uid) {
	return DB::result_first('SELECT COUNT(*) FROM %t WHERE uid=%d AND sort=1', array($this->_table, $uid));
}

4、在控制器中用C::t(文件名)来实例化模型类,->执行方法

$user_info = C::t('user')->count_by_uid(1);


出处:小张个人博客

网址:http://blog.023xs.cn/

您的支持是对博主最大的鼓励,感谢您的认真阅读。欢迎转载,但请保留该声明。

顶部

Copyright © 小张个人博客 All Rights Reserved 渝ICP备15006773号-1

联系方式:[email protected] | 本站文章仅供学习和参考

渝公网安备 50024102500267号