所以我在一个非常受欢迎的vbulletin插件中添加命令,而且无论我尝试什么,我似乎无法正常工作。我到目前为止的代码是
$cybcb_checkban = strpos($vbulletin->GPC['ccb_newmessage'], '/ban');
if($cybcb_checkban !== false AND $cybcb_candelall)
{
$banuserurl = $vbulletin->options['bburl'].'/misc.php?'.$vbulletin->session->vars['sessionurl'].'do=ccb_banuser&u=2';exec_header_redirect($banuserurl);
}
我需要它做的是说
的部分do=ccb_banuser&u=2
将 2 替换为聊天中输入的文字。
vbulletin有一种自己的语言,但它的基本概念是PHP 但作为参考,这是插件中已有的默认命令
$cybcb_checkme = strpos($vbulletin->GPC['ccb_newmessage'], '/me ');
if ($cybcb_checkme !== false)
{
$vbulletin->GPC['ccb_newmessage'] = str_replace('/me ', $vbulletin->userinfo['username'].' ', $vbulletin->GPC['ccb_newmessage']);
$vbulletin->GPC['ccb_newmessage'] = '[color='.$vbulletin->options['cybchatbox_mecolor'].']* '.$vbulletin->GPC['ccb_newmessage'].'[/color]';
}
我已经玩了好几天了,而且我唯一能够半工作的结果是顶部的第一个代码,你可能猜到的问题就是输入
/ban (USER ID HERE)
唯一将被禁止的用户是用户2(显然)
所以我只需要一些可以让代码成为/ ban(userID)
的东西我知道它必须像
$banuserurl = $vbulletin->options['bburl'].'/misc.php?'.$vbulletin->session->vars['sessionurl'].'do=ccb_banuser&u=.$vbulletin->GPC['ccb_newmessage']';exec_header_redirect($banuserurl);
但这似乎不起作用= /任何人都有答案?或者可以指出我正确的方向,我非常感激=)谢谢。
答案 0 :(得分:0)
$vbulletin->GPC['ccb_newmessage']
将包含整个消息,因此如果您发送
/ban 123455
$vbulletin->GPC['ccb_newmessage']
将/ban 123455
你可以做的是删除' / ban'并且您将留下用户ID
类似
$cybcb_checkban = strpos($vbulletin->GPC['ccb_newmessage'], '/ban');
if($cybcb_checkban !== false AND $cybcb_candelall)
{
$vbulletin->GPC['ccb_newmessage'] = str_replace('/ban ', '', $vbulletin->GPC['ccb_newmessage']);
$banuserurl = $vbulletin->options['bburl'].'/misc.php?'.$vbulletin->session->vars['sessionurl'].'do=ccb_banuser&u=' . $vbulletin->GPC['ccb_newmessage'];
exec_header_redirect($banuserurl);
}
或
$cybcb_checkban = strpos($vbulletin->GPC['ccb_newmessage'], '/ban');
if($cybcb_checkban !== false AND $cybcb_candelall)
{
$banuserurl = $vbulletin->options['bburl'].'/misc.php?'.$vbulletin->session->vars['sessionurl'].'do=ccb_banuser&u=' . substr($vbulletin->GPC['ccb_newmessage'], 4);
exec_header_redirect($banuserurl);
}
应该有效
注意:4可能应该用substr($vbulletin->GPC['ccb_newmessage'], strpos($vbulletin->GPC['ccb_newmessage'], '/ban') + strlen('/ban'));