## 2020年08月20日
## 修复存储数据单引号`'`问题
1、打开文件:
```
\Chuanhai\Class\Db.class.php
```
2、大约在292行:找到`foreach($data as $key=>$v){`在后面新起一行,加入以下代码:
```
$v = str_replace("'",'"',$v);
```
## 修改后台信息列表分页数字过长问题:
![](https://img.kancloud.cn/e2/c7/e2c78872e5b887520e45cb4d91ced4e6_1257x96.png)
由于分页调用了构造函数:quickPage(),而它又调用了getPageHtml(),所以修改为:
1.在 Chuanhai/Class/Page.class.php下找到“setPageHtml”方法,改为以下代码:
```
/*
* 设置分页html
*/
private function setPageHtml(){
//总页码
$this->countPage;
//当前页码
$this->page;
//生成页码url
$this->getPageUrl(1);
//设置模板渲染的分页Html
$this->pageHtml;
//一行显示多少个页码
$line\_num = 10;
$i\_start = 1;
$i\_end = $this->countPage;
//组建分页html
$this->pageHtml = '';
if($this->page > $line\_num/2 && $this->countPage>$line\_num){
$this->pageHtml .= 'getPageUrl(1).'">1...';
$i\_start = $this->page - floor($line\_num/2);
if($this->page countPage - floor($line\_num/2)){
$i\_end = $this->page + floor($line\_num/2) -1;
}
if($i\_end - $i\_start +1 != $line\_num){
$cNumber = floor($line\_num/2) - ($this->countPage - $this->page +1);
$i\_start = $i\_start - $cNumber;
}
}else if($this->countPage > $line\_num){
$i\_end = $line\_num;
}
//上一页
$this->pageHtml .= ($this->page>1)?'getPageUrl($this->page-1).'">':'';
//$i\_end = ($this->pagecountPage-$line\_num))?$this->page+($line\_num/2):$this->page;
//$i\_start = ($this->page>$line\_num)?$this->page-($line\_num/2):$this->page;
//循环页码
for($i=$i\_start;$i<=$i\_end;$i++){
$this->pageHtml .= ($i!=$this->page)?'getPageUrl($i).'">'.$i.'':''.$i.'';
}
//下一页
$this->pageHtml .= ($this->pagecountPage)?'getPageUrl($this->page+1).'">>>':'';
//尾页
if($this->page!=$this->countPage && $i\_end countPage){
$this->pageHtml .= 'getPageUrl($this->countPage).'">...'.$this->countPage.'';
}
$this->pageHtml .= '';
}
```
2.app/index/webpage/index/controller/Info Controller.class.php
替换栏目页方法:
```
//栏目页
public function column(){
//初始化data
$this->data = array(
'id' => I('id',0,'intval'),
);
//验证
if(!$this->data['id']) $this->ajaxReturn(array('status'=>1,'message'=>'id error'));
//查询栏目
$columnResult = M('info_column')
->alias('a')
->field('*')
->where('a.id='.$this->data['id'])
->join('__INFO_COLUMN_A__ as b on b.mainId=a.id')
->find();
//没有数据
if(!$columnResult) $this->ajaxReturn(array('status'=>1,'message'=>'id error'));
//合并数据
$this->data = array_merge($this->data,$columnResult);
//栏目url
$this->data['url'] = staticUrl('info','column',array('id'=>$this->data['id']));
//栏目位置
$columnPosition = recursionGetColumnPosition($this->allColumn,$this->data['id']);
//顶级栏目id
$this->data['topId'] = (isset($columnPosition[0]['id']))?$columnPosition[0]['id']:0;
//循环处理
foreach($columnPosition as $key=>$v){
//添加到位置
$this->position[] = array(
'id' => $v['id'],
'name' => $v['name'],
'url' => staticUrl('info','column',array('id'=>$v['id'])),
);
}
//如果栏目类型是单篇
$this->data['info'] = array();
if($this->data['type']==1){
//查询信息
$infoResult = M('info_info')
->alias('a')
->where('a.columnId='.$this->data['id'])
->join('__INFO_INFO_A__ as b on b.mainId=a.id')
->join('__INFO_INFO_B__ as c on c.mainId=a.id')
->order('a.sort asc,a.addTime desc,a.id desc')
->find();
$this->data['info'] = $infoResult;
//信息url
$this->data['info']['url'] = staticUrl('info','content',array('id'=>$this->data['info']['id']));
//栏目jumpUrl
if($this->data['info']['jumpUrl']){
$this->data['jumpUrl'] = $this->data['info']['jumpUrl'];
}
}
//所有下级栏目
$allChildrenColumnResult = levelRecursion($this->allColumn,'',$this->data['id']);
//统计下级栏目数量
$childrenColumnCount = M('info_column')
->alias('a')
->where('parentId='.$this->data['id'])
->join('__INFO_COLUMN_A__ as b on b.mainId=a.id')
->count();
//获取下级栏目的上级id
$getParentId = ($childrenColumnCount)?$this->data['id']:$this->data['parentId'];
//下级栏目
$childrenColumnResult = M('info_column')
->alias('a')
->field('*')
->where('a.parentId='.$getParentId)
->join('__INFO_COLUMN_A__ as b on b.mainId=a.id')
->order('sort asc,id asc')
->select();
$this->data['childrenColumn'] = $childrenColumnResult;
//循环处理
foreach($this->data['childrenColumn'] as $key=>$v){
//生成url
$v['url'] = staticUrl('info','column',array('id'=>$v['id']));
//更新数据
$this->data['childrenColumn'][$key] = $v;
}
//快捷分页数据
$quickPageArr = array(
'table' => 'info_info',
'alias' => 'a',
'field' => 'a.*,b.*,c.*',
'where' => 'a.toStatus=1 && e.type=0',
'join' => array(
'__INFO_INFO_A__ as b on b.mainId=a.id',
'__INFO_INFO_B__ as c on c.mainId=a.id',
'__INFO_COLUMN__ as d on d.id=a.columnId',
'__INFO_COLUMN_A__ as e on e.mainId=a.columnId',
),
'order' => 'a.sort asc,a.addTime desc,a.id desc',
'pageNum' => $this->data['pageNum'],
'setUrl' => $this->data['url'],
);
//加入栏目id条件
$quickPageArr['where'] .= ' && (a.columnId='.$this->data['id'];
foreach($allChildrenColumnResult as $key=>$v){
$quickPageArr['where'] .= ' || a.columnId='.$v['id'];
}
$quickPageArr['where'] .= ')';
//快捷分页
$this->data = array_merge($this->data,$this->quickPage($quickPageArr));
//循环处理
foreach($this->data['list'] as $key=>$v){
//生成信息url
$v["url"] = staticUrl("info","content",array("id"=>$v["id"]));
//更新数据
$this->data['list'][$key] = $v;
}
//数据分配
$this->info = $this->data['info'];
$this->column = $this->data;
$this->list = $this->data['list'];
$this->page = $this->data['page'];
$this->childrenColumn = $this->data['childrenColumn'];
//注销数据
unset($this->column['info']);
unset($this->column['list']);
unset($this->column['page']);
unset($this->column['childrenColumn']);
//设置seo数据
$this->set['pageTitle'] = ($this->column['pageTitle'])?$this->column['pageTitle']:$this->column['name'].' - '.$this->set['name'];
$this->set['pageKeyword'] = ($this->column['pageKeyword'])?$this->column['pageKeyword']:$this->set['name'];
$this->set['pageDescription'] = $this->column['pageDescription'];
/*
dump($this->info);
dump($this->column);
dump($this->list);
dump($this->position);
dump($this->childrenColumn);
exit();*/
//跳转url处理
$this->jump($this->column['jumpUrl']);
$this->display($this->data['listTemplate']);
}
```
- 序言
- 安装系统
- 更新日志
- 更新操作
- 1.0版本更新
- 2020年07月13日
- 2020年07月15日
- 2020年07月17日
- 2020年08月20日
- 2.0版本更新
- 1.0升级2.0方法
- 3.0版本更新
- 2.0升级3.0方法
- 3.0新增功能介绍
- 系统目录说明
- 模板命名规范
- 前端开发规范
- 开启调试模式
- 公共模板文件
- 移动端模板
- 应用使用说明文档
- PC门户文档
- 模板标签
- 语法说明
- css/js(资源文件导入)
- include(模板引入/分离)
- seo(百度优化)
- position(当前位置)
- on(选中导航/栏目)
- info(信息标签)
- column(栏目标签)
- image(循环图片)
- searchType(搜索类型)
- if(判断)
- foreach(循环、信息列表带分页)
- 模板变量
- var(公共变量)
- $set(读取设置)
- $position(当前位置)
- $column(栏目数据)
- $info(信息数据)
- $contentNav(内容导航)
- $childrenColumn(下级栏目)
- $search(搜索信息数据)
- $relevantSearch(相关搜索)
- $page(分页码)
- 变量函数
- 函数说明
- deTitleImage(解析图片)
- date(格式化时间)
- deHtml(解析编辑器内容)
- intercept(截取字符串)
- 搜索提交
- 信息搜索提交
- 在线留言文档
- 在线留言提交
- 问卷调查文档
- surveytable(调查表列表标签)
- survey(调查表标签)
- 问卷调查提交
- 应用文件说明
- 招聘中心
- 满意度调查文档
- 满意度调查提交
- 预约挂号(非实时版)文档
- 预约挂号提交
- 预约挂号2.0
- 投票活动
- votelist(投票活动列表标签)
- voteone(对应的投票活动内容标签)
- bevotelist(投票目标列表标签)
- 文件说明
- 自定义表单
- 云打印文档
- 查询打印机列表
- 添加打印
- 查询打印状态
- 上传打印文件
- 后端开发文档
- 开发须知
- 目录结构说明
- 开发架构说明
- 平台型系统文档
- 肺炎自诊系统文档
- 序言
- 发起咨询
- 获取统计
- 获取总统计
- 前端部署说明
- 模板标签
- 服务器信息
- 更新日志
- 运维文档
- onethink运维文档
- 清除缓存修改
- onethink模板标签
- 登录逻辑修改
- 跨站脚本攻击
- 错误页修改
- HDCMS运维文档
- 跨站脚本攻击(xss)
- 登录逻辑修改
- 调试模式修改
- 清除缓存bug
- 管理后台异常
- 报错信息修改
- 模板标签列表
- __TEMPLATE__常量修改
- 后台登录提示验证码错误
- EmpireCMS维护
- 忘记密码
- Thinkphp6笔记
- 前端笔记
- aspCMS运维
- aspCMS笔记
- 应用市场
- 应用市场接口
- 安装程序接口
- 火车采集器
- 系统下载
- Web在线发布模块下载
- 采集规则下载
- 应用自动模式
- 系统部署工具
- 系统文件同步助手
- 系统文件排错助手
- 权限管理文档
- 应用安装