latest 를 사용해 특정글의 이미지 불러오기 질문 드릴게 있습니다.

latest 를 사용해 특정글의 이미지 불러오기 질문 드릴게 있습니다.

QA

latest 를 사용해 특정글의 이미지 불러오기 질문 드릴게 있습니다.

본문

안녕하세요.

 

latest 최신글 불러오기를 사용해 각 글들의 메인 이미지를 쭉 가지고오고 있는 소스인데 아래 같이 올린 소스를 좀 변형해서 전체글의 이미지 말고 특정 게시판에 올려진 사진을 불러와 보여주고 싶은데 어디를 변경해야 할까요?

 

이렇게 사용하려는 이유는 갤러리 게시판에 글 하나에 여러게의 사진을 올려놓고 그 링크를 클릭했을때 슬라이드쇼로 이미지를 보여주기 위함 입니다.

 


<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
include_once(G5_LIB_PATH.'/thumbnail.lib.php');
$thumb_long = 960; // 썸네일 긴축
$thumb_width = 452; // 화면에 표시될 썸네일 너비
/*
1100px 기준
width: 194,  5개
width: 247,  4개
width: 336,  3개
width: 515,  2개
1880px 기준
width: 442,  4개
width: 349,  5개
width: 288,  6개
width: 244,  7개
*/

// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
add_stylesheet('<link rel="stylesheet" href="'.$latest_skin_url.'/css/style.css">', 1000);
add_stylesheet('<link rel="stylesheet" href="'.$latest_skin_url.'/css/imagelightbox.css">', 1000);
// 게시글리스트 썸네일 생성
function get_list_thumbnail_masonry($bo_table, $wr_id, $thumb_long, $is_create=false, $is_crop=false, $crop_mode='center', $is_sharpen=false, $um_value='80/0.5/3')
{
    global $g5, $config;
    $filename = $alt = "";
    $edt = false;
    $sql = " select bf_file, bf_content from {$g5['board_file_table']}
                where bo_table = '$bo_table' and wr_id = '$wr_id' and bf_type between '1' and '3' order by bf_no limit 0, 1 ";
    $row = sql_fetch($sql);
    if($row['bf_file']) {
        $filename = $row['bf_file'];
        $filepath = G5_DATA_PATH.'/file/'.$bo_table;
        $alt = get_text($row['bf_content']);
        $srcfile = $filepath.'/'.$filename;
        $size = @getimagesize($srcfile);
    } else {
        $write_table = $g5['write_prefix'].$bo_table;
        $sql = " select wr_content from $write_table where wr_id = '$wr_id' ";
        $write = sql_fetch($sql);
        $matches = get_editor_image($write['wr_content'], false);
        $edt = true;
        for($i=0; $i<count($matches[1]); $i++)
        {
            // 이미지 path 구함
            $p = parse_url($matches[1][$i]);
            if(strpos($p['path'], '/'.G5_DATA_DIR.'/') != 0)
                $data_path = preg_replace('/^\/.*\/'.G5_DATA_DIR.'/', '/'.G5_DATA_DIR, $p['path']);
            else
                $data_path = $p['path'];
            $srcfile = G5_PATH.$data_path;
            if(preg_match("/\.({$config['cf_image_extension']})$/i", $srcfile) && is_file($srcfile)) {
                $size = @getimagesize($srcfile);
                if(empty($size))
                    continue;
                $filename = basename($srcfile);
                $filepath = dirname($srcfile);
                preg_match("/alt=[\"\']?([^\"\']*)[\"\']?/", $matches[0][$i], $malt);
                $alt = get_text($malt[1]);
                break;
            }
        }
    }
    // jpg 이면 exif 체크
    if($size[2] == 2 && function_exists('exif_read_data')) {
        $degree = 0;
        $exif = @exif_read_data($srcfile);
        if(!empty($exif['Orientation'])) {
            switch($exif['Orientation']) {
                case 8:
                    $degree = 90;
                    break;
                case 3:
                    $degree = 180;
                    break;
                case 6:
                    $degree = -90;
                    break;
            }
            // 세로사진의 경우 가로, 세로 값 바꿈
            if($degree == 90 || $degree == -90) {
                $tmp = $size;
                $size[0] = $tmp[1];
                $size[1] = $tmp[0];
            }
        }
    }
    $thumb_width = $thumb_height = $thumb_long;
    if($size[0] > $size[1]) {
        // 가로 사진
        $thumb_width = $thumb_long;
        $thumb_height = round(($thumb_long * $size[1]) / $size[0]);
    } else if($size[0] < $size[1]) {
        // 세로사진
        $thumb_width = round(($thumb_long * $size[0]) / $size[1]);
        $thumb_height = $thumb_long;
    }
    if(!$filename)
        return false;
    $tname = thumbnail($filename, $filepath, $filepath, $thumb_width, $thumb_height, $is_create, $is_crop, $crop_mode, $is_sharpen, $um_value);
    if($tname) {
        if($edt) {
            // 오리지날 이미지
            $ori = G5_URL.$data_path;
            // 썸네일 이미지
            $src = G5_URL.str_replace($filename, $tname, $data_path);
        } else {
            $ori = G5_DATA_URL.'/file/'.$bo_table.'/'.$filename;
            $src = G5_DATA_URL.'/file/'.$bo_table.'/'.$tname;
        }
    } else {
        return false;
    }
    $thumb = array("src"=>$src, "ori"=>$ori, "alt"=>$alt);
    return $thumb;
}
?>
<!-- 게시판 목록 시작 { -->
<div>
    <div class="waterfall_wrap">
        <ul id="waterfall">
        <?php for ($i=0; $i<count($list); $i++) {
            if($bo_gallery_cols > 0 && $i>0 && ($i % $bo_gallery_cols == 0))
                $style = 'clear:both;';
            else
                $style = '';
            if ($i == 0) $k = 0;
            $k += 1;
            if ($bo_gallery_cols > 0 && $k % $bo_gallery_cols == 0) $style .= "margin:0 !important;";
            $thumb = get_list_thumbnail_masonry($bo_table, $list[$i]['wr_id'], $thumb_long);
            if($thumb['src']) {
                $img_content = '<img src="'.$thumb['src'].'" alt="'.$thumb['alt'].'" style="width:100%">';
            } else {
                continue;
            }
         ?>
            <li>
                <div>
                    <a href="<?php echo $thumb['src'] ?>" data-imagelightbox="g" <?php echo ($list[$i]['subject']) ? 'data-ilb2-caption="'.$list[$i]['subject'].'"' : '' ?>"><?php echo $img_content ?></a>
                </div>
            </li>
        <?php } ?>
        </ul>
        </form>
    </div>
</div>
<script type="text/javascript" src="<?php echo $latest_skin_url ?>/js/newWaterfall.js"></script>
<script type="text/javascript" src="<?php echo $latest_skin_url ?>/js/imagelightbox.js"></script>
<script type="text/javascript">
$(document).ready(function ()
{
    $('#waterfall').NewWaterfall({
        width: <?php echo $thumb_width ?>,
        delay: 50,
    });
    $('a[data-imagelightbox="g"]').imageLightbox({
        activity: true,
        arrows: true,
        button: true,
        caption: true,
        navigation: false,
        overlay: true,
        gutter: 0,
        quitOnDocClick: true
    });
});
</script>

이 질문에 댓글 쓰기 :

답변 1

위 소스 중에 다음과 같은 부분이 있네요.~

 

$thumb = get_list_thumbnail_masonry($bo_table, $list[$i]['wr_id'], $thumb_long);

 

get_list_thumbnail_masonry() 의 파라미터의 첫번째에는 테이블명, 두번째에는 wr_id 를 넣어주면 되는 것 같습니다.

 

특정 A 게시판의 wr_id 가 17인 게시글의 이미지를 가져오려면,

get_list_thumbnail_masonry('A', '17', $thumb_long); 이 되겠죠.

 

 

 

답변을 작성하시기 전에 로그인 해주세요.
전체 333
QA 내용 검색

회원로그인

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