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

썸네일 크롭 위치 채택완료

니킬 7년 전 조회 4,195

게시 본문글 이미지

 

제가 원하는 갤러리방식 썸네일 목록 이미지

 

 

여기 검색하다 해보고.. 해결안되서 문의합니다.

 

크롭 위치 변경하려고 했는데 왼쪽 가능하지만 오른쪽 불가능하네요.

 

lib/thumbnail.lib.php

 

586번 부문

---------------------------------------------------------------------------------------------

    if($is_large) {
        // 크롭처리
        if($is_crop) {
            switch($crop_mode)
            {
                case 'right':
                    if($size[1] / $size[0] >= $ratio) {
                        $src_h = round($src_w * $ratio);
                        $src_y = round(($size[1] - $src_h) / 2);
                    } else {
                        $src_w = round($size[1] / $ratio);
                        $src_x = round(($size[0] - $src_w) / 2);
                    }
                    break;
                default:
                    if($size[1] / $size[0] >= $ratio) {
                        $src_h = round($src_w * $ratio);
                    } else {
                        $src_w = round($size[1] / $ratio);
                    }
                    break;
            }

---------------------------------------------------------------------------------------------

 

 

case 'center'에서 case 'right' 고쳐봤지만.. 여전히 왼쪽으로 되어있네요.

 

혹시나 해서 썸네일 파일 일괄삭제해보고 시도해봤지만 마찬가지네요.

 

오른쪽으로 지정할 수 있게 방법이 없을까요?

 

 

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

답변 2개

채택된 답변
+20 포인트
잉끼s
7년 전

lib/thumbnail.lib.php

</p>

<p>

            switch($crop_mode)

            {

                case 'center':

                    if($size[1] / $size[0] >= $ratio) {

                        $src_h = round($src_w * $ratio);

                        $src_y = round(($size[1] - $src_h) / 2);

                    } else {

                        $src_w = round($size[1] / $ratio);

                        $src_x = round(($size[0] - $src_w) / 2);

                    }

                    break;</p>

<p>                case 'right':

                    if($size[1] / $size[0] >= $ratio) {

                        $src_h = round($src_w * $ratio);

                        $src_y = round(($size[1] - $src_h) / 2);

                    } else {

                        $src_w = round($size[1] / $ratio);

                        $src_x = round($size[0] - $src_w);

                    }

                    break;

                default:

                    if($size[1] / $size[0] >= $ratio) {

                        $src_h = round($src_w * $ratio);

                    } else {

                        $src_w = round($size[1] / $ratio);

                    }

                    break;

            }

 </p>

<p>

위처럼 

case 'right':

...

 break; 

를 추가해주시고요.

 

list.skin.php

</p>

<p>$thumb = get_list_thumbnail($board['bo_table'], $list[$i]['wr_id'], $board['bo_gallery_width'], $board['bo_gallery_height'], false, true, 'right');</p>

<p>

get_list_thumbnail() 함수 중 맨 마지막에 'right'를 추가해보시기 바랍니다.

위대로 수정해보시기 바랍니다.

 

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

답변에 대한 댓글 3개

니킬
7년 전
아~ 답변해주셔서 정말 감사합니다. ㅠㅠ

list.skin.php 파일은
skin/board/gallery/list.skin.php

여기다 추가하시면 되는건가요? 테스트해보니 여전히 가운데 크롭되어 나오네요..;


[code]
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가

// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
add_stylesheet('<link rel="stylesheet" href="'.$board_skin_url.'/style.css" media="screen">', 0);

// 이미지 비율
$thumb_w = $board['bo_'.MOBILE_.'gallery_width'];
$thumb_h = $board['bo_'.MOBILE_.'gallery_height'];
$img_h = apms_img_height($thumb_w, $thumb_h); // 이미지 높이
$thumb = get_list_thumbnail($board['bo_table'], $list[$i]['wr_id'], $board['bo_gallery_width'], $board['bo_gallery_height'], false, true, 'right');

// 너비
$item_w = apms_img_width($board['bo_gallery_cols']);

// 간격
$gap_right = ($boset['gap_r'] == "") ? 15 : $boset['gap_r'];
$gap_bottom = ($boset['gap_b'] == "") ? 30 : $boset['gap_b'];

$ellipsis = (G5_IS_MOBILE) ? '' : ' class="ellipsis"';
$ellipsis = ($thumb_h > 0) ? $ellipsis : '';

$list_cnt = count($list);
?>
[/code]
잉기
7년 전
썸네일 삭제 후 다시 해보시거나 스킨 폴더를 다시 한번 확인해보시기 바랍니다.

테스트 해보았는데 정상적으로 작동합니다..

http://gnudev.cafe24.com/bbs/board.php?bo_table=gallery
니킬
7년 전
구문 잘못됐는지 일일 세번 확인해보고 썸네일 캐시 비우보고 해보니 여전히 가운데 나오네요..

다시 확인해보니 잘 나오네요~ 정말 감사드려요~

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

잉끼s
7년 전

get_list_thumbnail() 파일의 위치는 

for()문 안에 있어야 합니다.

 

다시 한번 위치 확인해보시기 바랍니다.

</p>

<p>

        <?php for ($i=0; $i<count($list); $i++) {</p>

<p>            $classes = array();</p>

<p>            $classes[] = 'gall_li';

            $classes[] = 'col-gn-'.$bo_gallery_cols;</p>

<p>            if( $i && ($i % $bo_gallery_cols == 0) ){

                $classes[] = 'box_clear';

            }</p>

<p>            if( $wr_id && $wr_id == $list[$i]['wr_id'] ){

                $classes[] = 'gall_now';

            }

         ?>

        <li class="<?php echo implode(' ', $classes); ?>">

            <div class="gall_box">

                <div class="gall_chk">

                <?php if ($is_checkbox) { ?>

                <label for="chk_wr_id_<?php echo $i ?>" class="sound_only"><?php echo $list[$i]['subject'] ?></label>

                <input type="checkbox" name="chk_wr_id[]" value="<?php echo $list[$i]['wr_id'] ?>" id="chk_wr_id_<?php echo $i ?>">

                <?php } ?>

                <span class="sound_only">

                    <?php

                    if ($wr_id == $list[$i]['wr_id'])

                        echo "<span class=\"bo_current\">열람중</span>";

                    else

                        echo $list[$i]['num'];

                     ?>

                </span>

                </div>

                <div class="gall_con">

                    <div class="gall_img">

                        <a href="<?php echo $list[$i]['href'] ?>">

                        <?php

                        if ($list[$i]['is_notice']) { // 공지사항  ?>

                            <span class="is_notice">공지</span>

                        <?php } else {

                            $thumb = get_list_thumbnail($board['bo_table'], $list[$i]['wr_id'], $board['bo_gallery_width'], $board['bo_gallery_height'], true, true, 'right');</p>

<p>                            if($thumb['src']) {

                                $img_content = '<img src="'.$thumb['src'].'" alt="'.$thumb['alt'].'" >';

                            } else {

                                $img_content = '<span class="no_image">no image</span>';

                            }</p>

<p>                            echo $img_content;

                        }

                         ?>

                        </a>

                    </div>

                    <div class="gall_text_href">

                        <?php

                        // echo $list[$i]['icon_reply']; 갤러리는 reply 를 사용 안 할 것 같습니다. - 지운아빠 2013-03-04

                        if ($is_category && $list[$i]['ca_name']) {

                         ?>

                        <a href="<?php echo $list[$i]['ca_name_href'] ?>" class="bo_cate_link"><?php echo $list[$i]['ca_name'] ?></a>

                        <?php } ?>

                        <a href="<?php echo $list[$i]['href'] ?>" class="bo_tit">

                            <?php echo $list[$i]['subject'] ?>

                            <?php if ($list[$i]['comment_cnt']) { ?><span class="sound_only">댓글</span><span class="cnt_cmt">+ <?php echo $list[$i]['wr_comment']; ?></span><span class="sound_only">개</span><?php } ?>

                            <?php

                            // if ($list[$i]['link']['count']) { echo '['.$list[$i]['link']['count']}.']'; }

                            // if ($list[$i]['file']['count']) { echo '<'.$list[$i]['file']['count'].'>'; }</p>

<p>                            if (isset($list[$i]['icon_new'])) echo rtrim($list[$i]['icon_new']);

                            if (isset($list[$i]['icon_hot'])) echo rtrim($list[$i]['icon_hot']);

                            //if (isset($list[$i]['icon_file'])) echo rtrim($list[$i]['icon_file']);

                            //if (isset($list[$i]['icon_link'])) echo rtrim($list[$i]['icon_link']);

                            if (isset($list[$i]['icon_secret'])) echo rtrim($list[$i]['icon_secret']);

                             ?>

                         </a>

                    </div>

                    <div class="gall_name">

                        <span class="sound_only">작성자 </span><?php echo $list[$i]['name'] ?>

                    </div>

                    <div class="gall_info">

                        <span class="sound_only">조회 </span><i class="fa fa-eye" aria-hidden="true"></i> <?php echo $list[$i]['wr_hit'] ?>

                        <?php if ($is_good) { ?><span class="sound_only">추천</span><strong><i class="fa fa-thumbs-o-up" aria-hidden="true"></i> <?php echo $list[$i]['wr_good'] ?></strong><?php } ?>

                        <?php if ($is_nogood) { ?><span class="sound_only">비추천</span><strong><i class="fa fa-thumbs-o-down" aria-hidden="true"></i> <?php echo $list[$i]['wr_nogood'] ?></strong><?php } ?>

                        <span class="gall_date"><span class="sound_only">작성일 </span><i class="fa fa-clock-o" aria-hidden="true"></i> <?php echo $list[$i]['datetime2'] ?></span>

                    </div>

                </div>

            </div>

        </li>

        <?php } ?>

        <?php if (count($list) == 0) { echo "<li class=\"empty_list\">게시물이 없습니다.</li>"; } ?></p>

<p>

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

답변에 대한 댓글 1개

니킬
7년 전
또 하나 문제를 생겼는데.. 파일첨부 아닌 외부이미지 링크를 가져올 때 잘려서 나오지 않고 여백 나오면서 전체적으로 보이네요..

게시글 본문에 html 모드로 전환해서 <img src="외부이미지 경로"> 지정했을 때..

외부이미지 서버에 저장하지 않고 썸네일없이 제대로 나오는 방법은 어떻게 해결하나요?

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

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

로그인