You are here

Fatal error: Call to undefined function zpuser_get_user_context() in /data0/htdocs/howard/includes/common.inc(1645)

g089h515r806 的头像
Submitted by g089h515r806 on 星期一, 2010-02-08 14:21

我今天整理zhoupou.cn网站,想为其进一步的瘦身。决定卸载我写的两个模块一个是zpuser,一个是zpcenter,两个模块的作用,就是为OG和个人用户提供一个独立的空间。基本功能类似于现在的context,spaces模块,但是要弱很多。由于已经有了更好的模块可以使用,所以决定卸载我自己写的模块,同时也为网站减少两个模块。

然后就禁用了这两个模块。禁用后,就出现了Fatal error: Call to undefined function zpuser_get_user_context() in /data0/htdocs/howard/includes/common.inc(1645) eval()'d code on line 4。

一时想不起来,哪里出错了,后来才想起来,我在区块中调用了PHP代码,在区块中使用了 zpuser_get_user_context() 。

我检查了一下,这两个模块,发现没有install文件,就抱着试试的想法,直接去修改数据库,在数据库表的system中,我找到了这两个模块的记录,通过phpmyadmin将其状态设置为1,这样当我再次访问http://zhupou.cn的时候,就恢复了正常。

然后检查区块,主导航区块和用户菜单区块都调上下文相关的函数:

导航菜单
<?php
$match = FALSE;
$og_node = og_get_group_context();
$zpuser = zpuser_get_user_context();
if(empty($og_node) && empty($zpuser) ){
$match = TRUE;
}
return $match;
?>

小组菜单
<?php
$match = FALSE;
$og_node = og_get_group_context();
if(!empty($og_node)){
$match = TRUE;
}
return $match;
?>
我把这两段代码去了下来,同时取消了PHP的方式。所有在区块或者区块的配置中使用PHP代码的,其实都可以在模块中搞定,我当时为了省事,就直接放到了区块里面,使用了PHP filter。

最好还是不要使用PHP filter,总有一天,有人会不小心的操作,导致整个网站挂掉的。

论坛: