最近一直在用kesion CMS作为学校的核心,进行校园数字化平台二次开发,整个程序应该相当不错,模块化,模板化和安全行都还可以,前期首先把自带的CKEDITOR替换掉了,换车了商业版的ewebeditor 使得内容的编辑变动更加简洁和高效,直接word excel ppt 支持。这两天在把原来的一些后勤管理系统 比如设备报修 物品领用等进行移植在一起,利用的是它自带的自定义表单功能,在操作的时候,其他一起都正常,发现两个问题,一个是当自定义字段为html编辑框模式的时候,如果前台不启用,只作为管理用的,那在管理自定义表单的时候,就会提示错误:
Microsoft VBScript 运行时错误错误 '800a000d'类型不匹配: 'Server.HTMLEncode' /Admin/KS.Form.asp,行 1439
原来代码为:
-
Case 10
Response.Write "<textarea id=""" & SQL(1,ii) &""" name=""" & SQL(1,ii) &""">"& Server.HTMLEncode(trim(FieldValue)) &"</textarea>"
问题就出在 FieldValue这个时候是NULL,导致程序错误,解决方案如下
-
IF not isNUll(FieldValue) Then Response.Write "<textarea id=""" & SQL(1,ii) &""" name=""" & SQL(1,ii) &""">"& Server.HTMLEncode(Trim(FieldValue)) &"</textarea>" Else Response.Write "<textarea id=""" & SQL(1,ii) &""" name=""" & SQL(1,ii) &"""></textarea>"
end if
第二个问题就是当自定义表单设定默认值的时候,如果后台为不启用的状态,那前台提交数据,该字段也为null,而没有获取默认值,解决方案如下:
修改plus/form.asp 程序 找到301行出 增加一下代码
(这个地方只能上传图片,因为论坛过滤的相关内容)
然后就可以了,程序就会自动把有默认值,而前台没有开启的字段赋值了。
官方暂时还没有具体的解决方案,需要的朋友可以先用