📄 messagequeue.php
字号:
<?php
class MessageQueueIterator {
var $rs = null;
var $dropTheRest = false;
function MessageQueueIterator($rs) {
$this->rs = $rs;
}
function hasNext() {
return !$this->dropTheRest && $this->rs->hasNext();
}
function next() {
if($rec = $this->rs->next()) {
$msg = new Message($rec['command']);
$msg->id = $rec['id'];
$msg->userid = $rec['userid'];
$msg->roomid = $rec['roomid'];
$msg->txt = $rec['txt'];
$msg->toconnid = $rec['toconnid'];
$msg->touserid = $rec['touserid'];
$msg->toroomid = $rec['toroomid'];
$msg->created = $rec['created'];
$this->dropTheRest = ($msg->command == 'lout');
return $msg;
} else {
return null;
}
}
}
class MessageQueue {
var $addStmt = null;
function MessageQueue() {
$this->addStmt = new Statement("INSERT INTO {$GLOBALS['fc_config']['db']['pref']}messages (created, toconnid, touserid, toroomid, command, userid, roomid, txt) VALUES (?, ?, ?, ?, ?, ?, ?, ?)");
}
function addMessage($message) {
return $this->addStmt->process($message->created, $message->toconnid, $message->touserid, $message->toroomid, $message->command, $message->userid, $message->roomid, $message->txt);
}
function getMessages($connid, $userid, $roomid, $start = 0) {
if($userid) {
$getStmt = new Statement("SELECT * FROM {$GLOBALS['fc_config']['db']['pref']}messages WHERE (toconnid=? OR touserid=? OR toroomid=? OR (toconnid IS NULL AND touserid IS NULL AND toroomid IS NULL)) AND id>=? ORDER BY id");
return new MessageQueueIterator($getStmt->process($connid, $userid, $roomid, $start));
} else {
$getStmt = new Statement("SELECT * FROM {$GLOBALS['fc_config']['db']['pref']}messages WHERE toconnid=? AND id>=? ORDER BY id");
return new MessageQueueIterator($getStmt->process($connid, $start));
}
}
}
?>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -