작은 썸네일이 수정시 안바뀝니다.문의드립니다.
본문
작은 썸네일이 수정시 안바뀝니다.문의드립니다.
균이 님이 공개해주신 스킨입니다.
그누보드 5용으로 수정후 처음에 글쓸때는 이미지가 잘들어갑니다. 이미지 수정을 누르면 위 큰이미지는 바뀌는데
아래 작은이미지는 바뀌지 않습니다.
이미지 삭제후 다시 다른이미지를 올려도 예전이미지가 다시 올라옵니다.
어디를 손봐야할지 모르겠습니다.
http://sir.co.kr/bbs/board.php?bo_table=g4_skin&wr_id=110744&sca=%EA%B0%A4%EB%9F%AC%EB%A6%AC&sfl=wr_subject%7C%7Cwr_content&stx=%EB%B7%B0%ED%8E%98%EC%9D%B4%EC%A7%80%EC%9A%A9
view_img_contents.php
소스는 다음과 같습니다.
$g4[path] ="..";
$board_skin_path= "../skin/board/".$board[bo_skin];
$imgPath="$g4[path]/data/file/$bo_table";
$view_width=260; $view_height=200; // 보여질 큰 이미지 가로, 세로
//$resizex=800; $resizey=450; //원본 큰 이미지 리사이징 가로,세로(리사이징 하지않으면 주석처리)
$thumbx=40; $thumby=40; //썸네일 가로, 세로
$thumbViewNum=4; //보여질 리스트용 썸네일 갯수
$thumb_div_width=($thumbViewNum * ($thumbx+9))."px";;
$thumbNum=$view[file][count];
?>
<style type='text/css'>
.thumb{padding:2px; border:1px solid #ccc; cursor:pointer;}
.pre_next{font:bold 40pt 굴림;color:#ccc; cursor:pointer;}
.preBtnOver{font:bold 40pt 굴림;color:#FF854A; cursor:pointer;}
#orgdiv{ width:<?=$view_width?>px; height:<?=$view_height?>px; overflow:hidden; z-index:10;
text-align:center; cursor:pointer; background:#ffffff; position:relative;}
.thumbpre_next{font:bold 20pt 굴림;color:#0067CE; cursor:pointer;}
.thumbBtnOver{font:bold 20pt 굴림;color:#FF854A; cursor:pointer;}
#img_td{border:1px solid #cdcdcd; background:#ffffff;}
#btn_td, #thum_td{border:1px solid #cdcdcd; padding:5px; background:#eaeaea;}
#btn_td a:link, a:hover, a:visited{color:#004080}
</style>
<div style="width:100px; height:20px; "></div>
<b style="color: rgb(187, 0, 32); font-family: 나눔고딕, NanumGothic, sans-serif; font-size: 19px; line-height: 28px;">사진보기</b>
<table style="margin-left:-1px; margin-top:20px;" width="320" align="center" cellpadding="0" cellspacing="1" border='0'>
<tr>
<td align='center' width="100%" height='<?=($view_height+30)?>' id='img_td'><!-- 큰 이미지-->
<?if($view[file][count]){?>
<table align="center" cellpadding="0" cellspacing="0" border="0" width='100%' height='100%'>
<tr><td width='15' class='pre_next' onmousedown="pre_view(1)" onmouseover="this.className='preBtnOver';" onmouseout="this.className='pre_next';"><img src="/skin/board/ts/img/hwa.gif" width="40" height="33" /></td>
<td align="center"><div id="orgdiv"><img id="orgmg" onclick="pop_view(this)"></div></td>
<td width='15' class='pre_next' onmousedown="pre_view(2)" onmouseover="this.className='preBtnOver';" onmouseout="this.className='pre_next';"><img src="/skin/board/ts/img/hwa1.gif" width="40" height="33" /></td>
</tr></table>
<?}else echo "<div style='color:#666666'>< 등록된 이미지가 없습니다 ></div>";?>
</td></tr>
<tr>
<td align="center" id='thum_td'><!--썸네일-->
<table align="center" cellpadding="0" cellspacing="1" border="0">
<tr>
<?if($thumbNum>$thumbViewNum){?>
<td width='40' class='thumbpre_next' onmousedown="thumbpre_view(1)" onmouseover="this.className='thumbBtnOver';" onmouseout="this.className='thumbpre_next';" align='center'><img src="/skin/board/ts/img/oneleft.gif" width="20" height="19" /> </td>
<?}?>
<td align='center'>
<?if($thumbNum>$thumbViewNum){?>
<div style='position:relative;overflow:hidden;width:<?=$thumb_div_width?>; height:<?=($thumby+10)?>px;' id='thumDivk'>
<div style='position:absolute;top:0; left:0; text-align:center;' id='thumDivk2'>
<?}?>
<table align="center" cellpadding="0" cellspacing="3" border="0"><tr>
<? $h=-1;
for($i=1;$i<$view[file][count]; $i++){
if(!$view[file][$i][view]){$thumbNum--; continue; }
$thum_img="$imgPath/thumbs/{$view[wr_id]}_{$i}.jpg";
$h++;
//큰 이미지 리사이즈
if($resizex && $resizey && ($view[file][$i][image_width]>$resizex || $view[file][$i][image_height]>$resizey) ){
$ret_wh= image_resizetg($view[file][$i][file], $resizex, $resizey, $bo_table, $view[wr_id], $i);
if($ret_wh[0] && $ret_wh[1]){
$view[file][$h][image_width]=$ret_wh[0]; $view[file][$h][image_height]=$ret_wh[1];
}
}
//썸네일 만들기
if(!file_exists($thum_img))
tg_thumb($view[file][$i][file],$thumbx, $thumby, $bo_table, $view[wr_id], $i );
?>
<td class='thumb' align='center' onmouseover="over_cell(<?=$h?>, this)" onmouseout="out_cell(<?=$h?>,this)" onmousedown="view_image(<?=$h?>)" id="thumTD<?=$h?>"><img src="<?=$thum_img?>" ></td>
<?}?>
</tr></table>
<?if($thumbNum>$thumbViewNum){?>
</div></div>
<?}?>
</td>
<?if($thumbNum>$thumbViewNum){?>
<td width='40' class='thumbpre_next' onmousedown="thumbpre_view(2)" onmouseover="this.className='thumbBtnOver';" onmouseout="this.className='thumbpre_next';" align='center'><img src="/skin/board/ts/img/oneright.gif" width="20" height="19" /></td>
<?}?>
</tr></table>
</td></tr>
</table>
<script src="<?=$board_skin_path?>/jquery-ui.min.js" type="text/javascript"></script>
<script type="text/javascript">
userAgent = navigator.userAgent.toLowerCase();
chrom= /chrom/.test(userAgent);
imgSize=new Array();
<? $data=''; $deli=''; $h=-1;
for($k=1; $k<$view[file][count]; $k++){ if(!$view[file][$k][view]) continue;
$data.=$deli.$view[file][$k][file]; $deli="|"; $h++;
echo "imgSize[$h]=\"{$view[file][$k][image_width]}|{$view[file][$k][image_height]}\";";
}
?>
Skin_Path="<?=$board_skin_path?>";
viewSize=<?=$view_width?>;
viewSizeH=<?=$view_height?>;
data="<?=$data?>";
imgPath="<?=$imgPath?>";
temp=data.split("|");
var imgObj= document.getElementById('orgmg');
var current=0;
var objk;
var thumbViewNum=<?=$thumbViewNum?>;
var cNum=0;
var page= Math.ceil(temp.length/thumbViewNum)
var eek=(<?=$thumbx?>*1+9)*thumbViewNum;
var movek;
var preTD=0;
$(document).ready(function(){ if(!data) return;
preload_Image=new Array();
for(i=0; i<temp.length; i++){
preload_Image[i] = new Image();
preload_Image[i].src=imgPath+"/"+temp[i];
if(i==0){ imgObj.src=preload_Image[0].src
orgww= imgSize[0].split('|');
if(orgww[0]> viewSize) imgObj.width= viewSize;
}
}
objk=document.getElementById("orgdiv");
if(orgww[1]<parseInt(viewSizeH)) objk.style.height=orgww[1]+'px';
$('#thumTD0').css('backgroundColor','#FF0000');
});
function pop_view(obj){
pww=screen.width; phh=screen.height-25;
opt="width="+pww+",height="+phh;
window.open( Skin_Path+"/image_view.html",'',opt);
}
var c_old=0;
function pre_view(vv){ if(!data) return;
if(vv==1){ current--; if(current<0) current=temp.length-1; }
else{current++; if(current>temp.length-1) current=0; }
view_image(current);
for(h=0; h<temp.length; h++) document.getElementById('thumTD'+h).style.backgroundColor='';
document.getElementById('thumTD'+current).style.backgroundColor='#FF0000';
ccp=Math.floor(current/thumbViewNum)
if(ccp!=cNum){cNum=ccp; cmovek=ccp*eek*-1; $("#thumDivk2").animate({left: cmovek+'px'}, 1000); }
c_old=current;
}
var effectk=new Array( "fade","explode","explode");
var rnd;
var selectedEffect;
var Rnd=0;
var hhk;
function view_image(vv){
sizek=imgSize[vv].split('|');
current=vv;
///////////////////////////////
hhk= sizek[1]<=viewSizeH? sizek[1] : viewSizeH;
objk.style.height=hhk+'px';
objk.style.width=viewSize+"px";
selectedEffect="fade";
options = {}; ani_time=400;
$('#orgdiv').effect( selectedEffect, options, ani_time, callback );
}
function callback() {
imgObj.src=preload_Image[current].src;
sizek=imgSize[current].split('|');
objk.style.left='0px';
var Rd2=Math.round(Math.random()) %2;
if(Rd2 ==0 || chrom) $('#orgdiv').fadeIn("slow");
else $('#orgdiv').slideDown("slow");
imgObj.width= sizek[0]> viewSize? viewSize: sizek[0];
}
function over_cell(num, obj){
document.getElementById('thumTD'+current).style.backgroundColor='';
document.getElementById('thumTD'+c_old).style.backgroundColor='';
document.getElementById('thumTD'+preTD).style.backgroundColor='';
obj.style.backgroundColor="#FF0000";
c_old=preTD=num;
}
function out_cell(num, obj){
if(current!=num) obj.style.background='';
document.getElementById('thumTD'+current).style.backgroundColor='#FF0000';
}
function thumbpre_view(vv){
if(vv==1){ cNum--; if(cNum<0) cNum=page-1; }
else{cNum++; if(cNum>page-1) cNum=0; }
movek=-1*cNum*eek;
$("#thumDivk2").animate({left: movek+'px' }, 1000);
}
</script>
답변 3
스킨폴더에 write_update.head.skin.php를 만들고 아래 내용을 넣으면
이미지가 수정/삭제 되면 썸네일은 자동으로 삭제 되어 새로운 썸네일을 만듭니다
<?
$g4[path] = "..";
?>
새로고침을 하거나 관리자 기능에서 썸네일 일괄삭제를 해보시거나...
프로그램 구조상 ./data/file/게시판명/이미지파일 을 썸네일로 추출하여 ./data/file/게시판명/thumb/게시물id_파일번호 로 저장하고 해당 파일명이 있으면 썸네일을 다시 생성하지 않습니다.