如何将phpfreechat配置为私人消息模式


How to configure phpfreechat to a private message mode?

对于那些熟悉phpfreechat的人来说,这是一个问题。我有一个带有phpfreechat模块的网站。phpfreechat的版本是2.1.0。默认情况下,phpfreechat有一个聊天室,管理员和用户可以在这里相互交谈。但作为一名管理员,我希望与每个用户进行私人对话。我的意思是,我不想用户可以互相交谈,只是对我。

所以,问题是:我该怎么做?如何将phpfreechat v2.x配置为私人消息/对话模式?这可能吗?

最后,我想说的是,在问这里之前,我确实对谷歌、S.O.和phpfreechat网站进行了适当的研究。当然,没有任何成功。

谢谢大家!

好的。。。以前没有使用过,但我快速浏览了代码,发现了将消息"发送"给所有其他用户的函数(位于/server/container/messages.php中)

此函数是postMsgToChannel()。。。

因此,基本上,您可以尝试复制/修改它,以创建一个只发送给单个用户的文件,它可能看起来像这样:

static public function postMsgToUser($cid, $ruid, $suid, $body, $type = 'msg') {
    $mid = self::generateMid($cid);
    $msg = array(
      'id'        => $mid,
      'sender'    => $suid,
      'recipient' => 'channel|'.$cid,
      'type'      => $type,
      'body'      => $body,
      'timestamp' => time(),
    );
    // json encode msg before storing
    $msg = json_encode($msg);
    //send message to single user
    $umdir = Container_users::getDir().'/'.$ruid.'/messages';
    file_put_contents($umdir.'/'.$mid, $msg);
    return $msg;
}

其中,$ruid是收件人的uid,$suid是发件人的uid。

我能预见到的唯一问题是,试图弄清楚你要发送到的用户id。