From 1a73d34c10643d0b997836641afe1393dae666b8 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Gaudreau Date: Wed, 22 Aug 2012 10:09:11 -0400 Subject: [PATCH] MDL-34997 - Allow shortened url youtu.be and y2u.be for Youtube filter --- filter/mediaplugin/filter.php | 15 +++++++++++++++ .../simpletest/testfiltermediaplugin.php | 3 +++ 2 files changed, 18 insertions(+) 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',