list.skin.php에서 첨부파일이 없으면 노이미지 뽑아오려고 하는데. > 그누4 질문답변

그누4 질문답변

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

list.skin.php에서 첨부파일이 없으면 노이미지 뽑아오려고 하는데. 정보

list.skin.php에서 첨부파일이 없으면 노이미지 뽑아오려고 하는데.

본문

왜 잘안되는건지..ㅜㅜ 소스좀 보시고 분석좀..ㅜㅜ

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

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

$thumb_path = $data_path.'/thumb_nail'; // 썸네일 생성 폴더명
include_once("$g4[path]/lib/thumb.lib.php");
$noimg = $g4[path]."/img/no_image.jpg"; ///불당썸


// 디렉토리 생성 (퍼미션 변경)
@mkdir("$g4[path]/data/rinix", 0707);
@chmod("$g4[path]/data/rinix", 0707);
include("$board_skin_path/thumbnail.lib.php");
?>
<!-- 한줄에 2개씩 보기 -->

<?
if (!$board[bo_1]) alert("게시판 설정 : 여분 필드 1 에 목록에서 보여질 이미지의 폭을 설정하십시오. (가로|세로 pixel)", $admin_href);
if (!$board[bo_2]) alert("게시판 설정 : 여분 필드 2 에 목록에서 보여질 이미지의 질(quality)을 비율로 설정하십시오. (100 이하), , $admin_href");
if (!function_exists("imagecopyresampled")) alert("GD 2.0.1 이상 버전이 설치되어 있어야 사용할 수 있는 갤러리 게시판 입니다.");

$img_width = '130'; //썸네일 가로길이
$img_height = '90'; //썸네일 세로길이
$img_quality = '9'; //퀼리티 100이하로 설정

$data_path = $g4[path]."/data/file/$bo_table";
$thumb_path = $data_path.'/latest_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++;

?>

<script type="text/javascript" src="<?=$g4[path]?>/lib/imagetext_js.php" mce_src="<?=$g4[path]?>/lib/imagetext_js.php" ></script>
<script src="<?=$g4[path]?>/js/b4.common.js"></script>
<script type="text/javascript">
prettyFont.font = "<?=$g4[path]?>/font/Daum_R.ttf"; // font name
prettyFont.size = 9; // font size
prettyFont.bgColor = "252525"; // background color
prettyFont.txtColor = "EEEEEE"; // text color
prettyFont.notColor = "669900"; // notice color
pretty2Font.font = "<?=$g4[path]?>/font/Daum_SB.ttf"; // font name
pretty2Font.size = 9; // font size
pretty2Font.bgColor = "252525"; // background color
pretty2Font.txtColor = "CCFF00"; // text color
pretty2Font.notColor = "669900"; // notice color
// pretty3Font.font = "<?=$g4[path]?>/font/CreCooljazzL.ttf"; // font name
pretty3Font.font = "<?=$g4[path]?>/font/Daum_R.ttf"; // font name
pretty3Font.size = 9; // font size
pretty3Font.bgColor = "252525"; // background color
pretty3Font.txtColor = "00CCFF"; // text color
pretty3Font.notColor = "669900"; // notice color
</script>

<style>
.board_top { clear:both; }

.board_list { clear:both; font-size:12px;color:#B9B9B9; width:100%; table-layout:fixed; margin:5px 0 0 0; }
.board_list th { font-weight:bold; font-size:12px;color:#B9B9B9; }
.board_list th { background:url(<?=$board_skin_path?>/img/header.gif) repeat-x; height:42px;}
.board_list th { white-space:nowrap; height:45px; overflow:hidden; text-align:center; }
.board_list th { border-top:1px solid #111111; border-bottom:1px solid #111111; }

.board_list tr.bg0 { background-color:#111111; }
.board_list tr.bg1 { background-color:#191919; }

.board_list td { padding:.2em; }
.board_list td { border-bottom:0px solid #ddd; }
.board_list td.num { color:#999999; text-align:center; }
.board_list td.checkbox { text-align:center; }
.board_list td.subject { overflow:hidden; }
.board_list td.name { padding:0 0 0 0px; text-align:center; }
.board_list td.datetime { font:normal 11px tahoma; color:#BABABA; text-align:center; }
.board_list td.hit { font:normal 11px tahoma; color:#BABABA; text-align:center; }
.board_list td.good { font:normal 11px tahoma; color:#BABABA; text-align:center; }
.board_list td.nogood { font:normal 11px tahoma; color:#BABABA; 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; }


.bo_line {
    font-size: 1px; /* div 라인. 폰트사이즈를 반드시 기재 */
    text-align: center;
    height:1px;
    line-height:1px;
    margin:0 0 0 0;
    background-color:#111111;
    background-color:#191919;
}

.bo_line2 {
    background-color:#111111;
    background-color:#191919; 1px 1px;
        text-align: center;
        font-size: 1px; /* div 라인. 폰트사이즈를 반드시 기재 */
        height:1px;
        line-height:1px;
        margin:0 0 0 0;
}
</style>

 

 <div style="text-align:center;"><script type="text/javascript">F_viewSwf('787','350','transparent','<?=$g4['path']?>/swf/naver.swf','<?=$g4['path']?>/xml/photo_bbs.php?id=<?=$bo_table?>','<?=$board[bo_subject]?>','5000');</script></div>
<div style="text-align:center;">

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

    <!-- 분류 셀렉트 박스, 게시물 몇건, 관리자화면 링크 -->
    <div class="board_top">
        <div style="float:left;">
            <form name="fcategory" method="get" style="margin:0px;">
            <? if ($is_category) { ?>
            <select style="behavior: url('<?=$g4[path]?>/js/selectBox.htc');"name=sca onchange="location='<?=$category_location?>'+this.value;">
            <option value=''>전체</option>
            <?=$category_option?>
            </select>
            <? } ?>
            </form>
        </div>
        <div style="float:right;">
            <img src="<?=$board_skin_path?>/img/icon_total.gif" align="absmiddle" border='0'>
            <span style="color:#888888; font-weight:bold;">Total <?=number_format($total_count)?></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>
<div style="height:1px; line-height:1px; font-size:1px; background-color:#444444; clear:both;"> </div>
<div style="height:2px; line-height:1px; font-size:1px; background-color:#111111; clear:both;"> </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 width='100%' cellspacing="0" cellpadding="0" border=0  class="board_list">

<!-- 목록 -->
<? for ($i=0; $i<count($list); $i++) { ?>
 
 <? // 이미지 관련설정

 $img = "<img src='$board_skin_path/img/no_image.jpg' border=0 width='$board[bo_1]' title='이미지 없음'>";
    $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]);
            imagepng($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' style='border:4px solid #444444;' >";
 else
  $img = $no_img; //썸네일 미등록시, no이미지파일출력
 ?>

 <?  // 이미지 가로갯수에 의한 칸나누기 01
  $tr = "";
  if ($i && $i%$board[bo_gallery_cols]==0)
     $tr = "</tr><tr>";
  echo "$tr";
 ?>

 <td align='left'>
 
 <table width='100%' class="board_list" border=0 cellspacing=0 cellpadding=0>
 <tr>
 <td width='130'>

 <!-- (이미지 보기} --//-->
 <? if ($list[$i][wr_link1]) { ?>
 <a href="javascript://" onclick="window.open('<?=$board_skin_path?>/movie.php?bo_table=<?=$bo_table?>&wr_id=<?=$list[$i][wr_id]?>', '', 'left=100,top=100,width=650,height=520,scrollbars=1,resizable=1');" title='동영상보기'><?=$img?></a>
 <? } else if ($list[$i][wr_link2]) { ?>
 <a href="javascript://" onclick="window.open('<?=$board_skin_path?>/movie2.php?bo_table=<?=$bo_table?>&wr_id=<?=$list[$i][wr_id]?>', '', 'left=100,top=100,width=650,height=520,scrollbars=1,resizable=1');" title='동영상보기'><?=$img?>
 <? } else if ($list[$i][wr_3]) { ?>
 <a href="javascript://" onclick="window.open('<?=$board_skin_path?>/movie3.php?bo_table=<?=$bo_table?>&wr_id=<?=$list[$i][wr_id]?>', '', 'left=100,top=100,width=650,height=520,scrollbars=1,resizable=1');" title='동영상보기'><?=$img?>
 <? }else { ?>
  <?=$img?>
 <? } ?>


 <!-- (동영상 링크버튼} --//-->
    <center>
 <? if ($list[$i][wr_link1]) { ?>
 <a href="javascript://" onclick="window.open('<?=$board_skin_path?>/movie.php?bo_table=<?=$bo_table?>&wr_id=<?=$list[$i][wr_id]?>', '', 'left=100,top=100,width=650,height=520,scrollbars=1,resizable=1');" title='동영상보기'><img src="<?=$board_skin_path?>/img/gohome.gif" border="0" /></a>

 <? }else if ($list[$i][wr_link2]) { ?>
 <a href="javascript://" onclick="window.open('<?=$board_skin_path?>/movie2.php?bo_table=<?=$bo_table?>&wr_id=<?=$list[$i][wr_id]?>', '', 'left=100,top=100,width=650,height=520,scrollbars=1,resizable=1');" title='동영상보기'><img src="<?=$board_skin_path?>/img/gohome.gif" border="0" /></a>

 <? }else if ($list[$i][wr_3]) { ?>
 <a href="javascript://" onclick="window.open('<?=$board_skin_path?>/movie3.php?bo_table=<?=$bo_table?>&wr_id=<?=$list[$i][wr_id]?>', '', 'left=100,top=100,width=650,height=520,scrollbars=1,resizable=1');" title='동영상보기'><img src="<?=$board_skin_path?>/img/gohome.gif" border="0" /></a>

 <? }else { ?>
 <a href='<?=$list[$i][href]?>'><img src="<?=$board_skin_path?>/img/gohome.gif" border="0" /></a>  
 <? } ?>
 </center>

 </td> 
 <td width='' style='word-break:break-all;' valign='top'>

  <!-- 제목글 테이블 -->
  <table width='100%' cellpadding='0' cellspacing='0' border='0'>
        <tr><td style='padding-left:1px'>
  
  <? if ($is_checkbox) { ?><input type=checkbox name=chk_wr_id[] value="<?=$list[$i][wr_id]?>"><? } ?>


        <?
       // echo $nobr_begin;
        echo "<a class='li_tit' style='font-size:12px' href='{$list[$i][href]}'>";


        if ($list[$i][is_notice])
            echo "<script type=\"text/javascript\">pretty3Font(\"{$list[$i][subject]}\");</script>";
    
        else
           
echo  "<script type=\"text/javascript\">pretty3Font(\"".cut_str($list[$i][subject], 30)."\");</script>";
        echo "</a>";
                                                                                                    
        if ($list[$i][comment_cnt])
            echo " <a href=\"{$list[$i][comment_href]}\"><span class='etc'>{$list[$i][comment_cnt]}</span></a>";

       // echo " " . $list[$i][icon_new];
       // echo " " . $list[$i][icon_secret];
       // echo $nobr_end;
        ?>

  </td></tr>
  
  <td style="padding-top:12px; border-top:1px solid #444444;" colspan="2">
  <tr><td style='padding-left:1px'>

 <!--<img src='<?=$board_skin_path?>/img/bul_gray.gif' width='5' height='5' align='absimddle'> -->
  <script type="text/javascript">prettyFont("· 조회수 : <?=$list[$i][wr_hit]?>");</script>
  </td></tr>
  <td style="padding-top:12px; border-top:1px solid #444444;" colspan="2">

  <tr><td style='padding-left:1px'>
 
     <script type="text/javascript">prettyFont("· 등록일자 : <?=$list[$i][datetime]?>");</script>
  </td></tr>
  <td style="padding-top:12px; border-top:1px solid #444444;" colspan="2">
  <!--<td style="padding-top:12px; border-top:1px dashed #444444;" colspan="2">-->

  </td></tr>
  </table>
  <!-- 제목글 테이블 끝 -->

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

 </td>
 
  

<? } ?>

<? // 이미지 가로갯수에 의한 칸나누기 02 (나머지 td를 채움)
if (($cnt = $i%$board[bo_page_rows]) != 0)
    for ($k=$cnt; $k<$$board[bo_page_rows]; $k++)
        echo "<td> </td>\n";

if ($i == 0) { echo "<td colspan='$board[bo_gallery_cols]' height=50 align=center>게시물이 없습니다.</td>"; }
?>

</tr>
</table>
</form>
<div style="height:1px; line-height:1px; font-size:1px; background-color:#444444; clear:both;"> </div>
<div style="height:2px; line-height:1px; font-size:1px; background-color:#111111; clear:both;"> </div>
 <!--<div class='bo_line' style='clear:both;margin:5 0 5 0'> </div> -->
    <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>

    <!-- 페이지 -->
    <div class="board_page">
        <? 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>"; } ?>
    </div>

   

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

<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>
<? } ?>
<!-- 게시판 목록 끝 -->

  • 복사

댓글 전체

if (file_exists($thumb))   
    $img = "<img src='$thumb' style='border:4px solid #444444;' >";
else
  $img = $no_img; //썸네일 미등록시, no이미지파일출력
이렇게 사용하시려면
$img = "<img src='$board_skin_path/img/no_image.jpg' border=0 width='$img_width' title='이미지 없음'>"; <--요거 $no_img 변수명이 맞고요~

그리고 img 태그에 OnError도 참고 하세요~
<img src='$thumb' style='border:4px solid #444444;' OnError="this.src='$board_skin_path/img/no_image.jpg';">
© SIRSOFT
현재 페이지 제일 처음으로