나리야는 댓글에 컨버터 기능이 있어서 유튭 주소넣고 누르면
댓글창에 주소변환되어 나오더라구요.
골드테마는 아에 컨버터 기능사용여부도 체크되어있고, 직접주소를 넣어도 바로 영상이 나오구요.
내가 못찾아서 그런지는 모르겠는데, 아미나는 {.동영상:유튭주소} 로 쳐야 나오는데
요즘은 전부들 핸드폰으로들 하기때문에, 괄호찾아서 넣는다는것이 많이 힘든거 같아요
그래서 sir뒤적이고 골드테마보고 구글링하고 이래저래 해보긴 해봤는데
부족한거 같음에도, 일단 굴러는 가서..혹시 더 좋게 할수 있는 방안이 없을까 하고 글을 남겨보니
보강해주실수 있는분은 더 좋게 해주세요
우선 댓글창 에서만 바꾸려고 하는것이고, 전 페이징 댓글로만 쓰려고 하다보니
보드의
view_comment.page.skin 에서만 수정했어요
상단에
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
어쩌구 저쩌구 내용
// 이 아래 부분이 들어갑니다
function convertYoutubeLink($content) {
// 정규식을 사용
$regex = '~(?:https?:\/\/)?(?:www\.)?(?:youtu\.be\/|youtube\.com(?:\/embed\/|\/v\/|\/watch\?v=|\/ytscreeningroom\?v=|\/feeds\/api\/videos\/|\/user\S*[^\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 = 'https://www.youtube-nocookie.com/embed/'.$id.'" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen>';
return $iframe;
}, $content);
}
// 요기까지
?>
그리고 댓글 for문에서
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(
'~
function ($matches) {
// 유튜브 영상에 대한 `` 태그를 제거하고 그 내용을 반환
return $matches[1];
},
$comment
);
=============================================
여기까지에요
하다보니, 댓글창에 주소를 치면 common.lip에서
$content = url_auto_link($content); 이 있어서 a링크가 다 붙던데..
단순하게, 유튜브에게서만 a링크를 제거해야지 되겠더라구요
안하면 뭔 rel 어쩌구 요상한것이 한번 더 붙어버려서..
그래서 `` 태그 제거 로직 추가했어요
일단 이렇게 해두면
댓글창에 유튭 주소를 찍게되면
아래처럼 나와요.
유튭주소 정규식을 정확히 어떻게 해야하는지는 잘 모르겠어요.
일딴 다 때려박은 느낌이에요