diff --git a/plugin/htmlpurifier/extend.video.php b/plugin/htmlpurifier/extend.video.php index df9f2367e..8ba346a47 100644 --- a/plugin/htmlpurifier/extend.video.php +++ b/plugin/htmlpurifier/extend.video.php @@ -21,11 +21,24 @@ if( !class_exists('HTMLPurifier_Filter_Iframevideo') ){ */ public function preFilter($html, $config, $context) { - $html = preg_replace('##i', '', $html); + if (strstr($html, ']*>(.*?)?\/iframe>/si', array($this, 'trust_url_match'), $html); + $html = preg_replace_callback('/]*>(.*?)?\/iframe>/si', array($this, 'trust_url_match'), $html); + //$html = preg_replace('##i', '', $html); + } return $html; } + public function trust_url_match($matches) + { + $str = $matches[0]; + if( $matches[1] ){ + $str = preg_replace('##i', '', $str); + } + return $str; + } /** * * @param string $html @@ -48,7 +61,7 @@ if( !class_exists('HTMLPurifier_Filter_Iframevideo') ){ { // Domain Whitelist $youTubeMatch = preg_match('#src="https?://www.youtube(-nocookie)?.com/#i', $matches[1]); - $vimeoMatch = preg_match('#src="http://player.vimeo.com/#i', $matches[1]); + $vimeoMatch = preg_match('#src="https?://player.vimeo.com/#i', $matches[1]); if ($youTubeMatch || $vimeoMatch) { $extra = ' frameborder="0"'; if ($youTubeMatch) {