$propbag->add('description', PLUGIN_EVENT_XHTMLCLEANUP_DESC);
$propbag->add('stackable', false);
$propbag->add('author', 'Garvin Hicking');
- $propbag->add('version', '1.2');
+ $propbag->add('version', '1.3');
$propbag->add('requirements', array(
'serendipity' => '0.8',
'smarty' => '2.6.7',
// Basic cleanup (core s9y functionality)
$eventData[$element] = xhtml_cleanup($eventData[$element]);
$eventData[$element] = preg_replace_callback('@(<img.+/?>)@imsU', array($this, 'clean_tag'), $eventData[$element]);
- $eventData[$element] = preg_replace_callback("@<a(.*)href=(\"|')([^\"']+)(\"|')@isUm", array($this, 'clean_htmlspecialchars'), $eventData[$element]);
+ $eventData[$element] = preg_replace_callback("@<(a|iframe)(.*)(href|src)=(\"|')([^\"']+)(\"|')@isUm", array($this, 'clean_htmlspecialchars'), $eventData[$element]);
}
}
}
function clean_htmlspecialchars($given, $quote_style = ENT_QUOTES) {
- return '<a' . $given[1] . 'href=' . $given[2] . htmlspecialchars(html_entity_decode($given[3], $quote_style), $quote_style) . $given[4];
+ return '<' . $given[1] . $given[2] . $given[3] . '=' . $given[4] . htmlspecialchars(html_entity_decode($given[5], $quote_style), $quote_style) . $given[6];
}
}