메인 썸네일

메인 썸네일

QA

메인 썸네일

답변 1

본문

안녕하세요~
제가 뉴스게사판 형태의 사이트를 만들고있는데요
 
웹진형 게시판 nine_navy_webzine_utf8 를 skin/board에 올리고
메인 최근게시물 스킨은 new2 를 skin/latest 에 업로드하였습니다.
 
게시판에 올린 사진은 첨부파일로 업로드하였습니다.
 
질문1.
메인화면에 최근게시물을 썸네일 형태로 보여주려고하는데...
게시판제목과 연결은 잘되는데 첨부파일로 올린 사진이 엑박이 뜨네요~ㅠ.ㅠ
 
 
 
- new2 : latest.skin.php 소스입니다.

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

$cols  = 1; //  이미지 가로갯수 //  이미지 세로 갯수는 메인에서 지정(총 이미지 수)
$image_h  = 1; // 이미지 상하 간격
$col_width = (int)(99 / $cols);
$img_width = 120; //썸네일 가로길이
$img_height = 120; //썸네일 세로길이
$img_quality = 100; //퀼리티 100이하로 설정 일부 php버전에서는 10이하의 수로 처리 될 수 있삼
if (!function_exists("imagecopyresampled")) alert("GD 2.0.1 이상 버전이 설치되어 있어야 사용할 수 있는 갤러리 게시판 입니다.");
$data_path = $g4[path]."/data/file/$bo_table";
$thumb_path = $data_path.'/thumb_img_list'; //썸네일 이미지 생성 디렉토리
@mkdir($thumb_path, 0707);
@chmod($thumb_path, 0707);
?>
<? for ($i=0; $i<count($list); $i++) { ?>
<?
$wr_content = "<a href='{$list[$i]['href']}'>".cut_str(strip_tags($list[$i]['wr_content']), 230, '...')."</a>";
 //   if ($i>0 && $i%$cols==0) { echo "<td colspan='$cols' height='$image_h'></td><tr>"; }
    $img = "<img src='$g4_path/img/noimage.gif' border=1 width='$img_width' height='$img_height' title='이미지 없음' align=left style='margin-right:5px; border:1 #222222 solid;'>";
    $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];
        // 업로드된 파일이 이미지라면
  //echo $i;
        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);
   $width = (int)($size[0] * $rate);
            // 계산된 썸네일 이미지의 높이가 설정된 이미지의 높이보다 작다면
            $dst = imagecreatetruecolor($img_width, $img_height);
            if ($height < $img_height) {                // 계산된 이미지 높이로 복사본 이미지 생성
    imagecopyresampled($dst, $src, 0, 0, 0, 0, $width, $img_height, $size[0], $size[1]);
    imagepng($dst, $thumb_path.'/'.$list[$i][wr_id], $img_quality);
            } else {   // 설정된 이미지 높이로 복사본 이미지 생성
    imagecopyresampled($dst, $src, 0, 0, 0, 0, $img_width, $height, $size[0], $size[1]);
    imagepng($dst, $thumb_path.'/'.$list[$i][wr_id], $img_quality);
   
   }
   //echo $i;
            chmod($thumb_path.'/'.$list[$i][wr_id], 0606);
        }
    }
    if (file_exists($thumb))
        $img = "<img src='$thumb' border=0>";
?>
<?
        $datetime = substr($list[$i][wr_datetime],0,10);
        $datetime2 = $list[$i][wr_datetime];
        
        if ($list[$i]['wr_datetime'] >= date("Y-m-d H:i:s", $g4['server_time'] - ($row['bo_new'] * 3600))) $comment_new = "new";
        if ($datetime == $g4[time_ymd])
            $datetime2 = substr($datetime2,11,5);
        else
            $datetime2 = substr($datetime2,5,5);
   
    $list[$i][datetime] = $datetime;
    $list[$i][datetime2] = $datetime2;
   
    $a[$i] = array(
      "wr_date"=>$datetime2,
);
?>
<?
 $rw_subject = cut_str(stripslashes($list[$i][subject]),$subject_size,'..');
 $a_link="<a href='{$list[$i][href]}'>$rw_subject</a>";
 $a_img="<a href='{$list[$i][href]}'>$img</a>";
 $a_comment="<a href=\"{$list[$i][comment_href]}\"><span class='commentFont'>{$list[$i]['comment_cnt']}</span></a>";
 $rw_content = cut_str(stripslashes($list[$i][wr_content]),$content_size,' ..more');
 $rw_content = strip_tags($rw_content);
?>  
 
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
 <td align="center">
  <table width="95%" border="0" cellspacing="0" cellpadding="0">
   <tr>
   <td width="124" valign="top">
    <table width="100%" border="0" cellpadding="2" cellspacing="1" bgcolor="#CCCCCC">
             <tr>
                  <td bgcolor="#FFFFFF"><?=$a_img?></td>
             </tr>
             </table>
          </td>
          <td width="15"></td>
          <td valign="top">
    <table width="100%" border="0" cellspacing="0" cellpadding="0">
             <tr>
                <td>
                   <?
                 echo "<a href='{$list[$i]['href']}'  class=\"b\">";
                 echo "<b>{$list[$i]['subject']}</b>";
                 echo "</a>";
      ?>
                </td>
             </tr>
      <tr><td height="7"></td></tr> 
             <tr><td><?=$wr_content?></td></tr>
           </table>
   </td>
        </tr>
      </table>
 </td>
</tr>
<tr><td height="15"></td></tr>
</table>
<?
 }
?>
 
 
 
질문2.
게시물에 처음에 올린 사진을 그룹에서도 보여지는데요, 수정해서 기존에 업로드한 사진을 삭제하고
새로 업로드했는데요 그룹페이지에서는 사진은 바꿔지지가 않습니다.
 
 
 
-nine_navy_webzine_utf8/list.skin.php
 
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
$img_width = 120; //섬네일 가로크기
$img_height = 90; //섬네일 세로크기
$img_quality = 100;
if (!$img_width) alert("게시판 설정 : 여분 필드 1 에 목록에서 보여질 이미지의 폭을 설정하십시오. (픽셀 단위)");
if (!$img_height) alert("게시판 설정 : 여분 필드 2 에 목록에서 보여질 이미지의 높이를 설정하십시오. (픽셀 단위)");
if (!$img_quality) alert("게시판 설정 : 여분 필드 3 에 목록에서 보여질 이미지의 질(quality)을 비율로 설정하십시오. (100 이하)");
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>
?>
<link href="<?=$board_skin_path?>/style.css" rel="stylesheet" type="text/css" />
<!-- 게시판 목록 시작 -->
<table width="<?=$width?>" align="center" cellpadding="0" cellspacing="0">
    <tr>
     <td>
<!-- 분류 셀렉트 박스, 게시물 몇건, 관리자화면 링크 -->
<div style="float:left;height:22px;">
<? if ($is_category) { ?>
<? if (!$wr_id) {  ?>
<?  
    $cnt_bo_1 = $bo_1[0] ? $bo_1[0] : 10; // 한줄당 분류 갯수(현재:10)
    $cnt = 1;
    $cnt0 = 0;
    $bb_s=""; $bb_e="";
    $b_s=""; $b_e="";
    $arr = explode("|", $board[bo_category_list]); // 구분자가 , 로 되어 있음
    $str = " <span style='font-family: Tahoma; font-size:10px; color:#D2D2D2;'>|</span> ";
    for ($i=0; $i<count($arr); $i++)
        if (trim($arr[$i]))  {
        if ($sca == $arr[$i]) { $cnt0++; $b_s="<b>"; $b_e="</b>"; } else {$b_s=""; $b_e="";}
            $str .= " <a href='./board.php?bo_table=$bo_table&sca=".urlencode($arr[$i])."'>$b_s$arr[$i]$b_e</a>  <span style='font-family: Tahoma; font-size:10px; color:#D2D2D2;'>|</span> ";
if ($cnt == $cnt_bo_1) { $cnt = 0; $str .= "<br>"; }
    $cnt++;
    }
    if ($cnt0 == 0 ) { $bb_s="<b>"; $bb_e="</b>"; }
?>
<?echo "  ";echo $bb_s;?><a href='./board.php?bo_table=<?=$bo_table?>&page=<?=$page?>'>전체</a><?=$bb_e?> <span style="font-size:8pt; color=#AEAEAE;">(<?=number_format($total_count)?>)</span>
<?=$str?>
<? } ?>
<? } ?>
</div>
<div class='bbs_count'>
    <? if ($is_checkbox) { ?><INPUT onclick="if (this.checked) all_checked(true); else all_checked(false);" type='checkbox'><?}?>
    TOTAL <?=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="관리자" border="0" align="absmiddle"></a><?}?>
</div>
<!-- 제목 -->
<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=<?=$colspan?> class="bbs_line2"></td>
    </tr>
 <table width="100%" border="0" cellpadding="0" cellspacing="0">
 <?
 for ($i=0; $i<count($list); $i++)
 {
        $img = "<img src='$board_skin_path/img/noimage.gif' border=0 width='$img_width' height='$img_height' title='이미지 없음' align=left style='border:1 solid #DFDFDF;'>";
        $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("/\.(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);
            }
        }
        if (file_exists($thumb))
            $img = "<img src='$thumb' border=0 style='border:1px solid #CCCCCC;'>";
      else
            if(preg_match("/\.(swf|wma|asf)$/i","$file") && file_exists($file))
            { $img = "<script>doc_write(flash_movie('$file', 'flash$i', '$img_width', '$img_height', 'transparent'));</script>"; }
 ?>
    
            <? if ($is_checkbox) { ?><tr align="center"><td><input type=checkbox name=chk_wr_id[] value="<?=$list[$i][wr_id]?>"></td><? } ?>
     <td align="left" style='word-break:break-all; padding:15px 0 15px 8px;'>
 <table>
    <tr>
        <td width="135">
      <?
        echo "<a href='{$list[$i][href]}'>";
        echo $img;
        echo "</a>";
        ?>
        </td>
        <td valign="top">
    <table>   
 <tr>
     <td style='padding:5px 0 5px 0;'>
      <?
        echo $nobr_begin;
        echo $list[$i][reply];
        echo $list[$i][icon_reply];
        if ($is_category && $list[$i][ca_name]) {
            echo "<a href='{$list[$i][ca_name_href]}' class='text_bold'>[{$list[$i][ca_name]}]</a> ";
        }
        $style = "";
        if ($list[$i][is_notice]) $style = " style='font-weight:bold;'";
        echo "<a href='{$list[$i][href]}' class='text_bold'>";
        echo $list[$i][subject];
        echo "</a></strong>";
        if ($list[$i][comment_cnt])
            echo " <a href=\"{$list[$i][comment_href]}\"><span class='text_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 style='color:#AAAAAA;'><?=cut_str(strip_tags($list[$i][wr_content]),250,"…")?></td>
  </tr>
  <tr>
  <td class="text8" style='line-height:180%;'>Name: <?=$list[$i][name]?>  <span style="font-size:9px;color:#CCCCCC;">|</span>  Date: <?=date("Y-m-d", strtotime($list[$i][wr_datetime]))?>  <span style="font-size:9px;color:#CCCCCC;">|</span>  Hit: <?=$list[$i][wr_hit]?><? if ($is_good) { ?>  <span style="font-size:9px;color:#CCCCCC;">|</span>  추천: <?=$list[$i][wr_good]?><? } ?>
        <? if ($is_nogood) { ?>  <span style="font-size:9px;color:#CCCCCC;">|</span>  비추천: <?=$list[$i][wr_nogood]?><? } ?></td>
  </tr>
  </table>
     </td>
     <td width=10></td>
        </tr>
        </table>
        </td>
        <?/*?><td width=40><span style='font:normal 11px tahoma; color:#BABABA;'><?=$list[$i][last2]?></span></td><?*/?>
        </tr>
    <tr><td colspan=<?=$colspan?> height="1" bgcolor="#e5e5e5"></td></tr>
    <?}?>
    <? if (count($list) == 0) { echo "<tr><td colspan='$colspan' height=100 align=center>게시물이 없습니다.</td></tr>"; } ?>
</table>
</form>
<!-- 페이징 -->
<div class="paginate_complex">
    <? if ($prev_part_href) { echo "<a href='$prev_part_href' class=\"direction prev\"> <span> </span><span> </span> 이전검색</a>"; } ?>
    <?
    // 기본으로 넘어오는 페이지를 아래와 같이 변환하여 이미지로도 출력할 수 있습니다.
    /*
    $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("/<b>([0-9]*)<\/b>/", "<b><span style=\"color:#4D6185; font-size:12px; text-decoration:underline;\">$1</span></b>", $write_pages);
    */
    $write_pages = preg_replace("/<b>([0-9]*)<\/b>/", "<strong>$1</strong>", $write_pages);
    $write_pages = str_replace(">처음", " class=\"direction prev\"> <span> </span><span> </span> ", $write_pages);
    $write_pages = str_replace(">이전", " class=\"direction prev\"><span> </span> ", $write_pages);
    $write_pages = str_replace(">다음", " class=\"direction next\" > <span> </span> ", $write_pages);
    $write_pages = str_replace(">맨끝", " class=\"direction next\" ><span> </span><span> </span> ", $write_pages);
    $write_pages = str_replace(" ", "", $write_pages);
    ?>
    <?=$write_pages?>
    <? if ($next_part_href) { echo "<a href='$next_part_href'> class=\"direction next\">다음검색 <span> </span><span> </span></a>"; } ?>
</div>
<!-- 검색&버튼 -->
<div style="float:left;">
<table cellpadding="0" cellspacing="0">
    <tr>
        <td align="left">
        <form name="fsearch" method="get">
        <input type="hidden" name="bo_table" value="<?=$bo_table?>">
        <input type="hidden" name="sca" value="<?=$sca?>">
        <select name="sfl" class="sel">
            <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>  
  </td>
        <td align="left"><input name="stx" class="bbs_search" maxlength="33" itemname="검색어" required value='<?=stripslashes($stx)?>'></td>
        <td><input type=image src="<?=$board_skin_path?>/img/btn_search.gif" border="0" align="absmiddle"></td>
    </tr>
</table> 
</form>
</div>
<div style="float:right;">
    <? 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>
    <? } ?> 
    <? 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><? } ?>
</div>
    </td>
    </tr>
</table>

<script language="JavaScript">
if ("<?=$sca?>") document.fcategory.sca.value = "<?=$sca?>";
if ("<?=$stx?>") {
    document.fsearch.sfl.value = "<?=$sfl?>";
}
</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>
<? } ?>
<!-- 게시판 목록 끝 -->
 
 
 
 
도와주세요~
 
 

이 질문에 댓글 쓰기 :

답변 1

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 10,637
© SIRSOFT
현재 페이지 제일 처음으로