메인슬라이더 질문좀 드리겠습니다...... > 자유게시판

본문 바로가기

자유게시판

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

본문

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
로그인 후 추천 또는 비추천하실 수 있습니다.
포인트 10
경험치 2,371
[레벨 5] - 진행률 38%
가입일
2016-04-24 00:31:42
서명
Design by veitlife.com
자기소개
인쇄.광고.디자인제작 전문 쇼핑몰 veitlife.com

최신글이 없습니다.

최신글이 없습니다.

댓글목록0

등록된 댓글이 없습니다.

자유게시판 이용 안내

자유게시판에 광고/홍보 등의 글은 바로 삭제 처리가 되며, 특정 불법 광고성글(도박, 음란물 등)의 경우 고지없이 바로 회원 강제 탈퇴 처리가 되오니 참고 해 주시기 바랍니다.
질문글은 꼭 질문과 답변 게시판 또는 1:1문의 게시판을 이용하여 주시기 바랍니다.

전체 8 건 - 1 페이지
번호
제목
글쓴이
사이트 내 전체검색
0%