테스트 사이트 - 개발 중인 베타 버전입니다

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

천사밍 6년 전 조회 3,630

안녕하세요.

 

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

 

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

 

</p>

<p><?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개

*/</p>

<p>

// 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);</p>

<p>// 게시글리스트 썸네일 생성

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;</p>

<p>    $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);</p>

<p>    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;</p>

<p>        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'];</p>

<p>            $srcfile = G5_PATH.$data_path;</p>

<p>            if(preg_match("/\.({$config['cf_image_extension']})$/i", $srcfile) && is_file($srcfile)) {

                $size = @getimagesize($srcfile);

                if(empty($size))

                    continue;</p>

<p>                $filename = basename($srcfile);

                $filepath = dirname($srcfile);</p>

<p>                preg_match("/alt=[\"\']?([^\"\']*)[\"\']?/", $matches[0][$i], $malt);

                $alt = get_text($malt[1]);</p>

<p>                break;

            }

        }

    }</p>

<p>    // 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];

            }

        }

    }</p>

<p>    $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;</p>

<p>    $tname = thumbnail($filename, $filepath, $filepath, $thumb_width, $thumb_height, $is_create, $is_crop, $crop_mode, $is_sharpen, $um_value);</p>

<p>    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;

    }</p>

<p>    $thumb = array("src"=>$src, "ori"=>$ori, "alt"=>$alt);</p>

<p>    return $thumb;

}

?>

<!-- 게시판 목록 시작 { -->

<div>

    <div class="waterfall_wrap">

        <ul id="waterfall"></p>

<p>        <?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></p>

<p>

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

답변 1개

채택된 답변
+20 포인트
6년 전

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

 

$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); 이 되겠죠.

 

 

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 3개

천사밍
6년 전
네 그것까진 했는데 그렇게 했더니 17번 게시물의 같은 사진이 A 게시판의 게시물 수만큼 쭉 나오더라고요 ㅠㅠ
마르스컴퍼니
6년 전
for 문 안에서 쓰면 게시물 수만큼 반복이 되니..

for 문 밖에서.. 쓰면 될 거예요.
<li>
<div>
<a ~>
<img>
</a>
</div>
</li>
천사밍
6년 전
도움 감사합니다^^ 잘 해결 하였습니다.

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

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

로그인