10/13/2017

YouTube for Discuz! 代碼編輯器

參考來源
https://besv.net/thread-1130-1-1.html
https://besv.net/thread-1170-1-1.html

 

原始代碼

<script>
var URL = "{1}";
if(URL.indexOf("youtu.be") > -1 ){
if(URL.indexOf("list=") > -1 ){
var video_id = URL.split("be/")[1].split("?")[0]+'?list='+URL.split("list=")[1].split("&")[0];
}else{
var video_id = URL.split("be/")[1].split("?")[0];
}
}
else if(URL.indexOf("youtube.com") > -1 ){
if(URL.indexOf("list=") > -1 ){
var video_id = URL.split("v=")[1].split("&")[0]+'?list='+URL.split("list=")[1].split("&")[0];
}else{
var video_id = URL.split("v=")[1].split("&")[0];
}
}else{
var video_id = URL;
}
document.write('<iframe width="560" height="315" style="max-width:90%" src="//www.youtube.com/embed/'+video_id+'" frameborder="0" allowfullscreen></iframe>');
</script>


Closure Compiler 優化代碼

<script>var URL="{1}",video_id=-1<URL.indexOf("youtu.be")?-1<URL.indexOf("list=")?URL.split("be/")[1].split("?")[0]+"?list="+URL.split("list=")[1].split("&")[0]:URL.split("be/")[1].split("?")[0]:-1<URL.indexOf("youtube.com")?-1<URL.indexOf("list=")?URL.split("v=")[1].split("&")[0]+"?list="+URL.split("list=")[1].split("&")[0]:URL.split("v=")[1].split("&")[0]:URL;document.write('<iframe width="560" height="315" style="max-width:90%" src="//www.youtube.com/embed/'+video_id+'" frameborder="0" allowfullscreen></iframe>');</script>


回應式代碼

<div style="position:relative;padding-bottom:56.25%;width:100%;height:0;"><script>var URL="{1}",video_id=-1<URL.indexOf("youtu.be")?-1<URL.indexOf("list=")?URL.split("be/")[1].split("?")[0]+"?list="+URL.split("list=")[1].split("&")[0]:URL.split("be/")[1].split("?")[0]:-1<URL.indexOf("youtube.com")?-1<URL.indexOf("list=")?URL.split("v=")[1].split("&")[0]+"?list="+URL.split("list=")[1].split("&")[0]:URL.split("v=")[1].split("&")[0]:URL;document.write('<iframe style="position:absolute;top:0;left:0;width:100%;height:100%;" src="//www.youtube.com/embed/'+video_id+'" frameborder="0" allowfullscreen></iframe>');</script></div>


回應式代碼 for bbcode

路徑 source/function/function_discuzcode.php
function_discuzcode-YouTube.patch


if(strpos($msglower, '[/email]') !== FALSE) {
$message = preg_replace("/\[email(=([a-z0-9\-_.+]+)@([a-z0-9\-_]+[.][a-z0-9\-_.]+))?\](.+?)\[\/email\]/ies", "parseemail('\\1', '\\4')", $message);
}

下面添加

if(strpos($msglower, '[/youtube]') !== FALSE) {
$message = preg_replace("/\[youtube](.+?)\[\/youtube\]/ies", "parseyoutube('\\1')", $message);
}



function parsetable($width, $bgcolor, $message) {

上面添加

function parseyoutube($url) {
$url = str_replace ('&amp;','&',$url);
if(strpos($url,'youtube.com')){
if(strpos($url,'list=')){
$URL_split = explode("v=",$url);
$URL_id = explode("&",$URL_split[1]);
$URL_split = explode("&list=",$URL_split[1]);
$URL_list = explode("&",$URL_split[1]);
$video_id = $URL_id[0].'?list='.$URL_list[0].'&rel=0';
}
else{
$URL_split = explode("v=",$url);
$URL_id = explode("&",$URL_split[1]);
$video_id = $URL_id[0].'?rel=0';
}
}
elseif(strpos($url,'youtu.be')){
if(strpos($url,'list=')){
$URL_split = explode("be/",$url);
$URL_id = explode("?",$URL_split[1]);
$URL_split = explode("?list=",$URL_split[1]);
$URL_list = explode("&",$URL_split[1]);
$video_id = $URL_id[0].'?list='.$URL_list[0].'&rel=0';
}
else{
$URL_split = explode("be/",$url);
$URL_id = explode("?",$URL_split[1]);
$video_id = $URL_id[0].'?rel=0';
}
}
else{
$video_id = $url.'?rel=0';
}
return '<div style="position:relative;padding-bottom:56.25%;width:100%;height:0;"><iframe style="position:absolute;top:0;left:0;width:100%;height:100%;" src="//www.youtube.com/embed/'.$video_id.'" frameborder="0" allowfullscreen></iframe></div>';
}


下載 YouTube 圖示
YouTube-social_icon_pack-red-GIF.zip

適用版本 Discuz X3.2 R20160601

 

測試網址

[youtube]https://www.youtube.com/watch?v=zgwD-mSI7Rk[/youtube]
[youtube]https://youtu.be/IxM1tjTvFAc[/youtube]
[youtube]https://www.youtube.com/watch?v=f9w91dS0Umk&list=RDMMf9w91dS0Umk[/youtube]
[youtube]https://youtu.be/kImpWphugRY?list=RDMMkImpWphugRY[/youtube]
[youtube]fzLKANCgUWQ[/youtube]








 




 

回應式代碼 for bbcode

路徑 source/function/function_discuzcode.php
function_discuzcode-YouTube_V2.patch

適用版本 Discuz X3.3 R20170401

  • 支援 PHP7


 

沒有留言:

張貼留言