그누보드 [G4] [최신게시물] 플래시, 한글파일 첨부시 엑박 해결
페이지 정보
본문
그누보드 / extend / happyjung.lib.php 파일을 하나 만들어서 아래 내용을 삽입
<?php
# 최신글 추출에서 갤러리 GD로 불러오기 ( 첨부파일 한글인 경우도 정상작동 )
# 도움주신분 : 까만도둑 http://www.sir.co.kr/bbs/board.php?bo_table=g4_skin&wr_id=2532
function gga_image_size($x, $y, $thumbx, $thumby) {
if($x > $thumbx) {
$overx = ($x - $thumbx) / $x;
$x = $thumbx;
$y = intval($y - ($y * $overx));
}
if($y > $thumby) {
$overy = ($y - $thumby) / $y;
$y = $thumby;
$x = intval($x - ($x * $overy));
}
return array('x'=>$x, 'y'=>$y);
}
function gga_thumb_filename2($num, $seq) {
return sprintf("%05d", $num) . "_" . sprintf("%03d", $seq);
}
?>
그누보드 / skin / latest / hp_gallery4 / latest.skin.php 파일 생성후 아래 내용 삽입
<?
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
/*
사용방법 :: 아래를 복사하여 최신갤러리 삽입위치에 추가한후 옵션 변경
<?=latest("hp_utf8_gallery4", "test", 6, 100, "80, 2, 200, 10, #ffff, 1" );
// option("hp_utf8_gallery4", "테이블명", 전체갯수, 가로폭, "세로폭, row, 테이블폭, 빈TR높이, 제목글자색, 제목노출여부");
// 제목안보일때 = 0 , 제목보일때 = 1 ?>
row를 2로 설정할 경우 6개를 2줄로 나눠서 한줄에 3개씩 보이게 됩니다.
*/
list($height, $row_cnt, $table_width, $td_height, $link_color, $title_view) = explode(",", $options);
//list($height, $row_cnt, $cut_len, $link_color) = explode(",", $options);
$all_cnt = 0;
$happyjung_latest_height = "20"; // 글 제목 높이값
$thumbx = 120;
$thumby = 120;
?>
<!-- <?=$board[bo_subject]?> (<?=$board[bo_table]?>) 최신글 -->
<table width='<?=$table_width?>' cellpadding='0' cellspacing='0' border='0'>
<? /* ?>
<tr>
<td><table width='100%' border='0' cellspacing='0' cellpadding='0'>
<tr>
<td style="padding:3 0 3 3;"><strong><a href='<?=$g4[bbs_path]?>/board.php?bo_table=<?=$bo_table?>'><?=$board[bo_subject]?></a></strong></td>
<td align="right" style="padding:0 3 0 0;"><a href='<?=$g4[bbs_path]?>/board.php?bo_table=<?=$bo_table?>'><img src='<?=$latest_skin_path?>/img/more.gif' border=0></a></td>
</tr>
<tr>
<td colspan=2 height=2 bgcolor='#cccccc'></td>
</tr>
</table></td>
</tr>
<? */ ?>
<tr>
<td align='center'><table cellpadding='0' cellspacing='0' border='0'>
<?
for ($k=0; $k<$row_cnt; $k++ ) {
?>
<tr>
<?
for ($i=0; $i<count($list)/$row_cnt; $i++) {
if ($i > 0)
echo '<td width=20> </td>';
$title = get_text($list[$all_cnt][wr_subject]);
$content = cut_str(get_text($list[$all_cnt][wr_content]), 80);
$img = "$g4[path]/data/file/$bo_table/".urlencode($list[$all_cnt][file][0][file]);
$file_name = gga_thumb_filename2($list[$i][wr_id], 0);
# utf-8 에서 한글 공백 있는 글자 정상작동 확인
$file = "$g4[path]/data/file/$bo_table/".$list[$all_cnt][file][0][file];
// $file = "$g4[path]/data/file/$bo_table/".urlencode($list[$all_cnt][file][0][file]);
$destfile = $file.'_gga_gd_latest_Thumb';
$size = @getimagesize($file);
if(is_array($size) && !is_file($destfile)) {
switch($size[2]) {
case(1) :
if(function_exists('ImageCreateFromGif')) $im = ImageCreateFromGif($file);
break;
case(2) :
if(function_exists('ImageCreateFromJpeg')) $im = ImageCreateFromJpeg($file);
break;
case(3) :
if(function_exists('ImageCreateFromPng')) $im = ImageCreateFromPng($file);
break;
}
$fixsize = gga_image_size($size[0], $size[1], $thumbx, $thumby);
if($im) {
if($i==0) @exec("rm ".dirname($_SERVER[SCRIPT_FILENAME])."$g4[path]/data/file/$bo_table/*reportThumb -rf");
if(function_exists('ImageCreateTrueColor')) $newim = ImageCreateTrueColor($fixsize[x],$fixsize[y]);
else $newim = ImageCreate($fixsize[x],$fixsize[y]);
if(function_exists('ImageCopyResampled')) ImageCopyResampled($newim,$im,0,0,0,0,$fixsize[x],$fixsize[y],$size[0],$size[1]);
else ImageCopyResized($newim,$im,0,0,0,0,$fixsize[x],$fixsize[y],$size[0],$size[1]);
ImageDestroy($im);
ImageJpeg($newim, $destfile, 100);
ImageDestroy($newim);
unset($im, $newim);
}
$list[$i][img][x] = $fixsize[x];
$list[$i][img][y] = $fixsize[y];
} else {
if(is_file($destfile)) {
$size = @getimagesize($destfile);
$list[$i][img][x] = $size[0];
$list[$i][img][y] = $size[1];
} else {
$file = "$latest_skin_path/img/no_image.gif";
$size = @getimagesize($file);
$list[$i][img][x] = $size[0];
$list[$i][img][y] = $size[1];
}
}
if(is_file($destfile)) $file = $destfile;
if(time()-(60*60*24) <= strtotime($list[$i][wr_datetime])) $list[$i][date] = date('H:i',strtotime($list[$i][wr_datetime]));
else $list[$i][date] = date('Y.m.d',strtotime($list[$i][wr_datetime]));
$file = str_replace('%', '%25', $file);
$href = "$g4[bbs_path]/board.php?bo_table=$bo_table";
$stitle = $list[$all_cnt][subject];
// $stitle = cut_str($list[$all_cnt][subject],$cut_len,"...");
?>
<td width='<?=$subject_len?>' valign='top' align='center'><table width='<?=$subject_len?>' border='0' cellpadding='0' cellspacing='0' align='center' style='table-layout:fixed'>
<tr>
<td width='<?=$subject_len?>' height='<?=$height?>' style='width:<?=$subject_len?>px;height:<?=$height?>px;' align='center'><?
if (preg_match("/\.(gif|jpg|png)$/i", $img)) { // 첫 파일이 이미지인지 검사
echo "<a href='{$g4[bbs_path]}/board.php?bo_table={$bo_table}&wr_id={$list[$all_cnt][wr_id]}' class='happyjung_latest_link'><img src='$file' width='$subject_len' height='$height' border='0' align='absmiddle' title='{$title}'></a>";
} else if (preg_match("/\.(swf|wmv|asf)$/i", $img)) { // 플래시일때
echo"<script>doc_write(flash_movie('$file', 'flash$i', width='$subject_len', height='$height', 'transparent'));</script>";
}
?></td>
</tr>
<?php if ($title_view == 1) { ?>
<tr>
<td height='7' align='center'></td>
</tr>
<tr>
<td align='center' style='text-overflow: ellipsis; overflow: hidden; color:<?=$link_color?>' nowrap><a href='<?=$g4[bbs_path]?>/board.php?bo_table=<?=$bo_table?>&wr_id=<?=$list[$all_cnt][wr_id]?>'><font color=<?=$link_color?>><?=$stitle?></font></a></td>
</tr>
<?php } ?>
<tr>
<td width='<?=$subject_len?>' height='<?=$td_height?>'></td>
</tr>
</table></td>
<?php
$all_cnt++;
}
?>
</tr>
<?php
}
if (count($list) == 0) {
?>
<tr>
<td align='center' height=25>게시물이 없습니다.</td>
</tr>
<?
}
?>
</table></td>
</tr>
</table>
참고자료
http://www.sir.co.kr/bbs/board.php?bo_table=g4_tiptech&wr_id=13224
http://www.sir.co.kr/bbs/board.php?bo_table=g4_skin&wr_id=2532
댓글목록
등록된 댓글이 없습니다.