/** * Parse BBCode in a message * * @param string $message Message to parse * @return string Parsed message */ public function parse_message($message) { if (empty($this->bbcode_data)) { return ''; } if (!is_object($this->message_parser)) { if (!class_exists('\\bbcode')) { require $this->phpbb_root_path . 'includes/bbcode.' . $this->php_ext; } if (!class_exists('\\parse_message')) { require $this->phpbb_root_path . 'includes/message_parser.' . $this->php_ext; } $this->message_parser = new \parse_message(); } $this->message_parser->parse_message($message); $this->bbcode_data['regexp'] = array($this->bbcode_data['first_pass_match'] => str_replace('$uid', $this->message_parser->bbcode_uid, $this->bbcode_data['first_pass_replace'])); $this->message_parser->bbcodes = array($this->bbcode_data['bbcode_tag'] => $this->bbcode_data); $this->message_parser->parse_bbcode(); return $this->message_parser->message; }
$db->sql_freeresult($result); // Now to the private messages $message_parser = new parse_message(); $message_parser->mode = 'post'; $message_parser->bbcode_init(); // Update pms $sql = 'SELECT msg_id, message_text, bbcode_uid, enable_bbcode FROM ' . PRIVMSGS_TABLE; $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { // Convert bbcodes back to their normal form if ($row['enable_bbcode']) { decode_message($row['message_text'], $row['bbcode_uid']); $message_parser->message = $row['message_text']; $message_parser->prepare_bbcodes(); $message_parser->parse_bbcode(); $bitfield = $message_parser->bbcode_bitfield; $sql = 'UPDATE ' . PRIVMSGS_TABLE . " SET bbcode_bitfield = '" . $db->sql_escape($bitfield) . "'\n\t\t\tWHERE msg_id = " . $row['msg_id']; $db->sql_query($sql); if ($echos > 200) { echo '<br />' . "\n"; $echos = 0; } echo '.'; $echos++; flush(); } else { $sql = 'UPDATE ' . PRIVMSGS_TABLE . " SET bbcode_bitfield = ''\n\t\t\tWHERE msg_id = " . $row['msg_id']; $db->sql_query($sql); } }