常见问题汇总:升级问题
验证码发送机制升级说明
cms v4.3.3起,为了有效的防止恶意发送短信,对发送手机验证码时,首先需要进行图片验证码验证,
涉及升级的页面有:login.html register.html find.html 开发者可以对照默认模板来写,自己开发过的自定义页面需要开发者手动修改
因此需要加上图片验证码表单框,默认代码如下:
{dr_code(120, 35)}
其中输入框的name=code id=dr_code不能变更
那么发送验证码时需要对url变量进行增加参数:
onclick="dr_ajax_url('*********='+$('#dr_phone').val()+'&code='+$('#dr_code').val())"
ajaxurl在原有的基础上加上code参数值
测试版升级到正式版
正式版是面向正式环境的建站程序的,各项功能比较稳定,能够满足日常使用需求,更加着重系统稳定性;
开发版是面向开发者用户的,相对正式版版而言,开发版着重于功能尝鲜和快速更迭,也就是说一些新功能会较先一步登录;
在https://gitee.com/dayrui/xunruicms下载的宸逸CMS程序属于开发版,开发版程序不能接入插件市场
开发版升级到正式版方法:
1、前往官方下载CMS升级包
https://www.xunruicms.com/member.html?app=vip&c=home&m=index
2、将升级包中的dayrui/My目录覆盖到网站上即可
后台字段回调格式无效
v4.3.5正式版中:增加后台列表的字段回调格式函数:联动菜单名称、单选字段名称、下拉字段名称、复选框名称
当你使用过自定义后台模板(已复制的方式),那么可能会导致:使用后仍然显示数据库的原始内容的话,也就是无效的情况下
解决方案:
方案1、使用最新版dayrui/core/views/***.html中的模板覆盖到你自己自定义的模板中
方案2、改变标签
原标签写法是:
{dr_list_function($tt.func, $t[$i], $param, $t)}
升级后改变为:
{dr_list_function($tt.func, $t[$i], $param, $t, $field[$i])}
注册界面增加姓名的升级方法
新版增加了注册字段可使用姓名作为字段
那么注册界面表单内需要加上姓名字段的输入框
{if in_array('name', $register.field)}{/if}
前端/会员中心样式升级
升级包中是不包含前端模板和用户中心的样式文件的,如果网站采用了官方原版的前端样式或者用户中心界面时,升级方式是:
一、前端模板
1、下载全新的安装包
2、把安装包中的/static/default/web/复制到你的网站上
3、把安装包中的/template/pc或mobile/default/home/中的模板复制到你的网站上
二、用户中心模板
1、下载全新的安装包
2、把安装包中的/static/default/member/复制到你的网站上
3、把安装包中的/template/pc或mobile/default/member/中的模板复制到你的网站上
常见问题
1、菜单链接无法点击
2、点不动链接,底部黑边
用户组支持在线付款的升级
新版中支持在用户组中进行在线直接付款升级组
老版本的模板中只支持余额付款,那么升级步骤是
1、相关文件
template/pc和mobile/default/member/apply_index.html template/pc和mobile/default/member/apply_level.html
2、下载全新安装包中,找到这两个文件,分别覆盖到网站中
-------------
如果网站使用的自己的界面,需要改动部分有:
1、增加支付信息:
{if $group['unit']}{else}账户可用余额:{$member.score}{SITE_SCORE}{/if}{loop $pay_type $name $t} {/loop}
2、付款按钮的改变,取消ajax_submit函数的第四个参数
快捷登录注册页面升级
当后台设置过以下选择项时,需单独对注册页面进行升级
需要升级的模板为:
template/pc/default/member/login_oauth.html template/mobile/default/member/login_oauth.html
升级数据库编码
新版本支持表情符号的存储,但是最低的MySQL版本要求在5.6及以上!
老版本升级时,还需要手动将数据库编码从Utf8升级为Utf8mb4格式
升级编码操作步骤
1、使用phpmyadmin工具,选择当前的数据库
2、然后一下图的选项,点执行
这样就把格式批量转换了。
-----------------------------------阿里云虚拟主机设置方法-------------------------------
content类二次开发升级说明
新版支持PHP8,如果二次开发过php文件,需要按照本教程来对应的升级兼容代码。
二次开发过php文件的情况是指:安装官方文档写的或者新建的php文件、自己写的或者新建的php文件,都属于二次开发范围
在使用老版本的方法时系统会提醒异常:
->save()方法已经失效,请改为->save_content()
Content类(/dayrui/Fcms/Model/Content.php)升级
适用于内容发布使用,火车头采集接口发布,等等,只要是自己写过发布内容的代码都需要改进
找的原有的代码
$rt = $this->content_model->save(0, $value);
以上代码是老版本的写法
改为新方法
$rt = $this->content_model->save_content(0, $value);
就是把save方法改成save_content方法
升级PHP8环境须知
升级PHP8环境需要做以下调整:
1、PHP8会报错:in_array(): Argument #2 ($haystack) must be of type array, null given
模板标签中使用的函数:in_array 改成 dr_in_array
2、PHP8会报错:Undefined constant xxxx
数组标签主键是字符时,需要加单引号,例如:
{$aaa[xxx]}需要改成{$aaa['xxx']}
3、PHP8会报错:count(): Argument #1
模板标签中使用的函数:count
需要改成:dr_count
4、PHP8会报错:strlen(): Argument #1
模板标签中使用的函数:strlen
需要改成:dr_strlen
5、不能登录
https://www.xunruicms.com/doc/1115.html
程序兼容检测:安装某些应用插件
在升级时显示需要手动安装某些插件时,表示此版本已经将系统的这些内置功能独立成为了插件,如果站长需要用到这些功能时,需要手动安装以下插件:
----注意:安装之前需要备份整站的数据库,以防止数据丢失的情况。
----------安装插件-----------
1、安装插件之前,备份好模板目录template,因为会覆盖default模板的文件
2、前往后台应用市场:admin.php?c=cloud&m=app
3、搜索这些插件,然后点离线下载
4、将离线zip包中的template目录和static目录删掉
5、上传到网站根目录,不要动
6、回到系统更新里面,点一次最后一下更新升级脚本,提示其他插件也安装2345的步骤操作,直到成功
当安装插件出现【字段xxx不存在时】,需要刷新整个后台再到系统更新里面,更新第二项,数据表结构更新一次
---------卸载插件方法-------
1、前往应用市场先安装这些插件
2、然后进入应用管理,在本地应用中卸载这些插件
升级4.5.1以上时出现后台无法登陆
升级4.5.1以上时出现后台无法登陆,登陆后又返回到了登录界面,登录无效
这时候需要检查php版本是否在7.3以上,如果低于php7.3,只需要升级到7.3以上即可解决。
最低支持PHP72版本需要手动下载兼容包:
https://www.xunruicms.com/doc/1166.html
分页标签的统计标签样式缺失
-------
当出现分页标签样式缺失时,系统默认pages变量会少了a标签
-------------解决办法---------
打开分页配置文件【/config/page/pc/page.php】做以下改进,加入a标签即可
4.5.3手动升级用户系统插件
升级没成功/升级出现故障/怎么办
升级之前,一定要:
备份文件、备份数据库
备份文件、备份数据库
备份文件、备份数据库
升级前不备份的后果很严重,万一遇到系统故障就无法恢复了
所以,升级之前一定要备份文件,以免出现故障而无法进行恢复!
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
当升级后遇到故障时,说明升级失败了,可能的因素有很多,比如:
在线升级网络传输文件遗漏、文件覆盖失败等等。
解决方案:
1、需要升级前备份,出现故障时,将备份文件恢复,意味着恢复到老版本
2、恢复老版本后,再次离线下载升级包覆盖一次,如果仍然出现故障,只能联系官方售后来处理了。
--------------------------------常见的升级故障----------------------------------------------
Fatal error: Cannot redeclare dr_comment_cname() (previously declared in /www/wwwroot/www.xxx.com/dayrui/Fcms/Core/Helper.php:3874) in /www/wwwroot/www.xxx.com/dayrui/App/Comment/Config/Hooks.php on line 336
解决方案:1手动删除这个hooks.php文件;2然后升级一下评论插件
------------------------------
后台-权限-后台菜单-初始化菜单,如需要界面功能请在应用市场安装界面插件。
------------------------------
Unknown column 'disabled' in 'where clause'
解决方案: 后台,系统更新,点击更新升级脚本,点击更新表结构,即可。
如果进不去后台,就手动访问脚本:/admin.php?c=cache (admin改成你自己的名称)
--------------------------------------------
解决方案:升级 静态生成插件
-------------------------------------------------
解决方案:升级用户系统插件
-------------------------------------------------
解决方案:新建cache/file并赋予777可写入权限
-------------------------------------------------
其他的未知错误可以汇报给官方人员:
https://www.xunruicms.com/qq/js.html
--------------------------------如何升级插件----------------------------------------------
当存在以上错误需要升级插件时,建议手动在应用市场下载离线插件,然后上传到服务器解压,保障文件不丢失。(覆盖文件前需要备份网站的文件)
后台列表页面没有数据
当升级之后发现后台列表页面没有内容,当开启开发者模式后,才会出现内容,关闭开发者模式后没有内容
问题原因:
新版后台为提升加载效率,列表统一改成了ajax请求方式,自己定义的模板列表数据就会失效,需要手动开启控制器的开关
解决方案:
1、找到所在的控制器文件,例如news模块的控制器是
dayrui\App\News\Controllers\Admin\Home.php
2、然后新增以下代码:
$this->is_ajax_list = false; $this->fix_table_list = true;
