Beispiel #1
0
 /**
  * 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;
 }
Beispiel #2
0
$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);
    }
}