첨부 이미지 전체 보기 팝업버전

· 17년 전 · 3398
음... 영카트에는 삽입된 이미지 보기 방식입니다..

그냥 기존 그누보드 소스 + 해피정님 소스를 이용하였습니다.

해피정님 사전에 양해가 없었던점 죄송합니다.

삭제를 원하신다면 곧바로 삭제 처리 하겠습니다..


##########################################################

용도
  - 일반 게시판에서 첨부파일을 이미지들을 view페이지에서 썸네일이나 리사이즈 하여서
         목록 형식으로 보여줄경우가 있습니다. 또한 큰 이미지 보기 버튼을 view 삽입 할경우
         유용하리라 생각듭니다.


1. /bbs/ 폴더에 view_image.php 파일을 생성합니다.
( 해당 코드는 board.php, view.php 파일을 필요한부분만 합친겁니다.)

################## 아래 해당 코드를 입력합니다 ################
<?
include_once("./_common.php");

if (!$board[bo_table])
{
    if ($cwin) // 코멘트 보기
       alert_close("존재하지 않는 게시판입니다.", $g4[path]);
    else
       alert("존재하지 않는 게시판입니다.", $g4[path]);
}

if (!$bo_table)
{
    $msg = "bo_table 값이 넘어오지 않았습니다.\\n\\nboard.php?bo_table=code 와 같은 방식으로 넘겨 주세요.";
    if ($cwin) // 코멘트 보기
        alert_close($msg);
    else
        alert($msg);
}

// wr_id 값이 있으면 글읽기
if ($wr_id)
{
    // 글이 없을 경우 해당 게시판 목록으로 이동
    if (!$write[wr_id])
    {
        $msg = "글이 존재하지 않습니다.\\n\\n글이 삭제되었거나 이동된 경우입니다.";
        if ($cwin)
            alert_close($msg);
        else
            alert($msg, "./board.php?bo_table=$bo_table");
    }
}

include_once("$g4[path]/head.sub.php");

if (!($board[bo_use_comment] && $cwin)) {


if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
    @include_once("$board_skin_path/view.head.skin.php");
    $view = get_view($write, $board, $board_skin_path, 255);
    include_once("$board_skin_path/view_image.skin.php");
}

include_once("$g4[path]/tail.sub.php");
?>
#####################################################

2. 해당 게시판 skin 폴더에 view_image.skin.php 파일을 만듭니다.

3. 해피정님 소스를 붙여놓습니다. ( 클릭시 이미지 팝업창 띄우기 등 제거 - 아래 소스)
주소 :
http://sir.co.kr/bbs/board.php?bo_table=g4_tiptech&wr_id=16087&sca=&sfl=wr_subject%7C%7Cwr_content&stx=%C7%D1%B9%F8+%BA%B8%B1%E2&sop=and

#############################################
<scRIPT LANGUAGE='Javascript'>
<!--
// 이미지뷰어
var win= null;
 
image_directory = "";   //배경이미지 경로
clear_img = new Image();  clear_img.src = image_directory + "./img/blank.gif";
<?
//파일 뽑기
$sql2_hp_view_img = " select bf_file from $g4[board_file_table] where bo_table = '$bo_table' and wr_id = '$wr_id' order by bf_no limit 0, 10 ";
$result2_hp_view_img = sql_query($sql2_hp_view_img);
for ($j=0; $row2_hp_view_img = sql_fetch_array($result2_hp_view_img); $j++) {
  $view_one = "{$g4['path']}/data/file/{$bo_table}/{$row2_hp_view_img['bf_file']}";
?>
  view_img<?=$j?> = new Image();
  view_img<?=$j?>.src = "<?=$g4['path']?>/data/file/<?=$bo_table?>/<?=$row2_hp_view_img['bf_file']?>";
<? } ?>
function bgChange(imgName) {
  document.getElementById('view_img').src = eval(imgName + ".src");
}
//-->
</scRIPT>
<table width="100%" cellspacing="0" cellpadding="0" border="0" align="center">
  <tr>
    <td style="padding:10 0 20 0;" align="center">
<?
//파일 뽑기
$sql_hp_view_img = " select bf_file from $g4[board_file_table] where bo_table = '$bo_table' and wr_id = '$wr_id' order by bf_no limit 0, 10 ";
$result_hp_view_img = sql_query($sql_hp_view_img);
for ($i=0; $row_hp_view_img = sql_fetch_array($result_hp_view_img); $i++) {
 
  //썸네일 코드 시작
  $data_path = $g4['path'] . "/data/file/{$bo_table}";//라이브러리 파일 참조
  $thumb_path = $data_path . '/thumbOpen';
 
  $view_w = 100; //썸네일 가로사이즈
  $view_h = 75; //썸네일 세로사이즈
  $sch_q = 100; //썸네일 퀼리티
 
  if (!is_dir($thumb_path)) {
    @mkdir($thumb_path, 0707);
    @chmod($thumb_path, 0707);
  }
  $filename = $row_hp_view_img[bf_file]; //파일명
  $thumb = $thumb_path.'/'.$filename; //썸네일
  if (!file_exists($thumb)) {
    $file = $data_path.'/'.$filename; //원본
    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
        continue;
    
      $rate = $view_w / $size[0];
      $height = (int)($size[1] * $rate);
    
      if ($height < $view_h)
        $dst = imagecreatetruecolor($view_w, $height);
      else
        $dst = imagecreatetruecolor($view_w, $view_h);
      imagecopyresampled($dst, $src, 0, 0, 0, 0, $view_w, $height, $size[0], $size[1]);
      imagejpeg($dst, $thumb_path.'/'.$filename, $sch_q);
      chmod($thumb_path.'/'.$filename, 0707);
    }
  }
 
  if (file_exists($thumb) && $filename) {
?>
    <a href="javascript:void(0);" onMouseOver="bgChange('view_img<?=$i?>');" onMouseOut="bgChange('view_img<?=$i?>');"><img src='<?=$thumb?>' border=0 width="69" height="60"></a>
<?
    //onMouseOut="bgChange('clear_img');"
  }
}
?>
    </td>
  </tr>
  <tr>
    <td align="center" valign="top"><img src="<?=$view_one?>" id="view_img" name="view_img" border="0"></td>
  </tr>
</table>
#############################################

4. view.skin.php 에서 해당 링크 부분에
####################################
<span style="cursor:pointer;" onclick="win_open('./view_image.php?bo_table=<?=$bo_table?>&wr_id=<?=$wr_id?>','view_image','left=10,top=10,width=620,height=450,scrollbars=1');">테스트</span>
####################################
위처럼 win_open으로 팝업창을 띄어주면 됩니다.


-----------------------------------------------------------------------------
 다시 한번 말씀드지만 해피정님께 사전에 양해를 구하지 못한점 죄송합니다.

삭제 요청 하시면 삭제 하도록 하겠습니다.

위 파일 생성 복사후, view_image.skin.php 에서 폼을 바꿔주시면 됩니다.

즐거운 시간 보내시기 바랍니다 ^^
|
댓글을 작성하시려면 로그인이 필요합니다. 로그인

그누4 팁자료실

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요. 나누면 즐거움이 커집니다.

+
제목 글쓴이 날짜 조회
17년 전 조회 6,066
17년 전 조회 1.2만
17년 전 조회 7,666
17년 전 조회 4,656
17년 전 조회 6,154
17년 전 조회 2,756
17년 전 조회 2,006
17년 전 조회 4,252
17년 전 조회 2,690
17년 전 조회 3,399
17년 전 조회 2,781
17년 전 조회 4,567
17년 전 조회 2,480
17년 전 조회 2,561
17년 전 조회 2,673
17년 전 조회 3,603
17년 전 조회 2,963
17년 전 조회 3,615
17년 전 조회 3,168
17년 전 조회 2,414
🐛 버그신고