在《LimeSurvey5.X主题没有高级选项》一文中,我曾经提到过升级之后最困扰我的一个问题,那就是没有添加js文件的高级设置选项了。
随着LimeSurvey3.x版本在2023年年中停止了更新,我被迫升级到了6.x版。不幸的是,这个高级选项还是没能出现在该版本中。不过升级还是值得的,操作上流畅很多也简单很多。
由于启用的几个问卷都采用了echart这个js库,所以在新版本中就不得不面对的问题就是怎么加载这个文件?
控制台返回的信息是html2canvas.min.js文件找不到(这是我在问卷中使用的另外一个js库,为不影响使用,echart库已经安装好了)。
修改主题配置文件
不管你使用的是官方自带的主题还是你已经扩展了某个主题,系统都会在其目录下生成一个config.xml
的文件,默认主题的配置文件位于/limesurvey安装目录/themes/survey/主题名/
下,而扩展的自定义主题则位于/upload/themes/survey/主题名/
下。
通常来说,即便你不会自定义主题(修改代码),还是建议你将某个你喜欢的主题(比如fruity)扩展之后再使用,这样做的好处之一就是一旦你升级系统,upload
是要求备份并保留的,这样就可以省去二次设置的麻烦。
但是在本文中,这似乎是一个特例,因为我们要修改的是默认主题。因为LimeSurvey的继承关系,最终还是要依赖于最原始被继承的主题,也就是vanilla。
打开配置文件/limesurvey安装目录/themes/survey/vanilla/config.xml
后,找到<files>
中的<js>
段,比如上面提到的缺少html2canvas.min.js文件,那就添加<add>scripts/html2canvas.min.js</add>
代码。
如上图所示,修改完成后保存。
上传js文件
这一步比较简单,只需要将js文件上传到/limesurvey安装目录/themes/survey/vanilla/scripts/
目录下即可。
刷新缓存
这是很关键的一步,否则你会发现即便你进行了上述两步,控制台还是会报错。
进入LimeSurvey后台,点击配置
菜单,选择全局(设置)
项,点击常规
选项卡后,再点击清除物品缓存
中的立即清除
按钮(因为翻译的缘故,可能会有所出入)。
重新回到刚刚出错的页面,刷新后,控制台的错误信息消失,至此js文件正常加载。同理,css文件也可以通过这样的方式添加,当然你也可以直接修改custom.css
文件。
总结
回过头来看早前写的《LimeSurvey添加/加载自定义js文件》一文,当时已经提到了上面的方法,只不过少了高级选项加之升级系统之后代码覆盖了默认主题中的内容才会认为无法实现外部js文件的加载问题。现在想想,既然经过上述操作就能实现,高级选项还真是没啥用了。