ccc님의 새창으로 이미지미리보기에서 다음이미지 이전이미지 보기 처리 > 그누3질답

그누3질답

ccc님의 새창으로 이미지미리보기에서 다음이미지 이전이미지 보기 처리 정보

ccc님의 새창으로 이미지미리보기에서 다음이미지 이전이미지 보기 처리

본문

gnu3호환 새창으로 이미지미리보기에서 다음이미지 이전이미지 보기 적용하니
아래와 같이 에러가 나네요
간만에 리뉴얼 할려고 하는데 이런현상이...으이구


Fatal error: Call to undefined function: get_image_ratio() in /home/hosting_users/art0644/www/gnu3/bbs/skin/board/gallery_ccc/gblist.skin.php on line 153


http://sir.co.kr/bbs/board.php?bo_table=g3_tiptech&wr_id=7344

댓글 전체

/lib/developer.lib.php파일로 아래 내용을 저장해주세요!
그누3는 image배율 계산이 없어서 집어 넣은 함수입니다.
네모 박스에 넣는점에 사진을 보여줄때는 찌그러지는 경우가 많아서
사이즈가 적으면 비율에 맞게끔 축소하도록 집어 넣은 함수입니다.


if (defined(__FILE__)) return;
define(__FILE__, TRUE);

//이미지 비율에 따른 사이즈 2005-06-15 ⓒⓒⓒ
function get_image_ratio($filename,$width,$height) {

    $s_size = @getimagesize($filename);

    if  ( ($s_size[0] > 0) &&  ($s_size[1] > 0) ) {
   
        if ($s_size[0] > $s_size[1])    $ratio = $width/$s_size[0];
        else                            $ratio = $height/$s_size[1];
   
        $img[width]  = $s_size[0]*$ratio;
        $img[height] = $s_size[1]*$ratio;
    }

    return $img;

}


// 이전이미지 다음이미지 2005.05.13 ⓒⓒⓒ
function get_next_image($bo_table, $wr_id) {
    global $cfg;

    $write_table = "{$cfg[write_table_prefix]}{$bo_table}";
   
    $p_wr_id = sql_fetch("SELECT wr_id FROM $write_table WHERE wr_id > $wr_id and wr_file1 <> '' order by wr_id asc");
    $n_wr_id = sql_fetch("SELECT wr_id FROM $write_table WHERE wr_id < $wr_id and wr_file1 <> '' order by wr_id desc");

    $page[p_wr_id] = $p_wr_id[0];
    $page[n_wr_id] = $n_wr_id[0];

    if($page[p_wr_id]) $page[p_button] = "<a href='?doc=bbs/gnuboard.php&bo_table=$bo_table&wr_id=$page[p_wr_id]'>◀</a>";
    if($page[n_wr_id]) $page[n_button] = "<a href='?doc=bbs/gnuboard.php&bo_table=$bo_table&wr_id=$page[n_wr_id]'>▶</a>";

    return $page;
}
간단하게 설명드리면 기죤소스를 바꾼게 좀 됩니다.
function get_image_ratio($filename,$width,$height)
스킨에서 저값을 호출시
get_image_ratio(이미지파일명,최대출력width폭, 최대출력height폭) 이렇게 됩니다.
당연히 소스상에서도 최대폭을 설정해줘야 정상적으로 보여지겠죠!

소스사용방법...
 echo "<a href=\"javascript:winopen('?doc=bbs/gbnextimg.php&bo_table=$bo_table&wr_id={$list[$i][wr_id]}','imageview');\">";


gbnextimg.php (원본소스입니다. 비교해보세요!)

<?
if (!defined("_GNUBOARD_")) exit;
define("_DOCTYPE_", "STYLE");
$html_title = "이미지 보기";

//############################################################
//## 
//##  ver : 2005. 05. 14
//##  P/G : ⓒⓒⓒ
//##  msn : *** 개인정보보호를 위한 이메일주소 노출방지 ***
//## 
//############################################################

function get_n_image($bo_table, $wr_id) {
    global $cfg;

    $write_table = "{$cfg[write_table_prefix]}{$bo_table}";
   
    $p_wr_id = sql_fetch("SELECT wr_id FROM $write_table WHERE wr_id > $wr_id and wr_file1 <> '' order by wr_id asc");
    $n_wr_id = sql_fetch("SELECT wr_id FROM $write_table WHERE wr_id < $wr_id and wr_file1 <> '' order by wr_id desc");

    $page[p_wr_id] = $p_wr_id[0];
    $page[n_wr_id] = $n_wr_id[0];

    if($page[p_wr_id]) $page[p_button] = "<a href='?doc=bbs/gbnextimg.php&bo_table=$bo_table&wr_id=$page[p_wr_id]'>◀</a>";
    if($page[n_wr_id]) $page[n_button] = "<a href='?doc=bbs/gbnextimg.php&bo_table=$bo_table&wr_id=$page[n_wr_id]'>▶</a>";

    return $page;
}


function view_img($bo_table, $wr_id)
{
  global $cfg, $pn_img;

    $data = sql_fetch("SELECT wr_file1 FROM {$cfg[write_table_prefix]}{$bo_table} WHERE wr_id ='$wr_id' ");

    $file = $data[0];   

    $dir = "./data/file/$bo_table";
    $size = @getimagesize("$dir/$file");
    $source_width  = $size[0];
    $source_height = $size[1];

    if ($board[bo_table_width] <= 100) {
        if ($size[0] > $cfg[large_image_size]) {
            $rate = $size[1] / $size[0];
            $size[0] = $cfg[large_image_size];
            $size[1] = (int)($size[0] * $rate);
        }
    } else {
        if ($size[0] > $board[bo_table_width]) {
            $rate = $size[1] / $size[0];
            $size[0] = $board[bo_table_width];
            $size[1] = (int)($size[0] * $rate);
        }
    }

    $img[width]  = $size[0];
    $img[height] = $size[1];

    if (preg_match($cfg[image_extension], $file))
    $img[a_img] = "<img src='$dir/$file' width=$img[width] height=$img[height] border=0 onclick='window.close();' style='cursor:hand'>";
    $img[a_img] .="<table cellpadding='0' cellspacing='0' border='0' width='100%' height=20 class='C_Admin_table_bg'>";
    $img[a_img] .="<tr bgcolor='#7B7B7B'><td width=50% align=right>{$pn_img[p_button]}&nbsp;&nbsp;&nbsp;&nbsp;{$pn_img[n_button]}</td>";
    $img[a_img] .="<td width=50% align=right><a href='http://ne4jin.com' target=_blank>ne4jin.com</a></td></tr>";
    $img[a_img] .="</table>";
    return $img;

}


$pn_img = get_n_image($bo_table, $wr_id);


$view_image=view_img($bo_table,$wr_id);

echo $view_image[a_img];

$view_image[heightadd] = $view_image[height]+80;
?>


<script>
self.resizeTo(<?=$view_image[width]?>,<?=$view_image[heightadd]?>)
</script>
비교를 해봐도 똑같은데 ...
에고 마찬가지네요^^



<?
if (!defined("_GNUBOARD_")) exit;
define("_DOCTYPE_", "STYLE");
$html_title = "이미지 보기";

//############################################################
//## 
//##  ver : 2005. 05. 14
//##  P/G : ⓒⓒⓒ
//##  msn : *** 개인정보보호를 위한 이메일주소 노출방지 ***
//## 
//############################################################

function get_n_image($bo_table, $wr_id) {
    global $cfg;

    $write_table = "{$cfg[write_table_prefix]}{$bo_table}";
   
    $p_wr_id = sql_fetch("SELECT wr_id FROM $write_table WHERE wr_id > $wr_id and wr_file1 <> '' order by wr_id asc");
    $n_wr_id = sql_fetch("SELECT wr_id FROM $write_table WHERE wr_id < $wr_id and wr_file1 <> '' order by wr_id desc");

    $page[p_wr_id] = $p_wr_id[0];
    $page[n_wr_id] = $n_wr_id[0];

    if($page[p_wr_id]) $page[p_button] = "<a href='?doc=bbs/gbnextimg.php&bo_table=$bo_table&wr_id=$page[p_wr_id]'>◀</a>";
    if($page[n_wr_id]) $page[n_button] = "<a href='?doc=bbs/gbnextimg.php&bo_table=$bo_table&wr_id=$page[n_wr_id]'>▶</a>";

    return $page;
}


function view_img($bo_table, $wr_id)
{
  global $cfg, $pn_img;

    $data = sql_fetch("SELECT wr_file1 FROM {$cfg[write_table_prefix]}{$bo_table} WHERE wr_id ='$wr_id' ");

    $file = $data[0];   

    $dir = "./data/file/$bo_table";
    $size = @getimagesize("$dir/$file");
    $source_width  = $size[0];
    $source_height = $size[1];

    if ($board[bo_table_width] <= 100) {
        if ($size[0] > $cfg[large_image_size]) {
            $rate = $size[1] / $size[0];
            $size[0] = $cfg[large_image_size];
            $size[1] = (int)($size[0] * $rate);
        }
    } else {
        if ($size[0] > $board[bo_table_width]) {
            $rate = $size[1] / $size[0];
            $size[0] = $board[bo_table_width];
            $size[1] = (int)($size[0] * $rate);
        }
    }

    $img[width]  = $size[0];
    $img[height] = $size[1];

    if (preg_match($cfg[image_extension], $file))
    $img[a_img] = "<img src='$dir/$file' width=$img[width] height=$img[height] border=0 onclick='window.close();' style='cursor:hand'>";
    $img[a_img] .="<table cellpadding='0' cellspacing='0' border='0' width='100%' height=20 class='C_Admin_table_bg'>";
    $img[a_img] .="<tr bgcolor='#7B7B7B'><td width=50% align=right>{$pn_img[p_button]}    {$pn_img[n_button]}</td>";
    $img[a_img] .="<td width=50% align=right><a href='http://ne4jin.com' target=_blank>ne4jin.com</a></td></tr>";
    $img[a_img] .="</table>";
    return $img;

}


$pn_img = get_n_image($bo_table, $wr_id);


$view_image=view_img($bo_table,$wr_id);

echo $view_image[a_img];

$view_image[heightadd] = $view_image[height]+80;
?>


<script>
self.resizeTo(<?=$view_image[width]?>,<?=$view_image[heightadd]?>)
</script>
전체 9,564
그누3질답 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT