资料库
http://faq.comsenz.com/library
分页查询数据
$curpage = (int)$_GET['page'] ?? 1;
$perpage = (int)$_GET['num'] ?? 10;
// 控制器
$model = C::t('tool_info');
$num = $model->count();
$tools = $model->list($curpage, $perpage);
$page_html = multi($num, $perpage, $curpage, 'tool.php?mod=index&action=list');
var_dump($tools);
echo $page_html;
// 模型
public function list($page,$perpage=10)
{
$result = DB::fetch_all('SELECT * FROM %t'.' ORDER BY '.DB::order('tool_id','desc').DB::limit(($page-1)*$perpage,$perpage),[$this->_table]);
return $result;
}
注意我们在创建表的时候是有表前缀的,表前缀是多少,这根据你在安装Discuz时指定的表前缀为例。
如果不知道表前缀是多少,可以看下现在数据库中表名前缀是多少就知道了
在模型类中编写查询方法,在控制器中调用模型中的方法即可。
// 实例化模型类
C::t('文件名')
Discuz 中的模型文件放在/source/class/table目录下
模型文件名由”table_表名“组成
编写模型文件类
// 安全验证
if(!defined('IN_DISCUZ')) {
exit('Access Denied');
}
// 表类
class table_common_admincp_cmenu extends discuz_table
{
public function __construct() {
// 表名
$this->_table = 'common_admincp_cmenu';
// 主键名
$this->_pk = 'id';
// 调用父类方法
parent::__construct();
}
}
模板文件的头部文件,和尾部文件需要自己手动引入。
这里举例/template/PHPchina/tool/index.htm文件引入头部、尾部文件
#引入头部文件
<!--{template common/header}-->
<link rel="stylesheet" href="static/css/tool/tools.css" />
......
# 引入尾部文件
<!--{template common/footer}-->
在控制器中引入模板文件
include template('tool/index')引入的模板后缀为.htm, 这个模板放在/template/PHPchina\tool目录下,这里的PHPChina是一个自定义风格的目录。
建立控制器文件。
在source/module目录下建立以入口文件名相同的目录。
在上面建立的目录下建立 “入口文件_mode.php“格式的文件
在上一步文件中定义安全常量
if(!defined('IN_DISCUZ')) {
exit('Access Denied');
}使用if/else 语句来区分action 参数,编写业务代码。
if(!defined('IN_DISCUZ')) {
exit('Access Denied');
}
$action = $_GET['action'] ?? 'index';
if($action == 'index'){
echo '这是工具的首页';
}elseif($action == 'upload'){
echo '这是上传的首页';
}
新建控制器入口文件。
// 定义常量
define('CURSCRIPT',1);
define('APPTYPE',0);
// 引入核心类库
require './source/class/class_core.php';
// 初始化核心类库
$discuz = C::app();
$discuz->init_cron = false;
$discuz->init();
// 引入第三方类库
// 使用的时候再引入
// 逻辑分发处理
$mod = !empty($_GET['mod']) ? $_GET['mod'] : 'index';
if (empty($mod) || !in_array($mod, array('index'))) {
exit('Access Denied');
}
//定义常量
define('CURMODULE',$mod);
// 定义全局常量
$_G['disabledwithauto'] = 1;
// 根据Mod参数分发到对应的模块
require_once libfile('tool/'.$mod, 'module');
Discuz是一个面向过程的PHP框架,建立控制器入口文件,需要的操作也不一样,这些操作简单的记录一下,方便后期回顾。
具体如何建立控制器文件,可以看截图
如果我们要更改系统已经存在的css,可以在模板目录下建立以extend_为前缀的源文件名的CSS文件即可。
我们以添加新的common.css文件举例,如何进行操作,比如提添加一个/template/default/common/common.css文件。
在自己的模板目录下新建一个extend_common.css文件,文件路径为/template/new/common/extend_common.css
在文件中编写a{color:red}
生成的css文件,需要在discuz后台更新css缓存才能生效,在后台切换模板处更新缓存。
扩展的css文件会追加到css缓存文件中,扩展css文件加载顺序是先加载默认的css文件,然后再加载扩展的css文件
Discus 读取模板是有自己的流程的
首先会读取自己定义的目录下的common目录中的文件,如果该目录下的文件不存在,会到default默认目录下的common目录中读取指定的文件
条件判断 if
模板语法1
实现分页2
实现分页1
实现分页。
fetch操作
update操作
delete操作
insert操作
dz数据库其他操作
fetch
Discuz 支持的format
discuz资料库地址
控制器文件建立
控制器文件
在source、module下创建以日寇文件命名的目录。
新建1️⃣入口文件_为前缀的php文件
定义安全常量
用if()elseif()语句区分action参数,编写业务逻辑。
目标
1 利用提供代码实现实践功能
内容
1 源代码:实现上传程序的代码,
2 在头尾加字
3 工具:discuz的官方手册
$替换为jQuery
控制文件建立