에디터로 올리는 갤러리에 highslide 적용법 > 그누4 질문답변

그누4 질문답변

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

에디터로 올리는 갤러리에 highslide 적용법 정보

에디터로 올리는 갤러리에 highslide 적용법

본문

 

안녕하세요. yume 입니다.
갤러리를 하나 만들고 있는데 지에디터+지업로드+하이슬라이드 적용 갤러리입니다.
일반게시판용으로 지에디터+지업로드 는 이곳의 스킨을 이용하여
잘 사용하고 있습니다
그런데 갤러리 용도로 사용할려고 하니 여러가지 문제에 부딪히게 되네요
갤러리리스트 화면상에서의 썸네일 등은 이곳의 팁등을 활용하여 문제없이 완료하였습니다

문제는 갤러리의 view 화면입니다.
이미지를 파일첨부 방식을 통해 업로드 했을 시에는 하이슬라이드를 쉽게 적용했지만
에디터를 이용한 이미지첨부 방식으로는 하이슬라이드가 잘 적용되지 않아서
이렇게 도움요청 글을 올리게 되었습니다.

이리저리 해보다가 꼼수로
본문내용에 이미지 태그가 있을 시 새창을 띄우도록 소스를 변경해주는 코드를 이용하여
하이슬라이드의 단순 적용은 구현했습니다.

../bbs/view.php 

#### 수정전 ####

$view[content] = preg_replace("/(\<img )([^\>]*)(\>)/i", "\\1 name='target_resize_image[]' onclick='image_window(this)' style='cursor:pointer;' \\2 \\3", $view[content]);

#### 수정후 ####

$view[content] = preg_replace("/(\<img )([^\>]*)(\>)/i", "\\1 name='target_resize_image[]' onclick=\"return hs.expand(this, { slideshowGroup: 'view_view', align : 'center', dimmingOpacity : '.75', blockRightClick : true, headingOverlay: { position: 'top left', width: 'auto', opacity: .75, hideOnMouseOut: true } })\" style='cursor:pointer;' \\2 \\3", $view[content]);


이렇게하니 에디터를 이용하여 이미지를 올렸을 경우에도 하이슬라이드가 적용이 되더군요

문제는 바로 여기서부터입니다.
갤러리에 하이슬라이드를 사용한 이유가 이곳 스킨자료실에 있던
하이슬라이드 적용 시 EXIF 정보가 함께 나오는 기능이었습니다.
하지만 위의 방법으로는 단순 하이슬라이드만 적용될 뿐
본문 내용속에 포함된 각각의 이미지들의 EXIF 정보를 뽑아서 개별적으로
하이슬라이드 적용 시 표시되는 것은 불가능해 보입니다.

아래는 갤러리의 view 스킨에서의
일반적인 파일첨부 방식으로 이미지를 올렸을 경우 하이슬라이드 적용과 함께 EXIF가
표시되는 소스입니다.


for ($i=0; $i<=count($view[file]); $i++) {
            if ($view[file][$i][view]) {
    echo "<a href=\"{$view[file][$i][path]}/{$view[file][$i][file]}\" class=\"highslide\" onclick=\"return hs.expand(this, { slideshowGroup: 'view_view', align : 'center', dimmingOpacity : '.75', blockRightClick : true, headingOverlay: { position: 'top left', width: 'auto', opacity: .75, hideOnMouseOut: true } })\">";

    if(is_file("$g4[path]/data/file/$bo_table/view/{$view[file][$i][file]}"))
    echo "<img src='$g4[path]/data/file/$bo_table/view/{$view[file][$i][file]}' width='{$board[bo_image_width]}' border=0>";
 //   else
     //echo "<img src='{$view[file][$i][path]}/{$view[file][$i][file]}' width='{$view[file][$i][image_width]}' border=0>"; // 원본 이미지 크기 그대로
    else
    // echo "<img src='{$view[file][$i][path]}/{$view[file][$i][file]}'  border=0><div><script>doc_write(flash_movie(\"{$board_skin_path}/img/photo_bottom.swf\", \"ids\", 600, 46, \"transparent\"));</script></div>"; //관리자 지정한 크기로

  
    
    $images =  $view[file][$i][path] . "/" . $view[file][$i][file] ;
    $img_src = thumbnail($images, 980, 0, 0, 0, 70, 0);
     echo "<img src= '$img_src' />";
     echo "<div><script>doc_write(flash_movie(\"{$board_skin_path}/img/photo_bottom.swf\", \"ids\", 600, 46, \"transparent\"));</script></div>"; // 불당님 방식

    echo "</a><br>";
    
    $exif = @exif_read_data("{$view[file][$i][path]}/{$view[file][$i][file]}");
    if (isset($exif[Make]) || isset($exif[Model])){
     echo "<div class='highslide-heading' >" ;
                 //$exif = @exif_read_data("{$view[file][$i][path]}/{$view[file][$i][file]}");
                 if (isset($exif[Make]) || isset($exif[Model])) echo "카메라모델 : $exif[Make] - $exif[Model]<br>";

                 if (isset($exif[DateTimeOriginal])) echo "촬영일시 : $exif[DateTimeOriginal]<br>";
                 if (isset($exif[COMPUTED][Width]) || isset($exif[COMPUTED][Height])) echo "원본 이미지크기 : {$exif[COMPUTED][Width]} x {$exif[COMPUTED][Height]} 픽셀<br>";
                 if (isset($exif[COMPUTED][ApertureFNumber])) echo "조리개 : {$exif[COMPUTED][ApertureFNumber]}<br>";
                 if (isset($exif[ISOSpeedRatings])) echo "ISO : $exif[ISOSpeedRatings]<br>";
                 if (isset($exif[WhiteBalance])) echo "화이트밸런스 : {$exif[WhiteBalance]}<br>";
                 if (isset($exif[ExposureTime])) echo "노출시간 : $exif[ExposureTime] 초<br>";
                 if (isset($exif[ExposureBiasValue])) echo "노출보정 : $exif[ExposureBiasValue]<br>";
                 if (isset($exif[COMPUTED][CCDWidth])) echo "CCD : {$exif[COMPUTED][CCDWidth]}<br>";
                 if (isset($exif[Flash])) echo "플래쉬 : {$exif[Flash]}<br>";
                 echo "</div><br>" ;
    }
    echo "<br>";
   }
        }


위의 소스는 정상적인 소스이며 파일첨부 방식을 이용해 이미지 업로드 시
하이슬라이드 적용과 함께 EXIF 가 표현되는 소스입니다.

가장 윗부분의 하이슬라이드 적용 소스를 제가 위에 말씀드렸듯이 bbs/view.php 파일에
적용하여 단순 하이슬라이드 적용은 동작하고 있으나
그 아래 보이는 소스 즉
하이슬라이드가 작동하면서 레이어로 된 이미지의 EXIF 정보가 노출되는 소스는

본문속에 이미지태그가 포함되어 있는 에디터를 이용한 이미지첨부 방식으로는
적용하기가 쉽지 않네요.

특정부분에 대한 질문이라 관심이 있으셨던 분이셔야 도움을 받을 수 있겠지만
고수님들이라면 한번 쭉 둘러보시고 어떻게 하면 되는지 방향이라도 좀 알려주세요
긴 글 읽어 주셔서 감사드립니다

아래는 확인하실 수 있는 작업중인 곳의 갤러리입니다
현재 방식(파일첨부/에디터이용)에 상관없이 하이슬라이드 적용은 되어 있고
하이슬라이드 시 EXIF 표시는 파일첨부일 경우에만 보이는 현상태입니다.

# 갤러리 리스트 
http://jihoo.kr/bbs/board.php?bo_table=photo

# 갤러리 업로드방식 (지에디터+지업로드)
http://jihoo.kr/bbs/write.php?bo_table=photo


감사합니다.

댓글 전체

재가 생각한바를 말씀드리겠습니다.
꼼수라고 말씀하신 레이어 팝업창 실행시 키는 스크립트를 바꾸셨는대요
그 바로 윗부분에
  $exif = @exif_read_data("{$view[file][$i][path]}/{$view[file][$i][file]}");
exif 를 불러와서 새로운 변수에담아서 레이어 띠우는 부분에 전달자에 같이 넘기시고
해당 레이어 팝업띠우는 스크립트에서 내용을 뿌려주겠끔 수정해주시면 될듯싶내요..
전체 66,554 |RSS
그누4 질문답변 내용 검색

회원로그인

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