배열에 이미지 Height값을 저장 후, 이미지를 불러올 때 배열에 저장된 height값을 적용하려고 합니다.
본문
를 참고해서 스킨 페이지를 제작 중입니다.
<?
$size = Array();
$imgPath = Array();
for ($i=0; $i<count($list); $i++)
{
$title = "자세히보기";
$content = cut_str(get_text($list[$i][wr_content]), 180);
$subject = cut_str(get_text($list[$i][subject]), 100, '...');
$img_width = '160'; // 이미지 개당 가로크기
$img_height = '120'; // 이미지 개당 세로크기
$img = "$g4[path]/data/file/$bo_table/".urlencode($list[$i][file][0][file]);
$img2 = "$g4[path]/data/file/$bo_table/".urlencode($list[$i][file][1][file]);
$size[$i] = getimagesize($img2); //지금 리스트 페이지의 가장 마지막 이미지 height값만 받아오고 있음.
if (!file_exists($img) || !$list[$i][file][0][file])
$img = "$board_skin_path/img/no_image.gif";
if ($is_admin)
$view_href = "$g4[bbs_path]/board.php?bo_table=$bo_table&wr_id={$list[$i][wr_id]}";
else
$view_href = "#";
$checkbox = "";
if ($is_checkbox)
$checkbox = "<input type=checkbox name=chk_wr_id[] value='{$list[$i][wr_id]}'>";
$tr = "";
if ($i && $i%$board[bo_gallery_cols]==0)
$tr = "</tr><tr>";
echo "$tr";
echo <<<HEREDOC
<td width="{$td_width}%" valign="top" align="center" >
<table width="200" height="100" border="0" cellpadding="0" cellspacing="0">
<tr>
<td align="center">
<img src="{$img}" width='{$img_width}' height='{$img_height}' border="0" title="$title" style="border:0px solid #000000;cursor:pointer;" onClick="view_img('$img2')">
</td>
</tr>
<tr>
<td align="center" onClick="height_img('$img2')" style="cursor:pointer;">{$checkbox} {$subject}</td>
</tr>
</table>
</td>
HEREDOC;
}
// 나머지 td 를 채운다.
if ($i == 0)
echo "<td colspan='$board[bo_gallery_cols]' height=50 align=center>게시물이 없습니다.</td>";
?>
위 코드와 같이, 리스트 페이지에서 $img를 클릭하면 $img2가 리스트페이지에 포함된 뷰페이지에 출력됩니다.
그런데, 뷰페이지에서 출력되는 부분에
<table width="800" border="0" cellpadding="0" cellspacing="0" align="center" >
<tr>
<td width="800" height="<?= $size[0][1] ?>" Style="background:#fff;" id="contents"><img class="main_img" src="<?=$list[0][file][0][path]?>/<?=$list[0][file][1][file]?>" width="800" height="<?= $size[0][1] ?>" id="main_img"></td>
</tr>
</table>
Heigth부분에 $size[1]로 저장해둔 이미지의 Height값을 적용하는데, 각 리스트마다 4개씩 표시되야 되는데
$size[index][1] 값을 어떻게 반영해야 되는지 모르겠어서 이렇게 글을 올립니다.
많은 분들의 조언 부탁드립니다.
답변 3
같은 질문을 몇번 한 것 같은데 무슨 말인지 알아듣지를 못해서 답변을 하지못했습니다
스킨 주소를 저렇게 알려주니 소스를 보고 무슨 작업을 하려는 코드인지 금방 이해할 수 있겠네요
모름지기 질문은 남이 알아먹을 수 있게 해야 제대로 답변을 얻을 수 있을 것입니다
--스킨을 다운 받아서 소스를 보고서 답변하는 일은 하지않습니다만
답답해보여서 스킨을 다운 받아보고 답변 드립니다
뷰페이지에서 출력되는 부분에<--- 라고 되어있는 부분 height는 스킨을 보니 for문 위쪽에 있는데
처음 페이지가 열릴 때 한번 설정 되고 그 이후에는 변경할 이미지 주소만 전달해서 출력하고 있으니 바뀔리가 없습니다
게다가 $size[0][1] 값은 구하기도 이전에 나오니 아예 값이 없습니다
해당 페이지에서 소스보기해보면 height=""<--이와 같이 나온 것을 알 수 있습니다
각설하고
$size[
$i
] =
getimagesize
(
$img2
); <-- 이건 필요없는 실행입니다. 삭제하세요
각 이미지 사이즈는 이미 구해져있습니다
if
(!
file_exists
(
$img
) || !
$list
[
$i
][file][0][file])<-- 이것도 이미지 체크를
불필요하게 HDD를 뒤적여서 하고 있습니다
if(!$list[$i][file][0][view] || !$list[$i][file][1][view]) <----이렇게 수정하세요
그런데 이미지 출력 부분에 width=
"800"
height=
"<?= $size[0][1] ?>"
이렇게 되어잇는데
의도하는 것이 뭔가요?
가로는 고정 시키고 세로만 원본 사이즈로 보여주겠다는 것인가요?
onClick=
"view_img('$img2')"-->수정
onClick=
"view_img('$img2',{$list[$i][file][1][image_width]},{$list[$i][file][1][image_height]})"
> <--이것이 이미 구해져있는 가로, 세로 크기입니다
function view_img(img, ww,hh){
$('#main_img').attr('src', img);
$('#main_img').css('height',hh); //가로는 800고정, 높이를 원본으로 할 때
// $('#main_img').css({'width':ww,'height':hh}); //가로 세로 모두 원본크기로 변경할 때
}
//가로 800 고정, 세로는 자동 조절 -- 이 경우는 onClick=
"view_img(~~)는 수정할 필요없음
function view_img(img){
$('#
contents').html("<img src="+img+" width=800>");
}
이미지 출력 부분에 width=
"800"
height=
"<?= $size[0][1] ?>"
이렇게 되어잇는데
의도하는 것이 뭔가요?
가로는 고정 시키고 세로만 원본 사이즈로 보여주겠다는 것인가요
> 네, 페이지의 가로는 고정되어있고, 세로 사이즈가 유동적인 게시글을 올리는 형식이로 제작이 되어서입니다.
기본실력이 부족하다보니 불편을 끼친 거 같아서, 죄송하고 답변해주셔서 감사합니다.