常见问题汇总:升级问题

验证码发送机制升级说明

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程序属于开发版,开发版程序不能接入插件市场

image.png


开发版升级到正式版方法:

1、前往官方下载CMS升级包

https://www.xunruicms.com/member.html?app=vip&c=home&m=index

image.png

2、将升级包中的dayrui/My目录覆盖到网站上即可

image.png


后台字段回调格式无效

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])}


注册界面增加姓名的升级方法

新版增加了注册字段可使用姓名作为字段

image


那么注册界面表单内需要加上姓名字段的输入框

{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、点不动链接,底部黑边

{xunruicms_img_title}

用户组支持在线付款的升级

新版中支持在用户组中进行在线直接付款升级组

image


老版本的模板中只支持余额付款,那么升级步骤是

1、相关文件

template/pc和mobile/default/member/apply_index.html
template/pc和mobile/default/member/apply_level.html

2、下载全新安装包中,找到这两个文件,分别覆盖到网站中


-------------

如果网站使用的自己的界面,需要改动部分有:

1、增加支付信息:

{if $group['unit']}

     付款方式 
    
        账户可用余额:{$member.score}{SITE_SCORE}
    
{else}      付款方式                            {loop $pay_type $name $t}               {$t['icon']} {$t['name']} {if $name == 'finecms'}({$member.money}元){/if}             {/loop}                            {/if}


2、付款按钮的改变,取消ajax_submit函数的第四个参数

 提交申请 


快捷登录注册页面升级

当后台设置过以下选择项时,需单独对注册页面进行升级

image


需要升级的模板为:

template/pc/default/member/login_oauth.html
template/mobile/default/member/login_oauth.html


升级数据库编码

新版本支持表情符号的存储,但是最低的MySQL版本要求在5.6及以上!

老版本升级时,还需要手动将数据库编码从Utf8升级为Utf8mb4格式


升级编码操作步骤

1、使用phpmyadmin工具,选择当前的数据库

2、然后一下图的选项,点执行

Illegal mix of collations (utf8mb4_unicode_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operatio

这样就把格式批量转换了。


-----------------------------------阿里云虚拟主机设置方法-------------------------------

NLN[0%(USHEEVUEV}B`RLSX

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


程序兼容检测:安装某些应用插件

在升级时显示需要手动安装某些插件时,表示此版本已经将系统的这些内置功能独立成为了插件,如果站长需要用到这些功能时,需要手动安装以下插件:

{xunruicms_img_title}


----注意:安装之前需要备份整站的数据库,以防止数据丢失的情况。


----------安装插件-----------

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标签即可

image

4.5.3手动升级用户系统插件

前往官网演示站后台,进入应用市场,登录你自己的账号离线下载

http://demo4.xunruicms.com/admin.php

image

离线下载用户系统插件

image


将文件包的dayrui覆盖到网站目录中即可

image

升级没成功/升级出现故障/怎么办

升级之前,一定要:

备份文件、备份数据库 

备份文件、备份数据库 

备份文件、备份数据库


升级前不备份的后果很严重,万一遇到系统故障就无法恢复了

所以,升级之前一定要备份文件,以免出现故障而无法进行恢复!


--------------------------------------------------------------------------------------------------------------------------------------------------------------------

当升级后遇到故障时,说明升级失败了,可能的因素有很多,比如:

在线升级网络传输文件遗漏、文件覆盖失败等等。


解决方案:

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;
后台列表页面没有数据