是否在SharDB插件中支持自定义用户表?

时间:2010-10-13 作者:Bee

我正在尝试SharDB插件,但它似乎没有尊重我的CUSTOM\\u USER\\u表和CUSTOM\\u USER\\u META\\u表声明——它正在查询$shardb_prefix.users 而不是我的自定义表名。有人知道这个插件是否应该支持CUSTOM\\u USER\\u表定义吗?

谢谢

1 个回复
最合适的回答,由SO网友:Bee 整理而成

好的,仔细研究一下,我在db中的tables函数(从第1088行开始)中发现了一个小bug。SharDB附带的php脚本文件。

这段代码就是问题所在(从db.php的第1114行开始):

if ( isset( $tables[\'users\'] ) ) {
    if( defined( \'CUSTOM_USER_TABLE\' ) ) 
        $pre_tables[\'users\'] = CUSTOM_USER_TABLE;
    if ( defined( \'CUSTOM_USER_META_TABLE\' ) ) 
        $pre_tables[\'usermeta\'] = CUSTOM_USER_META_TABLE;
}
请参见,它在返回表列表之前会进行检查,以查看是否定义了CUSTOM\\u USER\\u TABLE和CUSTOM\\u USER\\u META\\u TABLE,如果定义了,则会覆盖默认值。然而,由于isset( $tables[\'users\'] ) 检查第114行$tables是一个表名数组,“users”是数组中的一个值,因此从未设置$tables[“users”]。

因此,将第114行更改为:

if ( isset( $pre_tables[\'users\'] ) )
瞧。你们都准备好了

(我现在要去找插件作者并报告错误!)

结束

相关推荐

How do you debug plugins?

我对插件创作还很陌生,调试也很困难。我用了很多echo,它又脏又丑。我确信有更好的方法可以做到这一点,也许是一个带有调试器的IDE,我可以在其中运行整个站点,包括插件?