mirror of
https://github.com/friendica/friendica
synced 2024-11-19 03:03:41 +00:00
Merge pull request #4183 from MrPetovan/bug/4173-fix-oembed-iframe-url
Restore tryoembed callback function
This commit is contained in:
commit
511572533e
2 changed files with 34 additions and 13 deletions
|
@ -515,7 +515,7 @@ function bb_ShareAttributes($share, $simplehtml)
|
||||||
|
|
||||||
$preshare = trim($share[1]);
|
$preshare = trim($share[1]);
|
||||||
if ($preshare != "") {
|
if ($preshare != "") {
|
||||||
$preshare .= "<br /><br />";
|
$preshare .= "<br />";
|
||||||
}
|
}
|
||||||
|
|
||||||
switch ($simplehtml) {
|
switch ($simplehtml) {
|
||||||
|
@ -862,10 +862,31 @@ function bb_highlight($match) {
|
||||||
* @param bool $forplaintext
|
* @param bool $forplaintext
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
function bbcode($Text, $preserve_nl = false, $tryoembed = true, $simplehtml = false, $forplaintext = false) {
|
function bbcode($Text, $preserve_nl = false, $tryoembed = true, $simplehtml = false, $forplaintext = false)
|
||||||
|
{
|
||||||
$a = get_app();
|
$a = get_app();
|
||||||
|
|
||||||
|
/*
|
||||||
|
* preg_match_callback function to replace potential Oembed tags with Oembed content
|
||||||
|
*
|
||||||
|
* $match[0] = [tag]$url[/tag] or [tag=$url]$title[/tag]
|
||||||
|
* $match[1] = $url
|
||||||
|
* $match[2] = $title or absent
|
||||||
|
*/
|
||||||
|
$tryoembed_callback = function ($match)
|
||||||
|
{
|
||||||
|
$url = $match[1];
|
||||||
|
$title = defaults($match, 2, null);
|
||||||
|
|
||||||
|
try {
|
||||||
|
$return = OEmbed::getHTML($url, $title);
|
||||||
|
} catch (Exception $ex) {
|
||||||
|
$return = $match[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
return $return;
|
||||||
|
};
|
||||||
|
|
||||||
// Hide all [noparse] contained bbtags by spacefying them
|
// Hide all [noparse] contained bbtags by spacefying them
|
||||||
// POSSIBLE BUG --> Will the 'preg' functions crash if there's an embedded image?
|
// POSSIBLE BUG --> Will the 'preg' functions crash if there's an embedded image?
|
||||||
|
|
||||||
|
@ -988,7 +1009,7 @@ function bbcode($Text, $preserve_nl = false, $tryoembed = true, $simplehtml = fa
|
||||||
|
|
||||||
// Perform URL Search
|
// Perform URL Search
|
||||||
if ($tryoembed) {
|
if ($tryoembed) {
|
||||||
$Text = preg_replace_callback("/\[bookmark\=([^\]]*)\](.*?)\[\/bookmark\]/ism", 'tryoembed', $Text);
|
$Text = preg_replace_callback("/\[bookmark\=([^\]]*)\](.*?)\[\/bookmark\]/ism", $tryoembed_callback, $Text);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($simplehtml == 5) {
|
if ($simplehtml == 5) {
|
||||||
|
@ -1023,7 +1044,7 @@ function bbcode($Text, $preserve_nl = false, $tryoembed = true, $simplehtml = fa
|
||||||
// }
|
// }
|
||||||
|
|
||||||
if ($tryoembed) {
|
if ($tryoembed) {
|
||||||
$Text = preg_replace_callback("/\[url\]([$URLSearchString]*)\[\/url\]/ism", 'tryoembed', $Text);
|
$Text = preg_replace_callback("/\[url\]([$URLSearchString]*)\[\/url\]/ism", $tryoembed_callback, $Text);
|
||||||
}
|
}
|
||||||
|
|
||||||
$Text = preg_replace("/([#])\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/ism",
|
$Text = preg_replace("/([#])\[url\=([$URLSearchString]*)\](.*?)\[\/url\]/ism",
|
||||||
|
@ -1222,8 +1243,8 @@ function bbcode($Text, $preserve_nl = false, $tryoembed = true, $simplehtml = fa
|
||||||
$Text = preg_replace("/\[video\](.*?\.(ogg|ogv|oga|ogm|webm|mp4))\[\/video\]/ism", '<video src="$1" controls="controls" width="' . $a->videowidth . '" height="' . $a->videoheight . '"><a href="$1">$1</a></video>', $Text);
|
$Text = preg_replace("/\[video\](.*?\.(ogg|ogv|oga|ogm|webm|mp4))\[\/video\]/ism", '<video src="$1" controls="controls" width="' . $a->videowidth . '" height="' . $a->videoheight . '"><a href="$1">$1</a></video>', $Text);
|
||||||
$Text = preg_replace("/\[audio\](.*?\.(ogg|ogv|oga|ogm|webm|mp4|mp3))\[\/audio\]/ism", '<audio src="$1" controls="controls"><a href="$1">$1</a></audio>', $Text);
|
$Text = preg_replace("/\[audio\](.*?\.(ogg|ogv|oga|ogm|webm|mp4|mp3))\[\/audio\]/ism", '<audio src="$1" controls="controls"><a href="$1">$1</a></audio>', $Text);
|
||||||
|
|
||||||
$Text = preg_replace_callback("/\[video\](.*?)\[\/video\]/ism", 'tryoembed', $Text);
|
$Text = preg_replace_callback("/\[video\](.*?)\[\/video\]/ism", $tryoembed_callback, $Text);
|
||||||
$Text = preg_replace_callback("/\[audio\](.*?)\[\/audio\]/ism", 'tryoembed', $Text);
|
$Text = preg_replace_callback("/\[audio\](.*?)\[\/audio\]/ism", $tryoembed_callback, $Text);
|
||||||
} else {
|
} else {
|
||||||
$Text = preg_replace("/\[video\](.*?)\[\/video\]/",
|
$Text = preg_replace("/\[video\](.*?)\[\/video\]/",
|
||||||
'<a href="$1" target="_blank">$1</a>', $Text);
|
'<a href="$1" target="_blank">$1</a>', $Text);
|
||||||
|
@ -1242,9 +1263,9 @@ function bbcode($Text, $preserve_nl = false, $tryoembed = true, $simplehtml = fa
|
||||||
|
|
||||||
// Youtube extensions
|
// Youtube extensions
|
||||||
if ($tryoembed) {
|
if ($tryoembed) {
|
||||||
$Text = preg_replace_callback("/\[youtube\](https?:\/\/www.youtube.com\/watch\?v\=.*?)\[\/youtube\]/ism", 'tryoembed', $Text);
|
$Text = preg_replace_callback("/\[youtube\](https?:\/\/www.youtube.com\/watch\?v\=.*?)\[\/youtube\]/ism", $tryoembed_callback, $Text);
|
||||||
$Text = preg_replace_callback("/\[youtube\](www.youtube.com\/watch\?v\=.*?)\[\/youtube\]/ism", 'tryoembed', $Text);
|
$Text = preg_replace_callback("/\[youtube\](www.youtube.com\/watch\?v\=.*?)\[\/youtube\]/ism", $tryoembed_callback, $Text);
|
||||||
$Text = preg_replace_callback("/\[youtube\](https?:\/\/youtu.be\/.*?)\[\/youtube\]/ism", 'tryoembed', $Text);
|
$Text = preg_replace_callback("/\[youtube\](https?:\/\/youtu.be\/.*?)\[\/youtube\]/ism", $tryoembed_callback, $Text);
|
||||||
}
|
}
|
||||||
|
|
||||||
$Text = preg_replace("/\[youtube\]https?:\/\/www.youtube.com\/watch\?v\=(.*?)\[\/youtube\]/ism", '[youtube]$1[/youtube]', $Text);
|
$Text = preg_replace("/\[youtube\]https?:\/\/www.youtube.com\/watch\?v\=(.*?)\[\/youtube\]/ism", '[youtube]$1[/youtube]', $Text);
|
||||||
|
@ -1259,8 +1280,8 @@ function bbcode($Text, $preserve_nl = false, $tryoembed = true, $simplehtml = fa
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($tryoembed) {
|
if ($tryoembed) {
|
||||||
$Text = preg_replace_callback("/\[vimeo\](https?:\/\/player.vimeo.com\/video\/[0-9]+).*?\[\/vimeo\]/ism", 'tryoembed', $Text);
|
$Text = preg_replace_callback("/\[vimeo\](https?:\/\/player.vimeo.com\/video\/[0-9]+).*?\[\/vimeo\]/ism", $tryoembed_callback, $Text);
|
||||||
$Text = preg_replace_callback("/\[vimeo\](https?:\/\/vimeo.com\/[0-9]+).*?\[\/vimeo\]/ism", 'tryoembed', $Text);
|
$Text = preg_replace_callback("/\[vimeo\](https?:\/\/vimeo.com\/[0-9]+).*?\[\/vimeo\]/ism", $tryoembed_callback, $Text);
|
||||||
}
|
}
|
||||||
|
|
||||||
$Text = preg_replace("/\[vimeo\]https?:\/\/player.vimeo.com\/video\/([0-9]+)(.*?)\[\/vimeo\]/ism", '[vimeo]$1[/vimeo]', $Text);
|
$Text = preg_replace("/\[vimeo\]https?:\/\/player.vimeo.com\/video\/([0-9]+)(.*?)\[\/vimeo\]/ism", '[vimeo]$1[/vimeo]', $Text);
|
||||||
|
|
|
@ -895,7 +895,7 @@ function admin_page_site_post(App $a)
|
||||||
$allowed_sites = ((x($_POST,'allowed_sites')) ? notags(trim($_POST['allowed_sites'])) : '');
|
$allowed_sites = ((x($_POST,'allowed_sites')) ? notags(trim($_POST['allowed_sites'])) : '');
|
||||||
$allowed_email = ((x($_POST,'allowed_email')) ? notags(trim($_POST['allowed_email'])) : '');
|
$allowed_email = ((x($_POST,'allowed_email')) ? notags(trim($_POST['allowed_email'])) : '');
|
||||||
$no_oembed_rich_content = x($_POST,'no_oembed_rich_content');
|
$no_oembed_rich_content = x($_POST,'no_oembed_rich_content');
|
||||||
$allowed_oembed = ((x($_POST,'allowed_embed')) ? notags(trim($_POST['allowed_embed'])) : '');
|
$allowed_oembed = ((x($_POST,'allowed_oembed')) ? notags(trim($_POST['allowed_oembed'])) : '');
|
||||||
$block_public = ((x($_POST,'block_public')) ? True : False);
|
$block_public = ((x($_POST,'block_public')) ? True : False);
|
||||||
$force_publish = ((x($_POST,'publish_all')) ? True : False);
|
$force_publish = ((x($_POST,'publish_all')) ? True : False);
|
||||||
$global_directory = ((x($_POST,'directory')) ? notags(trim($_POST['directory'])) : '');
|
$global_directory = ((x($_POST,'directory')) ? notags(trim($_POST['directory'])) : '');
|
||||||
|
|
Loading…
Reference in a new issue