在我正在开发的Drupal 7.x项目中,我正在使用Domain Access模块。 不知何故,当我尝试访问“设置”选项卡(admin / structure / domain / settings)时,我得到了一个WSOD。
错误日志:
[Wed May 07 11:20:08 2014] [error] [client 127.0.0.1] PHP致命错误:在/ var / www / MYDRUPALPROJECT / sites / all / modules / custom /中调用未定义的函数object_log()第55行的domain_bonus / domain_bonus_login_restrict / domain_bonus_login_restrict.module,referer:http:// MYDRUPALPROJECT / en / admin / structure / domain
相关文件中的内容:
...
/ **
*实现hook_form_alter()。
* /
function domain_bonus_login_restrict_form_alter(& $ form,& $ form_state,$ form_id){
switch ($form_id) {
.....
// Provide option to enable / disable restriction on domain settings form.
case 'domain_configure_form':
(LINE 55:) object_log('form_id ' . time(), $form_id);
.....
此自定义模块是contrib模块的副本,只有一些简单的修改,不涉及相关的行。
任何人都知道造成这种情况的原因是什么? 我是否应该分享任何其他相关信息以帮助您理解这一点?
谢谢!
答案 0 :(得分:0)
解决!
问题在于,contrib模块Domain Bonus:Login Restrict附带以下代码行:
object_log(' form_id' .time(),$ form_id);
object_log(' form_state' .time(),$ form_state);
object_log(' form' .time(),$ form);
这些行可能用于debbug,可能是在模块开发期间。
object_log()函数是来自对象日志模块的一个函数,可用于debbug,更具体地说是检查代码特定部分中的变量值。
由于在模块.info文件中没有定义Domain Bonus:Login Restrict模块依赖于Object Log模块,因此对象日志模块甚至没有安装在我们的项目中......读取该行时的条件,Drupal崩溃。
因此,要使此功能工作,需要安装对象日志模块,此模块需要Devel模块才能工作。或者只是评论或删除这些行。
干杯。