diff --git a/filter/mediaplugin/filter.php b/filter/mediaplugin/filter.php index cb4a75166de..edc0cfca6dc 100644 --- a/filter/mediaplugin/filter.php +++ b/filter/mediaplugin/filter.php @@ -90,6 +90,9 @@ class filter_mediaplugin extends moodle_text_filter { $search = '/]*href="(https?:\/\/www\.youtube(-nocookie)?\.com)\/v\/([a-z0-9\-_]+)[^"#]*(#d=([\d]{1,4})x([\d]{1,4}))?[^>]*>([^>]*)<\/a>/is'; $newtext = preg_replace_callback($search, 'filter_mediaplugin_youtube_callback', $newtext); + $search = '/]*href="(https?:\/\/(www\.)?(youtu|y2u)\.be)\/([a-z0-9\-_]+)"[^>]*>([^>]*)<\/a>/is'; + $newtext = preg_replace_callback($search, 'filter_mediaplugin_shortened_youtube_callback', $newtext); + $search = '/]*href="(https?:\/\/www\.youtube(-nocookie)?\.com)\/view_play_list\?p=([a-z0-9\-_]+)[^"#]*(#d=([\d]{1,4})x([\d]{1,4}))?[^>]*>([^>]*)<\/a>/is'; $newtext = preg_replace_callback($search, 'filter_mediaplugin_youtube_playlist_callback', $newtext); @@ -758,6 +761,18 @@ OET; return $output; } +/** + * Change shortened links to YouTube into embedded YouTube videos + * + * @param $link + * @return string + */ +function filter_mediaplugin_shortened_youtube_callback($link) { + $newlink = array($link[0], 'https://www.youtube.com','',$link[4],'','','',$link[5]); + return filter_mediaplugin_youtube_callback($newlink); +} + + /** * Change links to Vimeo into embedded Vimeo videos * diff --git a/filter/mediaplugin/simpletest/testfiltermediaplugin.php b/filter/mediaplugin/simpletest/testfiltermediaplugin.php index e74bb2a482d..bd8c748d737 100644 --- a/filter/mediaplugin/simpletest/testfiltermediaplugin.php +++ b/filter/mediaplugin/simpletest/testfiltermediaplugin.php @@ -58,7 +58,10 @@ class filter_mediaplugin_test extends UnitTestCase { 'test mpg', 'test', 'test file', + 'test file', 'test file', + 'test file', + 'test file', 'test flv', 'test file', 'test mp3',