외부이미지 리스트의 썸네일로 사용하기 - 2 > 그누보드5 팁자료실

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!

그누보드5 팁자료실

외부이미지 리스트의 썸네일로 사용하기 - 2 정보

외부이미지 리스트의 썸네일로 사용하기 - 2

본문

https://sir.kr/g5_tip/17640

 

지난 번 링크 내용은 처음부터 게시글을 작성해야 하고 중간에 바꾸면 기존의 게시글은 일일이 수정해야 하는 번거러움이 있어서... 개개의 wr_content 에서 첫번째 외부 이미지를 찾아내는 방법으로 바꾸어 보았습니다.

이럴 경우 기존의 게시글을 수정할 필요가 없어집니다.

 

1. 외부 이미지가 있을 경우 외부 이미지를 먼저 썸네일로 보여주고

2. 외부 이미지가 없으면 기존의 방식으로 썸네일이 보여집니다.

 

gallery 스킨 list.skin.php 에서 class="gall_img" 인 div 를 찾아 그 div 를 아래의 코드로 바꾸어 줍니다.

 


<div class="gall_img" style="<?php if ($board['bo_gallery_height'] > 0) echo 'height:'.$board['bo_gallery_height'].'px;max-height:'.$board['bo_gallery_height'].'px'; ?>">
    <?php
    $out_img = '';
    $out_image = explode('<img src=', $list[$i]['wr_content']);
    for ($img = 0; $img < count($out_image); $img++) if ($out_img == '' && strpos(explode('"', $out_image[$img])[1], G5_URL.'/') === false) $out_img .= explode('"', $out_image[$img])[1];                    
    ?>
    <a href="<?php echo $list[$i]['href'] ?>">
        <?php if ($list[$i]['is_notice']) { ?> <span class="is_notice" style="<?php echo $line_height_style; ?>">공지</span>
        <?php } else {
            $thumb = get_list_thumbnail($board['bo_table'], $list[$i]['wr_id'], $board['bo_gallery_width'], $board['bo_gallery_height'], false, true);
            $thumb['src'] = $out_img ? $out_img : $thumb['src']; 
            if ($thumb['src']) $img_content = '<img src="'.$thumb['src'].'" alt="'.$thumb['alt'].'" >';
            else $img_content = '<span class="no_image" style="'.$line_height_style.'">no image</span>';
            echo run_replace('thumb_image_tag', $img_content, $thumb);
        } ?>
    </a>
</div>
 
추천
3

댓글 18개


코드를 보면 이미지태그 src 에서 G5_URL.'/' 가 들어간 건 제외하고 있으니 외부이미지만을 가져오게 됩니다.
:
공개해 주신 비법을 감사히 사용하겠습니다.

그런데, 코드를 바꾼 후 아래와 같은 에러가 납니다.
Parse error: syntax error, unexpected '[' in /설치경로/list.skin.php on line 117

'[' 의 문제를 찾아보려고 했으나 실패하고 문의드립니다. 어떻게 해결해야 할지요??

제 파일에서 line 117에는 이렇게 적혀 있습니다.

<?php
    $out_img = '';
    $out_image = explode('<img src=', $list[$i]['wr_content']);
    for ($img = 0; $img < count($out_image); $img++) if ($out_img == '' && strpos(explode('"', $out_image[$img])[1], G5_URL.'/') === false) $out_img .= explode('"', $out_image[$img])[1];                   
?>


적용은 그누보드 5.5.1버전이며, 스킨은 skin/board/gallery/list.skin.php 에 했었습니다.
혹시 가능하시면 에러 찾기에 도움 주셨으면 합니다.

감사합니다.
php 가 몇버전이신지요?
이건 7버전 이하에서 배열을 읽지 못해 생기는 오류로 알고 있습니다.
php를 7버전으로 올려 보세요.
최근게시물에 외부 이미지가 나오게 하려고 하는데 잘 안되네요
    <?php
    for ($i=0; $i<count($list); $i++) {
    $youtube_url = $list[$i]['wr_link1'];
    $youtube_id = str_replace('http://youtu.be/','',$youtube_url);
    $youtube_id = str_replace('https://youtu.be/','',$youtube_id);
    $thumb = get_list_thumbnail($bo_table, $list[$i]['wr_id'], $thumb_width, $thumb_height, false, true);

    if($youtube_id) {
        $img = 'https://img.youtube.com/vi/'.$youtube_id.'/hqdefault.jpg';
    } else if($thumb['src']) {
        $img = $thumb['src'];
    } else {
        $img = G5_IMG_URL.'/no_img.png';
        $thumb['alt'] = '이미지가 없습니다.';
    }
    $img_content = '<img src="'.$img.'" alt="'.$thumb['alt'].'" >';
    ?>
        <li>
            <a href="<?php echo $list[$i]['href'] ?>" class="lt_img"><?php echo $img_content; ?></a>
            <?php
            if ($list[$i]['icon_secret']) echo "<i class=\"fa fa-lock\" aria-hidden=\"true\"></i><span class=\"sound_only\">비밀글</span> ";

            if ($list[$i]['icon_new']) echo "<img src=\"{$board_skin_url}/img/new.jpg\"><span class=\"sound_only\">새글</span></span>";

            if ($list[$i]['icon_hot']) echo "<span class=\"hot_icon\">H<span class=\"sound_only\">인기글</span></span>";

 
기존에 있는 소스인데... 조금만 수정하면 될듯 하는데 잘 안되는데 도움 부탁드립니다
그냥 편하게 보여지고픈 유튜브 이미지를 게시글의 첫번째 첨부파일로 올리고 기존의 최신글 스킨을 쓰는걸 권해드립니다.

썸네일은 잘 나오는데

마우스를 썸네일에 갖다대면(alt)

사용자가 올린 이미지

이렇게 나오네요

 

해당 글의 제목이 나오게 하려고

아무리 수정해도 '사용자가 올린 이미지'만 계속 나옵니다.

 

뭔가 힌트를 좀 주시면 감사하겠습니다~

전체 2,431 |RSS
그누보드5 팁자료실 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT