在Drupal 7。我正在开发的x项目,我正在使用域访问模块。不知何故,当我试图访问设置选项卡(admin/structure/domain/Settings)时,我得到一个WSOD。
错误日志:[Wed May 07 11:20:08 2014] [error] [client 127.0.0.1] PHP致命错误:调用未定义函数object_log()在/var/www/mydrupalproject/sites/all/modules/custom/domain_bonus/domain_bonus_login_restrict/domain_bonus_login_restrict。模块在第55行,参考:http://MYDRUPALPROJECT/z/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模块的副本,只是做了一些简单的修改,不涉及问题行。
有人知道这是什么原因吗?我是否需要分享其他相关信息来帮助您理解这一点?
谢谢!
解决!
问题是贡献模块Domain Bonus: Login Restrict带有以下代码行:object_log('form_id '。时间(),美元form_id);
object_log('form_state ')。时间(),美元form_state);
object_log('form '。时间(),美元形式);
这些行用于调试,可能在模块开发期间。
object_log()函数是对象日志模块中的一个函数,可用于调试,更具体地说,用于检查代码中特定部分的变量值。
由于在模块.info文件中没有定义Domain Bonus: Login Restrict模块依赖于Object Log模块,Object Log模块甚至没有安装在我们的项目中…在这种情况下,当读取这一行时,Drupal会崩溃。
所以,这个功能要工作需要安装Object Log模块,这个模块需要Devel模块才能工作。或者只是注释或删除这些行。
欢呼。