解决Discuz! X系列安装风格模板出现“数据类型错误,请返回”的问题

又开始折腾 Discuz! 了,这次是X3。DIY了一套模板,准备导入风格安装,但安装的时候提示如下错误:

到论坛搜了下解决方法,MS这问题都没怎么解决掉,这里给出我的解决方法,很简单,只是DZ没说出来而已。

原理:打开导入风格模板的代码文件:/source/function/function_importdata.php,查看其中的函数 import_styles(),其中两处调用getimportdata的参数都是固定的getimportdata('Discuz! Style'),在/source/function/function_admincp.php中找到getimportdata函数发现他会将第一个参数也就是'Discuz! Style',与模板目录下xml文件中id为Title的item值进行比较,如果不同就会提示错误“数据类型错误,请返回”,知道原理了,下面就有解决方案了。

操作:打开模板目录下的 XML 文件,找到ID为Title的item项,将其固定为如下写法就OK了。

<item id="Title"><![CDATA[Discuz! Style]]></item>

另有版主提供的解决方法(未测试):

查找 php.ini 里的如下项并将其设置为off,然后重启 Web 服务 (IIS或Apache)

zend.ze1_compatibility_mode = Off

这是由于开启了这一项之后,会造成 xml 解析错误而导致出错。