protected function reparse_record(array $record)
{
$record = $this->add_missing_fields($record);
$flags = $record['enable_bbcode'] ? OPTION_FLAG_BBCODE : 0;
$flags |= $record['enable_smilies'] ? OPTION_FLAG_SMILIES : 0;
$flags |= $record['enable_magic_url'] ? OPTION_FLAG_LINKS : 0;
$unparsed = array_merge($record, generate_text_for_edit($record['text'], $record['bbcode_uid'], $flags));
// generate_text_for_edit() and decode_message() actually return the text as HTML. It has to
// be decoded to plain text before it can be reparsed
$text = html_entity_decode($unparsed['text'], ENT_QUOTES, 'UTF-8');
$bitfield = $flags = null;
generate_text_for_storage($text, $unparsed['bbcode_uid'], $bitfield, $flags, $unparsed['enable_bbcode'], $unparsed['enable_magic_url'], $unparsed['enable_smilies'], $unparsed['enable_img_bbcode'], $unparsed['enable_flash_bbcode'], $unparsed['enable_quote_bbcode'], $unparsed['enable_url_bbcode'], 'text_reparser.' . $this->get_name());
// Save the new text if it has changed and it's not a dry run
if ($text !== $record['text'] && $this->save_changes) {
$record['text'] = $text;
$this->save_record($record);
}
}