static function LoadFromBeforeStartDate(DateTime $startDate, $count) { global $db, $parser, $mybb; $messages = array(); $formattedStartDate = $startDate->format("'Y-m-d H:i:s'"); $TABLE_PREFIX = TABLE_PREFIX; $query = $db->query("SELECT * FROM(\n SELECT m.`Id`, m.`SentAt`, m.`uid`, m.`Ip`, m.`Message`,\n u.`username`, u.`usergroup`, u.`displaygroup`\n FROM {$TABLE_PREFIX}badgerchat_messages m\n INNER JOIN {$TABLE_PREFIX}users u ON u.uid = m.uid\n WHERE m.`SentAt` < {$formattedStartDate}\n ORDER BY m.`SentAt` DESC LIMIT {$count}\n ) messages\n ORDER BY SentAt ASC"); $parser = new postParser(); $parser_options = array('allow_mycode' => 1, 'allow_smilies' => 1, 'allow_imgcode' => 0, 'allow_html' => 0, "allow_videocode" => 0); //TODO: Get back more info on the user (name styling) while ($row = $db->fetch_array($query)) { $parsedMessage = $parser->parse_message($row['Message'], $parser_options); $displayName = UsernameFormatter::Format($row['uid'], $row['username'], $row['usergroup'], $row['displaygroup']); array_push($messages, new Message($row["Id"], $row["SentAt"], $displayName, $row["Ip"], $parsedMessage)); } return $messages; }
static function PostMessage($user, $ip, $message) { global $db; if ($user == null) { return new MessagePosterResult(MessagePosterResultStatus::$Unauthorised, null); } // TODO: Checks for null and empty string? if (empty($message)) { return new MessagePosterResult(MessagePosterResultStatus::$NoMessage, null); } $escapedMessage = $db->escape_string($message); $parser = new postParser(); $parser_options = array('allow_mycode' => 1, 'allow_smilies' => 1, 'allow_imgcode' => 0, 'allow_html' => 0, "allow_videocode" => 0); $now = date("Y-m-d H:i:s"); // TODO: Strip HTML // TODO: Check for errors $addedId = $db->insert_query("badgerchat_messages", array("SentAt" => $now, "uid" => $user['uid'], "Ip" => $ip, "Message" => $escapedMessage)); $formattedName = UsernameFormatter::Format($user['uid'], $user['username'], $user['usergroup'], $user['displaygroup']); $addedMessage = new Message($addedId, $now, $formattedName, $ip, $message); return new MessagePosterResult(MessagePosterResultStatus::$Success, $addedMessage); }