[급] 관리자님이 올리신 free_image 갤러리 스킨 > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

[급] 관리자님이 올리신 free_image 갤러리 스킨 정보

[급] 관리자님이 올리신 free_image 갤러리 스킨

본문

 
리스트에 보이는 썸네일이 원 이미지의 구석부분만 잘라져 보이는데요.
 
원본 이미지의 대부분 적어도 반 이상을 리스트의 썸네일로 보여주려면,
어디를 수정해야하는지요 ?
list.skin.phpskin.lib.php를 손봐야하는건가요 ?
 
 
list.skin.php
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
include_once("$board_skin_path/skin.lib.php");
if (!$board[bo_1]) alert("게시판 설정 : 여분 필드 1 에 목록에서 보여질 이미지의 폭(높이)을 설정하십시오. (픽셀 단위)");
if (!function_exists("imagecopyresampled")) alert("GD 2.0.1 이상 버전이 설치되어 있어야 사용할 수 있는 갤러리 게시판 입니다.");
if (!$board[bo_2]) {
    $board[bo_2] = "130x70";
    $sql = " update $g4[board_table] set bo_2 = '$board[bo_2]' where bo_table = '$bo_table' ";
    sql_query($sql);
}
list($img_width, $img_height) = explode("x", $board[bo_1]);
list($img2_width, $img2_height) = explode("x", $board[bo_2]);
$data_path = $g4[path]."/data/file/$bo_table";
$thumb_path = $data_path.'/thumb';
@mkdir($thumb_path, 0707);
@chmod($thumb_path, 0707);
$mod = $board[bo_gallery_cols];
$td_width = (int)(100 / $mod);
// 선택옵션으로 인해 셀합치기가 가변적으로 변함
$colspan = 5;
if ($is_category) $colspan++;
if ($is_checkbox) $colspan++;
if ($is_good) $colspan++;
if ($is_nogood) $colspan++;
// 제목이 두줄로 표시되는 경우 이 코드를 사용해 보세요.
// <nobr style='display:block; overflow:hidden; width:000px;'>제목</nobr>
?>
<!-- 가로 카테고리 시작 -->
<table border="0" cellpadding="0" cellspacing="0" width="100%">
    <tr>
        <td width="100%" height="10" align="left" valign="top">
        </td>
    </tr>
    <tr>
        <td width="100%" align="left" valign="top">
            <table border="0" cellpadding="1" cellspacing="0" width="100%" bordercolor="#EEEFF0" bordercolordark="white" bordercolorlight="#EEEFF0">
                <tr>
                   <td width="100%" align="left" valign="top" rowspan="2">
                   <?=latest('latest_all', $bo_table, 10,33) ?>
                    </td>
                </tr>               
            </table>
        </td>
    </tr>
</table>
<br>
<!-- 가로 카테고리 끝 -->
<!-- 게시판 목록 시작 -->
<table width="<?=$width?>" align=center cellpadding=0 cellspacing=0><tr><td>
<!-- 분류 셀렉트 박스, 게시물 몇건, 관리자화면 링크 -->
<table width="100%" cellspacing="0" cellpadding="0">
<tr height="25">
    <? if ($is_category) { ?><form name="fcategory" method="get"><td width="50%"><select name=sca onchange="location='<?=$category_location?>'+this.value;"><option value=''>전체</option><?=$category_option?></select>
    <?=subject_sort_link('wr_good', $qstr2, 1)?>추천순</a>
    |
    <?=subject_sort_link('wr_hit', $qstr2, 1)?>조회순</a>
    |
    <?=subject_sort_link('wr_comment', $qstr2, 1)?>코멘트순</a>
    <? if ($is_checkbox) { ?> <input onclick="if (this.checked) all_checked(true); else all_checked(false);" type=checkbox><?}?>
    </td></form>
    <? } ?>
    <td align="right">
        게시물 <?=number_format($total_count)?>건
        <? if ($rss_href) { ?><a href='<?=$rss_href?>'><img src='<?=$board_skin_path?>/img/btn_rss.gif' border=0 align=absmiddle></a><?}?>
        <? if ($admin_href) { ?><a href="<?=$admin_href?>"><img src="<?=$board_skin_path?>/img/admin_button.gif" title="관리자" width="63" height="22" border="0" align="absmiddle"></a><?}?></td>
</tr>
<tr><td height=5></td></tr>
</table>
<form name="fboardlist" method="post" style="margin:0px;">
<input type="hidden" name="bo_table" value="<?=$bo_table?>">
<input type="hidden" name="sfl"  value="<?=$sfl?>">
<input type="hidden" name="stx"  value="<?=$stx?>">
<input type="hidden" name="spt"  value="<?=$spt?>">
<input type="hidden" name="page" value="<?=$page?>">
<input type="hidden" name="sw"   value="">
<table width=100% cellpadding=0 cellspacing=0>
<tr><td colspan='<?=$mod?>' height=2 bgcolor=#B0ADF5></td></tr>
<tr>
<?
for ($i=0; $i<count($list); $i++) {
    if ($i && $i%$mod==0)
        echo "</tr><tr>";
    $img = "<img src='$board_skin_path/img/noimage.gif' border=0 title='이미지 없음'>";
    $thumb = $thumb_path.'/'.$list[$i][wr_id];
    $file = $list[$i][file][0][path] .'/'. $list[$i][file][0][file];
    $exif = @exif_read_data($file);
    if (!file_exists($thumb)) {
        if (preg_match("/\.(jpg|gif|png)$/i", $file) && file_exists($file)) {
            $thumb_file = "{$thumb_path}/{$list[$i][wr_id]}";
            $size = @getimagesize($file);
            if ($size[2] == 1)
                $src = imagecreatefromgif($file);
            else if ($size[2] == 2)
                $src = imagecreatefromjpeg($file);
            else if ($size[2] == 3)
                $src = imagecreatefrompng($file);
            else
                continue;
            if ($size[0] > $size[1]) {
                $rate = $board[bo_1] / $size[0];
                $height = (int)($size[1] * $rate);
                $img_width = $board[bo_1];
                $img_height = $height;
            } else {
                $rate = $board[bo_1] / $size[1];
                $width = (int)($size[0] * $rate);
                $img_width = $width;
                $img_height = $board[bo_1];
            }
            createThumb2($img_width, $img_height, $file, $thumb, $list[$i][mb_id]);
           
            $thumb_file = "{$thumb_path}/{$list[$i][wr_id]}_{$img2_width}x{$img2_height}";
            createThumb($img2_width, $img2_height, $file, $thumb_file);
            $sql = " update $write_table set wr_10 = '$exif[Model]' where wr_id = '{$list[$i][wr_id]}' ";
            sql_query($sql);
        }
    }
    $thumb_file = "{$thumb_path}/{$list[$i][wr_id]}_{$img2_width}x{$img2_height}";
    if (file_exists($thumb_file)) {
        $size = getimagesize($thumb_file);
        $img = "<div style='width:{$size[0]}px; border:1px solid #cccccc;background:#EEEEEE;padding:4px;'><a href=\"{$list[$i][comment_href]}\"><img src='$thumb_file' border=0></a></div>";
    }
    $style = "";
    //if ($list[$i][icon_new]) $style = " style='font-weight:bold;' ";
    //$subject = "<span $style>".cut_str($list[$i][subject],20)."</span>";
    $subject = "<span $style>{$list[$i][subject]}</span>";
    $comment_cnt = "";
    if ($list[$i][comment_cnt])
        $comment_cnt = " <a href=\"{$list[$i][comment_href]}\"><span class='commentFont'>{$list[$i][comment_cnt]}</span></a>";
    $list[$i][name] = preg_replace("/<img /", "<img style='display:none;' ", $list[$i][name]);
    $list[$i][name] = preg_replace("/> <span/", "><span", $list[$i][name]);
    $list[$i][name] = preg_replace("/class='member'/", "", $list[$i][name]);
    //echo "<td width='{$td_width}%' valign=bottom style='word-break:break-all;padding-left:10px;padding-right:10px;'>";
    echo "<td width='{$td_width}%' valign=bottom style='word-break:break-all;padding:0 10 0 10px;'>";
    echo "<table align=center>";
    echo "<tr><td height=5></td></tr>";
    echo "<tr><td align=center><a href='{$list[$i][href]}'>$img</a></td></tr>";
    echo "<tr><td align=center class=lh>";
    echo "<nobr style='display:block;overflow:hidden;width:145px;'><span class=small><a href='{$list[$i][ca_name_href]}'>[{$list[$i][ca_name]}]</a></span> ";
    echo "<a href='{$list[$i][href]}'>$subject</a>{$comment_cnt}</nobr>";
    //echo "<span class=small><font color=gray>";
    //echo "<span class='lsm'><a href='$g4[bbs_path]/board.php?bo_table=$bo_table&sca=$sca&sfl=wr_10&stx=$exif[Model]&sop=and'>";
    //echo "$exif[Model]</a></span>";
    //echo "<br><span class='lsm'>촬영 : $exif[DateTimeOriginal]</span>";
    //echo "<br>조회 ({$list[$i][wr_hit]}) / 추천 ({$list[$i][wr_good]})";
    //echo "</font></span>";
    echo "</td></tr>";
    //if ($is_category) echo "<tr><td align=center><span class=small></span></td></tr>";
    //echo "<tr><td align=center>".$cls." {$list[$i][name]}</td></tr>";
    //echo "<tr><td align=center><span class=small>{$list[$i][name]}</span></td></tr>";
    if ($is_checkbox) echo "<tr><td align=center><input type=checkbox name=chk_wr_id[] value='{$list[$i][wr_id]}'></td></tr>";
    echo "<tr><td height=10></td></tr>";
    echo "</table></td>\n";
}
// 나머지 td
$cnt = $i%$mod;
if ($cnt)
    for ($i=$cnt; $i<$mod; $i++)
        echo "<td width='{$td_width}%'> </td>";
?>
</tr>
<tr><td colspan=<?=$mod?> height=1 bgcolor=#E7E7E7></td></tr>
<? if (count($list) == 0) { echo "<tr><td colspan='$mod' height=100 align=center>게시물이 없습니다.</td></tr>"; } ?>
<tr><td colspan=<?=$mod?> bgcolor=#5C86AD height=1>
</table>
</form>
<!-- 페이지 -->
<table width="100%" cellspacing="0" cellpadding="0">
<tr>
    <td width="100%" align="center" height=30 valign=bottom>
        <? if ($prev_part_href) { echo "<a href='$prev_part_href'><img src='$board_skin_path/img/btn_search_prev.gif' border=0 align=absmiddle title='이전검색'></a>"; } ?>
        <?
        // 기본으로 넘어오는 페이지를 아래와 같이 변환하여 이미지로도 출력할 수 있습니다.
        //echo $write_pages;
        $write_pages = str_replace("처음", "<img src='$board_skin_path/img/begin.gif' border='0' align='absmiddle' title='처음'>", $write_pages);
        $write_pages = str_replace("이전", "<img src='$board_skin_path/img/prev.gif' border='0' align='absmiddle' title='이전'>", $write_pages);
        $write_pages = str_replace("다음", "<img src='$board_skin_path/img/next.gif' border='0' align='absmiddle' title='다음'>", $write_pages);
        $write_pages = str_replace("맨끝", "<img src='$board_skin_path/img/end.gif' border='0' align='absmiddle' title='맨끝'>", $write_pages);
        $write_pages = preg_replace("/<span>([0-9]*)<\/span>/", "<b><font style=\"font-family:돋움; font-size:9pt; color:#797979\">$1</font></b>", $write_pages);
        $write_pages = preg_replace("/<b>([0-9]*)<\/b>/", "<b><font style=\"font-family:돋움; font-size:9pt; color:orange;\">$1</font></b>", $write_pages);
        ?>
        <?=$write_pages?>
        <? if ($next_part_href) { echo "<a href='$next_part_href'><img src='$board_skin_path/img/btn_search_next.gif' border=0 align=absmiddle title='다음검색'></a>"; } ?>
    </td>
</tr>
</table>
<!-- 버튼 링크 -->
<form name=fsearch method=get style="margin:0px;">
<input type=hidden name=bo_table value="<?=$bo_table?>">
<input type=hidden name=sca      value="<?=$sca?>">
<table width=100% cellpadding=0 cellspacing=0>
<tr>
    <td width="50%" height="40">
        <? if ($list_href) { ?><a href="<?=$list_href?>"><img src="<?=$board_skin_path?>/img/btn_list.gif" border="0"></a><? } ?>
        <? if ($write_href) { ?><a href="<?=$write_href?>"><img src="<?=$board_skin_path?>/img/btn_write.gif" border="0"></a><? } ?>
        <? if ($is_checkbox) { ?>
            <a href="javascript:select_delete();"><img src="<?=$board_skin_path?>/img/btn_select_delete.gif" border="0"></a>
            <a href="javascript:select_copy('copy');"><img src="<?=$board_skin_path?>/img/btn_select_copy.gif" border="0"></a>
            <a href="javascript:select_copy('move');"><img src="<?=$board_skin_path?>/img/btn_select_move.gif" border="0"></a>
        <? } ?>
    </td>
    <td width="50%" align="right">
        <select name=sfl>
            <option value='wr_subject||wr_content'>제목+내용</option>
            <option value='wr_subject'>제목</option>
            <option value='wr_content'>내용</option>
            <option value='mb_id'>회원아이디</option>
            <option value='wr_name'>이름</option>
        </select><input name=stx maxlength=15 size=10 itemname="검색어" required value="<?=$stx?>"><select name=sop>
            <option value=and>and</option>
            <option value=or>or</option>
        </select>
        <input type=image src="<?=$board_skin_path?>/img/search_btn.gif" border=0 align=absmiddle></td>
</tr>
</table>
</form>
</td></tr></table>
<script language="JavaScript">
if ("<?=$sca?>") document.fcategory.sca.value = "<?=$sca?>";
if ("<?=$stx?>") {
    document.fsearch.sfl.value = "<?=$sfl?>";
    document.fsearch.sop.value = "<?=$sop?>";
}
</script>
<? if ($is_checkbox) { ?>
<script language="JavaScript">
function all_checked(sw)
{
    var f = document.fboardlist;
    for (var i=0; i<f.length; i++) {
        if (f.elements[i].name == "chk_wr_id[]")
            f.elements[i].checked = sw;
    }
}
function check_confirm(str)
{
    var f = document.fboardlist;
    var chk_count = 0;
    for (var i=0; i<f.length; i++) {
        if (f.elements[i].name == "chk_wr_id[]" && f.elements[i].checked)
            chk_count++;
    }
    if (!chk_count) {
        alert(str + "할 게시물을 하나 이상 선택하세요.");
        return false;
    }
    return true;
}
// 선택한 게시물 삭제
function select_delete()
{
    var f = document.fboardlist;
    str = "삭제";
    if (!check_confirm(str))
        return;
    if (!confirm("선택한 게시물을 정말 "+str+" 하시겠습니까?\n\n한번 "+str+"한 자료는 복구할 수 없습니다"))
        return;
    f.action = "./delete_all.php";
    f.submit();
}
// 선택한 게시물 복사 및 이동
function select_copy(sw)
{
    var f = document.fboardlist;
    if (sw == "copy")
        str = "복사";
    else
        str = "이동";
                      
    if (!check_confirm(str))
        return;
    var sub_win = window.open("", "move", "left=50, top=50, width=396, height=550, scrollbars=1");
    f.sw.value = sw;
    f.target = "move";
    f.action = "./move.php";
    f.submit();
}
</script>
<? } ?>
<!-- 게시판 목록 끝 -->
 
 
 
 
 
skin.lib.php
 
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
if (!function_exists("createThumb")) {
    // 원본 이미지를 넘기면 비율에 따라 썸네일 이미지를 생성함
    function createThumb($imgWidth, $imgHeight, $imgSource, $imgThumb='') {
        if (!$imgThumb)
            $imgThumb = $imgSource;
        //@unlink($imgSource); // 원본 이미지 파일명
        //echo $imgSource; exit;
        $size = getimagesize($imgSource);
        if ($size[2] == 1)
            $source = imagecreatefromgif($imgSource);
        else if ($size[2] == 2)
            $source = imagecreatefromjpeg($imgSource);
        else if ($size[2] == 3)
            $source = imagecreatefrompng($imgSource);
        else
            return 0;
        $rate = $imgWidth / $size[0];
        $height = (int)($size[1] * $rate);
        if ($size[0] < $imgWidth || $size[1] < $imgHeight) {
            $xWidth = $imgWidth;
            $xHeight = $imgHeight;
            $height = $imgHeight;
        } else {
            $xWidth = $size[0];
            $xHeight = $size[1];
        }
        $target = @imagecreatetruecolor($imgWidth, $imgHeight);
        $Thumb_BG = @imagecolorallocate($target, 255, 0, 0); // 썸네일 배경 - 빨강
        @imagefilledrectangle($target, 0, 0, $imgWidth, $imgHeight, $Thumb_BG);
       
//@imagecopyresampled($source, $source, 0, 0, 0, 0, $imgWidth, $height, $xWidth, $xHeight);
       
//@imagecopy($target, $source, 0, 0, 0, 0, $imgWidth, $imgHeight);
        @imagecopy($target, $source, 0, 0, 0, 0, $size[0], $size[1]);
        @imagejpeg($target, $imgThumb, 100);
        @chmod($imgThumb, 0606); // 추후 삭제를 위하여 파일모드 변경
    }
}
// 원본 이미지를 넘기면 비율에 따라 썸네일 이미지를 생성함
function createThumb2($imgWidth, $imgHeight, $imgSource, $imgThumb='', $mb_id) {
    global $g4;
    if (!$imgThumb)
        $imgThumb = $imgSource;
    $size = getimagesize($imgSource);
    if ($size[2] == 1)
        $source = imagecreatefromgif($imgSource);
    else if ($size[2] == 2)
        $source = imagecreatefromjpeg($imgSource);
    else if ($size[2] == 3)
        $source = imagecreatefrompng($imgSource);
    else
        return 0;
    $rate = $imgWidth / $size[1];
    $height = (int)($size[1] * $rate);
    $target = @imagecreatetruecolor($imgWidth, $imgHeight);
   
//@imagecolorallocate($source, 255, 255, 255);
    @imagecopyresampled($source, $source, 0, 0, 0, 0, $imgWidth, $height, $size[0], $size[1]);
    @imagecopy($target, $source, 0, 0, 0, 0, $imgWidth, $imgHeight);
    //$white = imagecolorallocate($target, 255, 255, 255);
    $white = imagecolorallocate($target, 150, 150, 150);
    $black = imagecolorallocate($target, 100, 100, 100);
    $margin=0;
    $n=0;
    for ($y=5;$y<$imgHeight;$y+=70) {
        for ($x=5;$x<$imgWidth;$x+=120) {
            $string = ($n%2) ? "sir.co.kr" : $mb_id;
            $color = ($n%2) ? $white : $black;
            imagestring($target, 1, $x+$margin, $y, $string, $color);
            $n++;
        }
        $margin+=5;
    }
   
//@imagettftext($target, 20, 0, 10, 20, $white, "$g4[path]/img/arialbd.ttf", "sir.co.kr");
    /*
    $font=ImagePsLoadFont("$g4[path]/img/cibt____.pfb");
    ImagePsText($target, "Testing... It worked!", $font, 32, $white, $white, 32, 32);
    ImagePsFreeFont($font);
    */
    @imagejpeg($target, $imgThumb, 100);
    @chmod($imgThumb, 0606); // 추후 삭제를 위하여 파일모드 변경
}
?>

댓글 전체

skin.lib.php 파일이 관리자님이 올리신 스킨의 파일이 아니네요..^^
위 소스는 이미지 파일의 한쪽귀퉁이만 섬네일로 만들더군요..

관리자님이 올리신 스킨으로 사용하시면 해결됩니다..^^
ㅜㅜ 관리자님이 올려주신 스킨의 소스 맞는데요... 아닌가요 ?

아니라면, 관리자님이 올려주신 스킨 삭제된 듯 한데,
skin.lib.php 파일 좀 올려주실 수 있겠나요 ?
전체 66,554 |RSS
그누4 질문답변 내용 검색

회원로그인

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