핀테스트 겔러리 latest 관련 문의 드립니다.

핀테스트 겔러리 latest 관련 문의 드립니다.

QA

핀테스트 겔러리 latest 관련 문의 드립니다.

본문

https://sir.kr/g5_skin/16143  글의 그림자밟기 님의 latest를 응용중입니다.

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($i>1 && ($i % $bo_gallery_cols == 5))
                $style = 'clear:both;';
            else
                $style = '';
            if ($i == 0) $k = 0;
            $k += 1;
            if ($k % $bo_gallery_cols == 5) $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>

이 질문에 댓글 쓰기 :

답변 2

소스를 보면 다음 게시판의 이미지를 불러오는 부분이 없습니다. 
혹시 latest 의 캐시문제 아닐까 싶은데 관리자페이지 -> 캐시파일 일괄삭제를 한번 해보세요.

http://sunhoon.web-bi.net/gnu/sample/sh_masonry_gallery.php  그림자밟기님의 샘플입니다.
요기처럼 섬네일을 클릭하면 해당 1게시문의 이미지만 나오고 다음버튼을 누르면 해당게시물의 추가 첨부가 안나오고 다음게시물 이미지로 넘어가는 형식입니다....  말씀하신내용이  해당 게시물 불러오는 소스가 없다는 건지요??^^?

위에 문의글에서 다음글이 아닌 다음 게시판의 이미지가 나온다고 하셔서...
해당게시물의 추가 첨부가 나오게 하려면 손봐야 될곳이 좀  많아서 답변으로는 설명드리기 힘들것같은데.. 윗분얘기처럼 제작의뢰를 해보시는것이 좋을듯 싶습니다. 프로그램을 좀 아신다면 참고하세요.
get_list_thumbnail_masonry 에서  order by bf_no limit 0, 1  에 limit 0,1 삭제하고 있는 추가파일들을 모두 불러옴.
썸네일 처리한 이미지들은 $thumb_arr 에 array 로 여러개를 담아 return 해주고
for ($i=0; $i<count($list); $i++) {  에 $list 가 아닌 $thumb_arr 값을 for 처리해줌

sir제작의뢰에 글 올려보세요.

https://sir.kr/main/request/

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

회원로그인

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