이미지 썸네일이 한가지로만 출력이 됩니다. 정보
이미지 썸네일이 한가지로만 출력이 됩니다.
본문
소스 원본은 아래와 같구요.
첨부파일 같이 나옵니다.
각각 사진이 하나씩 존재하구요. 이를 하나씩 출력해야 하는데;
하나만 쭈욱나와버리네요 (짜집기의 실패.. ㅠ)
급하게 필요한 부분인지라 ㅠㅠ
2천 포인트 올립니다. 좋은 해결책 부탁드립니다.
첨부파일 같이 나옵니다.
각각 사진이 하나씩 존재하구요. 이를 하나씩 출력해야 하는데;
하나만 쭈욱나와버리네요 (짜집기의 실패.. ㅠ)
급하게 필요한 부분인지라 ㅠㅠ
2천 포인트 올립니다. 좋은 해결책 부탁드립니다.
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
// 제목이 두줄로 표시되는 경우 이 코드를 사용해 보세요.
// <nobr style='display:block; overflow:hidden; width:000px;'>제목</nobr>
$thumb_width = "136"; //썸네일 가로길이
$thumb_height = "120"; //썸네일 세로길이
$thumb_quality = "100"; //퀼리티 100이하로 설정
$list_content = "200"; //내용길이
$data_path = $g4[path]."/data/file/$bo_table";
$thumb_path = $data_path.'/thumb';
@mkdir($thumb_path, 0707);
@chmod($thumb_path, 0707);
?>
<style>
.subheader {
font: Bold 1.2em Verdana, 'Trebuchet MS', Sans-serif;
color: #808080;
border-top: 1px solid #FFFFFF;
border-bottom: 1px solid #e1e1e1;
background-color:#FFFFFF;
}
.title_year {
width:15%;
margin-bottom:13px;
border-bottom: 1px solid #000000;
background-color:#FFFFFF;
}
div.item_text { color:#636363; width:100%; padding:0 10px 0 10px; margin-top:3px; }
div.item_text2 { color:#636363; padding:0 10px 10px; margin-top:10px; margin-bottom:5px; float:left;}
div.item_text strong { font-weight:bold; color:#000000; font-family:돋움; font-size:12px; }
.year_img { float:left; }
.year_text { padding:0 10px 30px 10px;}
</style>
<table width="<?=$width?>" align="center" cellpadding="0" cellspacing="0" border="0">
<tr><td height="5"></td></tr>
<tr><td>
<!-- 분류 셀렉트 박스, 게시물 몇건, 관리자화면 링크 -->
<div style="float:left;">
<!--
<form name="fcategory" method="get" style="margin:0px;">
<? if ($is_category) { ?>
<select name=sca onchange="location='<?=$category_location?>'+this.value;">
<option value=''>전체</option>
<?=$category_option?>
</select>
<? } ?>
</form>
-->
</div>
<div style="float:right;">
<? 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/btn_admin.gif" border='0' title="관리자" align="absmiddle"></a><?}?>
</div>
</td></tr>
<tr><td height="5"></td></tr>
<tr><td>
<!-- 제목 -->
<form name="fboardlist" method="post" style="margin:0;">
<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=''>
<?
//카테고리를 읽는다.
$sql = " SELECT bo_category_list FROM $g4[board_table] WHERE bo_table = '$bo_table' ";
$row = sql_fetch($sql);
$arr = explode("|", $row[bo_category_list]); // 구분자가 | 로 되어 있음
for ($i=0; $i<count($arr); $i++) { //카테고리 루프 시작
//각 카테고리 별로 글을 읽어와서 뿌려준다.
$his_year = trim($arr[$i]);
$img = "$g4[path]/data/file/$bo_table/".urlencode($list[$i][file][0][file]);
if (!file_exists($img) || !$list[$i][file][0][file])
$img = "$board_skin_path/img/photo_noimg.gif";
?>
<div class="subheader">
<div class="title_year">
<? if($bo_table) {
// $img = "<img src=$board_skin_path/img/year_".$his_year.".gif>";
$year = "<span style='font-size:18px;font-family:Arial;letter-spacing:-1px; color:#000000;'><strong><i>$his_year</i></strong></span>";
echo $year;
} // 연혁불러오기?>
</div>
</div>
<?
$sql1 = " SELECT wr_id,wr_subject,wr_content FROM $write_table WHERE ca_name = '$arr[$i]' ORDER BY wr_subject asc";
$row1 = mysql_query($sql1);
for ($j=0; $ca=mysql_fetch_array($row1); $j++) { //글별 루프 시작
//echo $ca['wr_subject']."<br>".$ca['wr_content']."<br><br>";
$his_date = $ca['wr_subject']; //날짜
$his_content = conv_content($ca['wr_content'],true); //내용
//해당 카테고리별 포함된 글들
//썸네일 생성
$thumfile = "";
$thumb = $thumb_path.'/'.$list[$i][wr_id];
// 썸네일 이미지가 존재하지 않는다면
if (!file_exists($thumb)) {
$file = $list[$i][file][0][path] .'/'. $list[$i][file][0][file];
// 업로드된 파일이 이미지라면
if (preg_match("/\.(jpg|gif|png)$/i", $file) && file_exists($file)) {
$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;
$rate = $thumb_width / $size[0];
$height = (int)($size[1] * $rate);
// 계산된 썸네일 이미지의 높이가 설정된 이미지의 높이보다 작다면
if ($height < $thumb_height)
// 계산된 이미지 높이로 복사본 이미지 생성
$dst = imagecreatetruecolor($thumb_width, $height);
else
// 설정된 이미지 높이로 복사본 이미지 생성
$dst = imagecreatetruecolor($thumb_width, $thumb_height);
imagecopyresampled($dst, $src, 0, 0, 0, 0, $thumb_width, $height, $size[0], $size[1]);
imagejpeg($dst, $thumb_path.'/'.$list[$i][wr_id], $thumb_quality);
chmod($thumb_path.'/'.$list[$i][wr_id], 0606);
} else { //게디터에서 삽입한 이미지 뽑자ㅠㅠ
$edit_img = $list[$i]['wr_content'];
if (eregi("data/cheditor4[^<>]*\.(gif|jp[e]?g|png|bmp)", $edit_img, $tmp)) { // data/cheditor------
$file = '../' . $tmp[0]; // 파일명
$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;
$rate = $thumb_width / $size[0];
$height = (int)($size[1] * $rate);
// 계산된 썸네일 이미지의 높이가 설정된 이미지의 높이보다 작다면
if ($height < $thumb_height)
// 계산된 이미지 높이로 복사본 이미지 생성
$dst = imagecreatetruecolor($thumb_width, $height);
else
// 설정된 이미지 높이로 복사본 이미지 생성
$dst = imagecreatetruecolor($thumb_width, $thumb_height);
imagecopyresampled($dst, $src, 0, 0, 0, 0, $thumb_width, $height, $size[0], $size[1]);
imagejpeg($dst, $thumb_path.'/'.$list[$i][wr_id], $thumb_quality);
chmod($thumb_path.'/'.$list[$i][wr_id], 0606);
}
}
}
?>
<div class="item_text">
<table cellspacing="0" cellpadding="0" border="0" width="100%">
<tr>
<td width="30"><? if ($is_checkbox) { ?><input type=checkbox name=chk_wr_id[] value="<?=$list[$i][wr_id]?>"><? }?></td>
<td><?
//이미지
if (file_exists($thumb))
$thumfile = "<img src='{$thumb}' border='0'>";
else
//이미지가 없으면
$thumfile="";
//이미지가 아니네
if(preg_match("/\.(swf|wma|asf)$/i","$file") && file_exists($file)){
$thumfile = "<script>doc_write(flash_movie('$file', 'flash$i', '$thumb_width', '$thumb_height', 'transparent'));</script>";
}
?>
<tr>
<? if ($thumfile) {// 썸네일 ?>
<td width=166 valign=top align=center class="gray8s"><a href='<?=$list[$i][href]?>'><?=$thumfile?></a></td>
</td>
<td width="150" align="right"><b><?=$his_date?></b></td>
<td style="padding-left:20px;">
<?=$his_content?> <? if ($is_admin == "super" || $is_admin == "group") { ?>
<a href='<?=$g4[path]?>/bbs/board.php?bo_table=<?=$bo_table?>&wr_id=<?=$ca['wr_id']?>'>[내용]</a>
<a href='<?=$g4[path]?>/bbs/write.php?bo_table=<?=$bo_table?>&w=u&wr_id=<?=$ca['wr_id']?>'>[수정]</a>
<a href="javascript:del('./delete.php?bo_table=<?=$bo_table?>&wr_id=<?=$ca[wr_id]?>&page=');">[삭제]</a>
<? } ?>
</td>
</tr>
</table>
</div>
<?
} //글별 루프 끝
?>
<br class='clear' />
<?
} //카테고리 루프 끝
?>
<? }?>
<br class='clear' />
</form>
<table cellspacing="0" cellpadding="0" width="100%">
<tr><td colspan="4" align="center" style="padding-bottom:10px;">
<? if ($prev_part_href) { echo "<a href='$prev_part_href'><img src='$board_skin_path/img/page_search_prev.gif' border='0' align=absmiddle title='이전검색'></a>"; } ?>
<?
// 기본으로 넘어오는 페이지를 아래와 같이 변환하여 이미지로도 출력할 수 있습니다.
//echo $write_pages;
$write_pages = str_replace("처음", "<img src='$board_skin_path/img/page_begin.gif' border='0' align='absmiddle' title='처음'>", $write_pages);
$write_pages = str_replace("이전", "<img src='$board_skin_path/img/page_prev.gif' border='0' align='absmiddle' title='이전'>", $write_pages);
$write_pages = str_replace("다음", "<img src='$board_skin_path/img/page_next.gif' border='0' align='absmiddle' title='다음'>", $write_pages);
$write_pages = str_replace("맨끝", "<img src='$board_skin_path/img/page_end.gif' border='0' align='absmiddle' title='맨끝'>", $write_pages);
//$write_pages = preg_replace("/<span>([0-9]*)<\/span>/", "$1", $write_pages);
$write_pages = preg_replace("/<b>([0-9]*)<\/b>/", "<b><span style=\"color:#4D6185; font-size:12px; text-decoration:underline;\">$1</span></b>", $write_pages);
?>
<?=$write_pages?>
<? if ($next_part_href) { echo "<a href='$next_part_href'><img src='$board_skin_path/img/page_search_next.gif' border='0' align=absmiddle title='다음검색'></a>"; } ?>
</td></tr>
<tr><td class="listBL" width="8" height="42"></td>
<td class="listBC" style="padding-top:3px;" height="42">
<!--
<form name="fsearch" method="get">
<input type="hidden" name="bo_table" value="<?=$bo_table?>">
<input type="hidden" name="sca" value="<?=$sca?>">
<select name="sfl">
<option value="wr_subject">제목</option>
<option value="wr_content">내용</option>
<option value="wr_subject||wr_content">제목+내용</option>
<option value="wr_name,1">글쓴이</option>
</select>
<input name="stx" class="ed" style='height:20px;' maxlength="10" itemname="검색어" required value='<?=$stx?>'>
<input type="image" src="<?=$board_skin_path?>/img/btn_search.gif" border='0' align="absmiddle">
</form>
-->
</td>
<td align="right" class="listBC" style="padding-bottom:3px;" height="42">
<? if ($list_href) { ?>
<a href="<?=$list_href?>"><img src="<?=$board_skin_path?>/img/btn_list.gif" align="absmiddle" border='0'></a>
<? } ?>
<? if ($is_checkbox) { ?>
<a href="javascript:select_delete();"><img src="<?=$board_skin_path?>/img/btn_select_delete.gif" align="absmiddle" border='0'></a>
<a href="javascript:select_copy('copy');"><img src="<?=$board_skin_path?>/img/btn_select_copy.gif" align="absmiddle" border='0'></a>
<a href="javascript:select_copy('move');"><img src="<?=$board_skin_path?>/img/btn_select_move.gif" align="absmiddle" border='0'></a>
<? } ?>
<? if ($write_href) { ?><a href="<?=$write_href?>"><img src="<?=$board_skin_path?>/img/btn_write.gif" align="absmiddle" border='0'></a><? } ?>
</td><td class="listBR" width="8">
</td></tr>
</table>
<!-- 검색 -->
</td></tr></table>
<script language="JavaScript">
if ('<?=$sca?>') document.fcategory.sca.value = '<?=$sca?>';
if ('<?=$stx?>') {
document.fsearch.sfl.value = '<?=$sfl?>';
if ('<?=$sop?>' == 'and')
document.fsearch.sop[0].checked = true;
if ('<?=$sop?>' == 'or')
document.fsearch.sop[1].checked = true;
} else {
document.fsearch.sop[0].checked = true;
}
</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=500, height=550, scrollbars=1");
f.sw.value = sw;
f.target = "move";
f.action = "./move.php";
f.submit();
}
</script>
<? } ?>
<!-- 게시판 목록 끝 -->
댓글 전체

110번째 라인 $thumb = $thumb_path.'/'.$list[$i][wr_id]; 를
$thumb = $thumb_path.'/'.$list[$j][wr_id]; 로 수정하세요
[$j] 아이를 제이로 변경 두개가 구분이 앙가네요
$thumb = $thumb_path.'/'.$list[$j][wr_id]; 로 수정하세요
[$j] 아이를 제이로 변경 두개가 구분이 앙가네요

답변을 주셔서 감사합니다. 우선 사진이 하나만 나오는 문제는 해결되었는데 본문의 사진과 썸네일의 사진이 서로 상이하게 나오는 문제가 생겼네요. 썸네일 원초적인 문제인지 아직 답을 못찾았습니다.
썸넬 폴더가서 썸넬파일 다 지우시고 해보세요~

다시 110번째 라인을
$thumb = $thumb_path.'/'.$ca[wr_id];
로 변경하세요
$thumb = $thumb_path.'/'.$ca[wr_id];
로 변경하세요

감사합니다. 이걸로 고치고 이미지가 나오지 않는 부분은 따로 글을 인클루드 시켜서 해결했습니다. 정말 감사합니다.!!