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

이미지 없는 게시물일경우 ......

http://timestkd.cafe24.com/bbs/board.php?bo_table=news

이미지가 없는 게시물일경우 no이미지로 카메라 이미지가 나오는데요.
그냥 이미지 없는 게시물은 이미지가 안나오고 이미지 공간까지 그냥 제목과 내용이 나왔으면 하는데요...
어덯게 해야 할까요?

<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가


if ($board[bo_1]) {
$img_width = $board[bo_1];
} else $img_width = 115; // 가로사이즈 기본 - 여분필드1에 세로사이즈 (최대 120 이하) 조절
if ($board[bo_2]) {
$img_height = $board[bo_2];
} else $img_height = 85; // 세로사이즈 기본 - 여분필드2에 세로사이즈 조절
if ($board[bo_3]) {
$img_quality = $board[bo_3];
} else $img_quality = 100; // 퀄리티 기본 - - 여분필드3에 퀄리티 조절
$list_content = "150"; //내용길이

if (!function_exists("imagecopyresampled")) alert("GD 2.0.1 이상 버전이 설치되어 있어야 사용할 수 있는 갤러리 게시판 입니다.");

$data_path = $g4[path]."/data/file/$bo_table";
$thumb_path = $data_path.'/thumb';

@mkdir($thumb_path, 0707);
@chmod($thumb_path, 0707);


// 선택옵션으로 인해 셀합치기가 가변적으로 변함
$colspan = 7;

//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>
?>

<style>
.board_top { clear:both; }

.board_list { clear:both; width:100%; table-layout:fixed; margin:5px 0 0 0; }
.board_list th { font-weight:normal; font-size:11px; }
.board_list th { background:url(<?=$board_skin_path?>/img/title_bg.gif) repeat-x; }
.board_list th { white-space:nowrap; height:34px; overflow:hidden; text-align:center; }
.board_list th { border-top:0px solid #ddd; border-bottom:0px solid #ddd; }

.board_list tr.bg0 { background-color:#fafafa; }
.board_list tr.bg1 { background-color:#ffffff; }

.board_list td { padding:.3em; }
.board_list td { border-bottom:0px solid #ddd; }
.board_list td.num { color:#323232; font:normal 9px tahoma; text-align:center; }
.board_list td.checkbox { text-align:center; }
.board_list td.img { text-align:center; }
.board_list td.subject { overflow:hidden; font-family:'Malgun Gothic',Tahoma,굴림; font-size:13pt; font-weight:bold; color:#888;}
.board_list td.name { padding:0 0 0 10px; font:normal 9px tahoma; color:#707070; text-align:left; }
.board_list td.good { font:normal 9px tahoma; color:#3b5998; text-align:center; }
.board_list td.nogood { font:normal 9px tahoma; color:#ff6600; text-align:center; }

.board_list .notice { font-weight:normal; }
.board_list .current { font:bold 11px tahoma; color:#E15916; }
.board_list .comment { font-family:Tahoma; font-size:10px; color:#EE5A00; }

.board_button { clear:both; margin:10px 0 0 0; }

.board_page { clear:both; text-align:center; margin:3px 0 0 0; }
.board_page a:link { color:#777; }

.board_search { text-align:center; margin:10px 0 0 0; }
.board_search .stx { height:21px; border:1px solid #9A9A9A; border-right:1px solid #D8D8D8; border-bottom:1px solid #D8D8D8; }


.board_numbering { line-height:30px; margin-top:10px; margin-bottom:5px; text-align:center; font-size: 12px; font-family:tahoma;}
.board_numbering a { text-decoration:none; background-color:#f0f0f0; border:1px solid #ccc; padding:3px 6px 3px 6px; color:#545454;}
.board_numbering a:hover { color:#fff; text-decoration:none; background-color:#3b5998; }
.board_numbering_active {color:#fff; font-weight:bold; border:1px solid #3b5998; padding:3px 6px 3px 6px; background-color:#3b5998; text-decoration:none; background-color:#3b5998;}
</style>

<!-- 게시판 목록 시작 -->
<table width="<?=$width?>" align="center" cellpadding="0" cellspacing="0"><tr><td>

<!-- 분류 셀렉트 박스, 게시물 몇건, 관리자화면 링크 -->
<div class="board_top">
<div style="padding:20px 0 0 10px;">
<span style="color:#9a9a9a; font:11px 돋움,tahoma; color:#707070;">
<form name="fcategory" method="get" style="margin:0px;">
<?
$arr = array();
$arr[] = "<a href='?bo_table=$bo_table'>전체</a> ($board[bo_count_write])";
$ex = explode("|", $board[bo_category_list]);
for ($i=0; $i<count($ex); $i++) {
$sql = " select count(*) as cnt from $write_table where ca_name = '{$ex[$i]}' and wr_is_comment = 0 ";
$row = sql_fetch($sql);
$arr[] = "<a href='?bo_table=$bo_table&sca={$ex[$i]}'>{$ex[$i]}</a> ($row[cnt])";
}
$str = implode(" | ", $arr);
echo $str;
?>
</form>
</span>
<div style="float:right;">
<img src="<?=$board_skin_path?>/img/icon_total.gif" align="absmiddle" border='0'>
<span style="color:#9a9a9a; font:11px 돋움,tahoma; color:#707070;">현재 <strong><?=number_format($total_count)?></strong>개의 게시물이 있습니다</span>
<? 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>
</div>

<!-- 제목 -->
<form name="fboardlist" method="post">
<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 cellspacing="0" cellpadding="0" class="board_list">
<col width="2" />
<? if ($is_checkbox) { ?><col width="40" /><? } ?>
<col width="120" />
<col />
<? if ($is_good) { ?><col width="40" /><? } ?>
<? if ($is_nogood) { ?><col width="40" /><? } ?>
<col width="2" />



<?
for ($i=0; $i<count($list); $i++) {
$bg = $i%2 ? 0 : 1;
?>

<tr onmouseover='this.style.backgroundColor="#f5f5f5"' onmouseout='this.style.backgroundColor=""'>
<td width="2">&nbsp;</td>

<? if ($is_checkbox) { ?><td class="checkbox"><input type=checkbox name=chk_wr_id[] value="<?=$list[$i][wr_id]?>"></td><? } ?>


<td class="img">
<?
//썸네일 생성
$thumfile = "";
$thumb = $thumb_path.'/'.$list[$i][wr_id];

// 섬네일과 새로 올린파일 날짜를 비교하여 셈네일을 갱신하기위해서 지운다.
if ( file_exists($thumb) && (filemtime($thumb) < filemtime($list[$i][file][0][path] .'/'. $list[$i][file][0][file])) ) {
@unlink($thumb);
}

// 썸네일 이미지가 존재하지 않는다면
if (!file_exists($thumb)) {
$file = $list[$i][file][0][path] .'/'. $list[$i][file][0][file];
// 업로드된 파일이 이미지라면
if (preg_match("/\.(jp[e]?g|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
break;

$rate = $img_width / $size[0];
$height = (int)($size[1] * $rate);

// 계산된 썸네일 이미지의 높이가 설정된 이미지의 높이보다 작다면
if ($height < $img_height)
// 계산된 이미지 높이로 복사본 이미지 생성
$dst = imagecreatetruecolor($img_width, $height);
else
// 설정된 이미지 높이로 복사본 이미지 생성
$dst = imagecreatetruecolor($img_width, $img_height);
imagecopyresampled($dst, $src, 0, 0, 0, 0, $img_width, $height, $size[0], $size[1]);
imagejpeg($dst, $thumb_path.'/'.$list[$i][wr_id], $img_quality);
chmod($thumb_path.'/'.$list[$i][wr_id], 0606);
} else { //게디터에서 삽입한 이미지 뽑자ㅠㅠ
$edit_img = $list[$i]['wr_content'];
if (eregi("data/cheditor[^<>]*\.(gif|jpg|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
break;

$rate = $img_width / $size[0];
$height = (int)($size[1] * $rate);

// 계산된 썸네일 이미지의 높이가 설정된 이미지의 높이보다 작다면
if ($height < $img_height)
// 계산된 이미지 높이로 복사본 이미지 생성
$dst = imagecreatetruecolor($img_width, $height);
else
// 설정된 이미지 높이로 복사본 이미지 생성
$dst = imagecreatetruecolor($img_width, $img_height);
imagecopyresampled($dst, $src, 0, 0, 0, 0, $img_width, $height, $size[0], $size[1]);
imagejpeg($dst, $thumb_path.'/'.$list[$i][wr_id], $img_quality);
chmod($thumb_path.'/'.$list[$i][wr_id], 0606);
}
}
}
if (file_exists($thumb))
$thumfile = "<img src='$thumb' width='{$img_width}' height='{$img_height}' border='0'></a>";
else
//이미지가 없으면
$thumfile="<img src='$board_skin_path/img/noimg.gif' width='{$img_width}' height='{$img_height}' border='0'></a>";
//이미지가 아니네
if(preg_match("/\.(swf|wma|asf)$/i","$file") && file_exists($file))
{ $thumfile = "<script>doc_write(flash_movie('$file', 'flash$i', '$img_width', '$img_height', 'transparent'));</script>"; }
?><a href='<?=$list[$i][href]?>'><?=$thumfile?></a>
</td>


<td>
<table>

<tr>
<td class="name" colspan="3"><?=date("F j, Y", strtotime($list[$i][wr_datetime]))?></td>
</tr>


<tr>
<td class="subject" valign="top">
<?
echo $nobr_begin;
echo $list[$i][reply];
echo $list[$i][icon_reply];




if ($list[$i][is_notice])
echo "<a href='{$list[$i][href]}'><span class='notice'>{$list[$i][subject]}</span></a>";
else
echo "<a href='{$list[$i][href]}'>{$list[$i][subject]}</a>";

if ($list[$i][comment_cnt])
echo " <a href=\"{$list[$i][comment_href]}\"><span class='comment'>{$list[$i][comment_cnt]}</span></a>";



echo " " . $list[$i][icon_new];
//echo " " . $list[$i][icon_file];
//echo " " . $list[$i][icon_link];
//echo " " . $list[$i][icon_hot];
echo " " . $list[$i][icon_secret];
echo $nobr_end;
?>
</td>
</tr>
<tr>
<td valign="top">
<span style="font-family:'Malgun Gothic',Tahoma,굴림; font-size:10pt; font-weight:normal; color:#888;">
<?=cut_str(strip_tags($list[$i]['wr_content']),$list_content)?>
<!--내용출력끝--></span>
</td></tr>
</table>
</td>
<? if ($is_good) { ?><td class="good"><img src="<?=$board_skin_path?>/img/icon_good.gif" border='0' align=absmiddle> <?=$list[$i][wr_good]?> </td><? } ?>
<? if ($is_nogood) { ?><td class="nogood"><img src="<?=$board_skin_path?>/img/icon_nogood.gif" border='0' align=absmiddle> <?=$list[$i][wr_nogood]?></td><? } ?>
<td width="2">&nbsp;</td>
</tr>
<? } // end for ?>

<? if (count($list) == 0) { echo "<tr><td colspan='$colspan' height=100 align=center>게시물이 없습니다.</td></tr>"; } ?>

</table>
</form>

<div class="board_button">
<div style="float:left;">
<? 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>
<? } ?>
</div>

<div style="float:right;">
<? if ($write_href) { ?><a href="<?=$write_href?>"><img src="<?=$board_skin_path?>/img/btn_write.gif" border='0'></a><? } ?>
</div>
</div>

<br><br>

<!-- 검색 -->
<div class="board_search">
<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="mb_id,1">회원아이디</option>
<option value="mb_id,0">회원아이디(코)</option>
<option value="wr_name,1">글쓴이</option>
<option value="wr_name,0">글쓴이(코)</option>
</select>
<input name="stx" class="stx" maxlength="15" itemname="검색어" required value='<?=stripslashes($stx)?>'>
<input type="image" src="<?=$board_skin_path?>/img/btn_search.gif" border='0' align="absmiddle">
<input type="radio" name="sop" value="and">and
<input type="radio" name="sop" value="or">or
</form>
</div>
<br>


<!-- 페이지 -->
<div class="board_numbering">

<? 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("처음", "<", $write_pages);
$write_pages = str_replace("이전", "&lt;", $write_pages);
$write_pages = str_replace("다음", "&gt;", $write_pages);
$write_pages = str_replace("맨끝", ">", $write_pages);
//$write_pages = preg_replace("/<span>([0-9]*)<\/span>/", "$1", $write_pages);
$write_pages = preg_replace("/<b>([0-9]*)<\/b>/", "<span class='board_numbering_active' >$1</span>", $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>"; } ?>
</div>

</td></tr></table>

<script type="text/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 type="text/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>
<? } ?>
<!-- 게시판 목록 끝 -->

댓글 작성

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

로그인하기

댓글 4개

//이미지가 없으면
$thumfile="<img src='$board_skin_path/img/noimg.gif' width='{$img_width}' height='{$img_height}' border='0'></a>";
이 부분을 제거하면 되지 않을까 싶네요.
port님 말씀처럼 지우면 되겠네요
//이미지가 없으면
$thumfile="<img src='$board_skin_path/img/noimg.gif' width='{$img_width}' height='{$img_height}' border='0'></a>";
이부분을 제거하면 noimg.gif 나오는 공간이 그대로 있더라고요.... noimg.gif 나오는 공간으로 제목이 좌로 이동해서 빈공간이 없어야 하거든요...
그렇게 한다면 이미지가 있을때와 없을때 테이블의 셀구조를 달리해서 조건을 지정해야 할것 같습니다.

게시판 목록

그누4 질문답변

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