메인슬라이더 질문좀 드리겠습니다......


-
- 관련링크 : http://www.veitlife.com3841회 연결
본문
Youtube 동영상 주소 https://www.youtube.com/embed/ZIr2vq-qnlA 를 게시글 상단에 삽입하고자 할 경우,
이윰 테마는 게시판의 동영상 Add-On 기능 즉, 버튼을 클릭한 후, 다음 그림과 같이 동영상주소를 입력하고 "적용하기" 버튼을 클릭하면, 게시글 상단에 동영상 재생을 위한 iframe 부분을 자동삽입합니다.
하지만, 게시글이 저장될 때 동영상 주소가 제대로 Parse되지 않는 바람에 Youtube 동영상 주소를 삽입되지 않는 버그가 있습니다.
[ 동영상 Embed 에러가 발생한 화면 ]
버그가 발생한 html 쏘스를 살펴 보면 다음과 같이 embed/다음에 동영상 주소 중 ZIr2vq-qnlA라는 문자열이 보이지 않는 것을 확인할 수 있습니다.
본문
이 버그는 /eyoom/class/bbs.class.php 파일을 다음 git diff와 같이 수정하면 됩니다.
# git diff
diff --git a/eyoom/class/bbs.class.php b/eyoom/class/bbs.class.php
index 360a9ac..f71f5e7 100644
--- a/eyoom/class/bbs.class.php
+++ b/eyoom/class/bbs.class.php
@@ -407,18 +407,23 @@ class bbs extends eyoom
case 'youtube.com':
if ($src[1]) {
$video['key1'] = $src[1];
+ } elseif ($info['path']) {
+ $video['key1'] = preg_replace("//embed//i","",$info['path']);
} else {
- $video['key1'] = $query['v'];;
+ $video['key1'] = $query['v'];
}
break;
/**
* Vimeo
*/
+ case 'player.vimeo.com':
case 'vimeo.com':
if ($src[1] && $src[2]) {
$video['key1'] = $src[1];
$video['key2'] = $src[2];
+ } elseif ($info['path']) {
+ $video['key1'] = preg_replace("//video//i","",$info['path']);
} else {
$data = $this->get_video_use_curl($video_url, $host);
$video['key1'] = $data['vid'];
@@ -616,6 +621,7 @@ class bbs extends eyoom
/**
* Vimeo
*/
+ case 'player.vimeo.com':
case 'vimeo.com':
preg_match('/[a-zA-Z0-9:/._]+)"/i', $output, $scrapping);
$out['vid'] = $this->get_video_key($this->eyoom_host($scrapping['vid']));
@@ -730,35 +736,36 @@ class bbs extends eyoom
case 'youtu.be':
case 'youtube.com':
$vlist = $video['key2'] ? '&list='.$video['key2'] : '';
- $source = '';
+ $source = '';
break;
case 'tvcast.naver.com':
case 'tv.naver.com':
- $source = '';
+ $source = '';
break;
+ case 'player.vimeo.com':
case 'vimeo.com':
$source = '';
break;
case 'ted.com':
- $source = '';
+ $source = '';
break;
case 'tvpot.daum.net':
case 'tv.kakao.com':
- $source = '';
+ $source = '';
break;
case 'channel.pandora.tv':
case 'pan.best':
- $source = '';
+ $source = '';
break;
case 'dailymotion.com':
case 'dai.ly':
- $source = '';
+ $source = '';
break;
case 'facebook.com':
- $source = '';
+ $source = '';
break;
case 'slideshare.net':
- $source = '';
+ $source = '';
break;
case 'sendvid.com':
$source = '';
@@ -766,11 +773,11 @@ class bbs extends eyoom
case 'youku.com':
case 'v.youku.com':
case 'player.youku.com':
- $source = '';
+ $source = '';
break;
case 'iqiyi.com':
case 'player.video.qiyi.com':
- $source = '';
+ $source = '';
break;
}
if ($source) {
덧붙여, W3C의 가장 최근 권고안에 의거하면 http:// 혹은 https://라는 표현보다는 그냥 //만으로 표기하는 것이 바람직합니다. 따라서, 같은 PHP 파일의 private function video_source($video) 함수를 찾아서 src="http:// 혹은 src="https://을 모두 src="//로 변경하시기 바랍니다.
위와 같이 변경하면 다음 그림과 같이 제대로 동영상이 잘 재생됩니다.
Youtube 동영상 외 Vimeo 동영상에 대해서도 추가 시험하였고 iframe 삽입 버그를 수정하였습니다.
다음 첨부파일은 버그를 수정한 bbs.class.php입니다. eyoom/class/ 폴더에 복사해 넣으시면 됩니다.


최신글이 없습니다.
최신글이 없습니다.
댓글목록0