채택완료

리스트에서 유튜브 팝업 플레이 관련 문제입니다.

2019-12-07 (토) 19:28:10 3,864

증상은 관리자로 로그인시 정상적으로 팝업창이 작동하여 유튜브 영상이 실행되구요.

비회원인 상태에서 클릭시 해당 유튜브 주소로 이동해서 영상이 실행됩니다.

(게시판 권한은 글쓰기,답변,댓글,업로드 권한만 10입니다.)

2시간 가까이 소스를 뒤져봐도 왜 그런지 이해가 되지 않습니다.

혹시 의심해볼만한 방법이 있는지 고수분들의 고견을 여쭙습니다.

사용한 테마 : https://sir.kr/g5_theme/4395

참고한 스킨 : https://sir.kr/g5_skin/13115

문제가 발생된 페이지 : http://msfloor.cafe24.com/bbs/board.php?bo_table=movie

사용 스킨의 리스트 파일중 일부입니다.

상단에 css와 js파일을 불러왔습니다.

Copy
add_stylesheet('<link rel="stylesheet" href="'.G5_THEME_CSS_URL.'/magnific-popup.css">', 0);
add_javascript('<script src="'.G5_THEME_JS_URL.'/jquery.magnific-popup.min.js"></script>', 0);

그리고 유튜브 주소를 이용해서 썸네일을 추출했습니다.

Copy
<ul id="gall_ul">
    <?php
    for ($i=0; $i<count($list); $i++) {
    $thumb = get_list_thumbnail($bo_table, $list[$i]['wr_id'], $thumb_width, $thumb_height, false, true);

    if($thumb['src']) {
        $img = $thumb['src'];
    } else {
        $img = G5_THEME_IMG_URL.'/noimage.png';
        $thumb['alt'] = '이미지가 없습니다.';
    }
    $img_content = '<img src="'.$img.'" alt="'.$thumb['alt'].'" >';
    ?>

        <li class="gall_li">
            <a href="<?php echo ($is_admin ? $list[$i]['href'] : $list[$i]['wr_link1']); ?>" class="gall_img <?php echo ($is_admin ? '' : 'popup-youtube'); ?>"> // 여기서 팝업 플레이 스크립트를 호출합니다.
            <?php
            // 썸네일. (유투브 코드로 썸네일처리)
            $thumbsrc = '';
            $youtube_key = substr($list[$i]['wr_link1'],-11,11);
            $thumbsrc = 'https://img.youtube.com/vi/'.$youtube_key.'/mqdefault.jpg'; // 썸네일을 추출하고

            if($thumbsrc) {
                $img_content = '<img src="'.$board_skin_url.'/img/youtube.png" style="position:absolute; width:30px; margin:15px 20px;"><img src="'.$thumbsrc.'" alt="'.$list[$i]['subject'].'" width="'.$thumb_width.'" height="'.$thumb_height.'">'; // 썸네일을 불러올때 동영상 아이콘을 absolute로 함께 불러옵니다.
            } else {
                $img_content = '<span style="width:'.$thumb_width.'px;height:'.$thumb_height.'px">no image</span>';
            }

            echo $img_content;        
            ?>
            </a>

그리고 하단에 해당 JQuery 관련 스크립트를 추가했습니다.

Copy
<script>
<!--
$(document).ready(function() {
    $('.popup-youtube').magnificPopup({
        //disableOn: 700,
        type: 'iframe',
        mainClass: 'mfp-fade',
        removalDelay: 160,
        preloader: false,

        fixedContentPos: false
    });
});
//-->
</script>

답변 2개 / 댓글 3개

채택된 답변
+20 포인트

admin 에 접속이 안되서 확인이 어렵습니다.

  <a href="<?php echo ($is_admin ? $list[$i]['href'] : $list[$i]['wr_link1']); ?>" class="gall_img <?php echo ($is_admin ? '' : 'popup-youtube'); ?>"// 여기서 팝업 플레이 스크립트를 호출합니다. 

아마 이부분 차이아닐까 싶습니다. 

답변에 대한 댓글 2개

저도 처음에 권한 관련 문제인가 싶어서 해당 부분을
[code]
<a href="<?php echo $list[$i]['href']; ?>" class="gall_img"> // 스크립트에서 호출되는 클래스도 동일하게 수정
[/code]
이렇게 수정해봤는데 마찬가지였습니다.
늦은 시간에 관심 가져주셔서 고맙습니다.
제가 매우 단순하고 바보같은 실수를 했었네요.
간단하게 해결했습니다.

호출 스크립트를
[code]
<?php if ($is_checkbox) { ?> // 리스트 정리 권한이 있는 관리자 영역 ㅠㅠ
[/code]

여기 아래에 넣어버려서 관리자만 정상적으로 팝업 플레이가 되는 증상이었습니다.

kakao lemontree4050으로 친추주시면 한번 보겠습니다. 

답변에 대한 댓글 1개

늦은시간에 정말 고맙습니다. 친추 드렸습니다.

답변을 작성하려면 로그인이 필요합니다.