New Feeds

[활용팁] 댓글창에 유튭주소로 영상 나오게하기

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

나리야는 댓글에 컨버터 기능이 있어서 유튭 주소넣고 누르면

댓글창에 주소변환되어 나오더라구요.


골드테마는 아에 컨버터 기능사용여부도 체크되어있고, 직접주소를 넣어도 바로 영상이 나오구요.


내가 못찾아서 그런지는 모르겠는데, 아미나는 {.동영상:유튭주소} 로 쳐야 나오는데

요즘은 전부들 핸드폰으로들 하기때문에, 괄호찾아서 넣는다는것이 많이 힘든거 같아요


그래서 sir뒤적이고 골드테마보고 구글링하고 이래저래 해보긴 해봤는데

부족한거 같음에도, 일단 굴러는 가서..혹시 더 좋게 할수 있는 방안이 없을까 하고 글을 남겨보니

보강해주실수 있는분은 더 좋게 해주세요


우선 댓글창 에서만 바꾸려고 하는것이고, 전 페이징 댓글로만 쓰려고 하다보니 


보드의

view_comment.page.skin 에서만 수정했어요


상단에


<?php

if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가


어쩌구 저쩌구 내용


// 이 아래 부분이 들어갑니다

function convertYoutubeLink($content) {

    // 정규식을 사용

    $regex = '~(?:https?://)?(?:www.)?(?:youtu.be/|youtube.com(?:/embed/|/v/|/watch?v=|/ytscreeningroom?v=|/feeds/api/videos/|/userS*[^w-s]|S*[^w-s]))([w-]{11})[a-z0-9;:@#?&%=+/$_.-]*~i';

    $content = clean_xss_tags($content); // XSS 처리

    return preg_replace_callback($regex, function($matches) {

        // 비디오 ID를 사용하여 iframe 태그를 생성

        $id = $matches[1]; 

        $iframe = '';

        return $iframe;

    }, $content);

}

// 요기까지

?>

===============================================
그리고 아래

/* PC 화면 크기 설정 */
@media (min-width: 768px) {
  .response-comment-video {
    width: 560px;
    height: 315px;
  }
}

/* 모바일 화면 크기 설정 */
@media (max-width: 767px) {
  .response-comment-video {
  width: 350px;
  height: 200px;
  max-width: 100%; /* 화면 폭을 벗어나지 않도록 최대 너비 설정 */
  }
}

스타일을 하나 추가해줬구요

===========================================


그리고 댓글 for문에서


<?php

for ($i=0; $i<$cmt_amt; $i++) {


$comment_id = $list[$i]['wr_id'];

$cmt_depth = ""; // 댓글단계


이렇게 나오는 부분에 $comment = $list[$i]['content']; 이 있는데


이 부분 앞뒤로 아래 코드를 넣었어요


$list[$i]['content'] = convertYoutubeLink($list[$i]['content']);

$comment = $list[$i]['content'];

// 여기에 `` 태그 제거 로직 추가

$comment = preg_replace_callback(

    '~.*?().*?~i',

    function ($matches) {

        // 유튜브 영상에 대한 `` 태그를 제거하고 그 내용을 반환

        return $matches[1];

    },

    $comment

);


=============================================


여기까지에요


하다보니, 댓글창에 주소를 치면 common.lip에서

$content = url_auto_link($content); 이 있어서 a링크가 다 붙던데..


단순하게, 유튜브에게서만 a링크를 제거해야지 되겠더라구요 

안하면 뭔 rel 어쩌구 요상한것이 한번 더 붙어버려서..

그래서  `` 태그 제거 로직 추가했어요


일단 이렇게 해두면


댓글창에 유튭 주소를 찍게되면


아래처럼 나와요.


유튭주소 정규식을 정확히 어떻게 해야하는지는 잘 모르겠어요.


일딴 다 때려박은 느낌이에요


1afac8c134a6ebaaeca529e4e63bde51_1712312591_572.png
 

관련자료

댓글 0
등록된 댓글이 없습니다.
전체 1,963 / 7 페이지
번호
제목
이름

Favorites


최근글


새댓글


  • 댓글이 없습니다.
알림 0