게시판 본문(view.skin.php)에서 썸네일을 불러오려고 합니다.

게시판 본문(view.skin.php)에서 썸네일을 불러오려고 합니다.

QA

게시판 본문(view.skin.php)에서 썸네일을 불러오려고 합니다.

답변 2

본문

안녕하세요.


게시판에 첨부파일로 올린 이미지를 본문에서 썸네일로 불러오려고
아래와 같은 방법을 이용했습니다. 


<?php
$filename = $view['file'][0]['file'];
$filepath = G5_DATA_PATH.'/file/'.$bo_table;
$filesrc = G5_DATA_URL.'/file/'.$bo_table.'/'.$filename;
$thumb = thumbnail($filename, $filepath , $filepath , 400, 400, false, true);
$thumbsrc = G5_DATA_URL.'/file/'.$bo_table.'/'.$thumb;
?>
<img src="<?=$thumbsrc?>">

이렇게 하면 첫번째 첨부 파일의 썸네일이 생성되고,

 


<?php
$filename = $view['file'][1]['file'];
$filepath = G5_DATA_PATH.'/file/'.$bo_table;
$filesrc = G5_DATA_URL.'/file/'.$bo_table.'/'.$filename;
$thumb = thumbnail($filename, $filepath , $filepath , 400, 400, false, true);
$thumbsrc = G5_DATA_URL.'/file/'.$bo_table.'/'.$thumb;
?>
<img src="<?=$thumbsrc?>">

이렇게 하면 두번재 첨부 파일의 섬네일 생성되고요.

 

그런데, 이렇게 따로따로 불어오지 않고, 

첨부한 이미지를 한번에 모두 썸네일로 불러오고 싶은데, 

방법을 모르겠습니다.

 

대략 

for ($i=1; $i<=10; $i++) {

를 이용하니 썸네일이 주소는 제대로 생성이 되는듯 한데,

정확히 불러오는 방법을 모르겠네요.

 

혹시 아시는 분 답변 주시면 정말 감사하겠습니다.

이 질문에 댓글 쓰기 :

답변 2

view스킨 상단에서 모든 화일 썸네일 생성하기

   for ($i=0; $i<$view['file']['count']; $i++) {
           $filename = $view['file'][$i]['file'];
           $filepath = G5_DATA_PATH."/file/{$bo_table}";
          $thum[] = thumbnail($filename, $filepath, $filepath, 400, 400);
  }

 $path= G5_DATA_URL.'/file/'.$bo_table;

 

사용할 곳에서  img src="< ? $path? >/< ? $thumb[0]? > 처럼 하나씩 출력

또는 for문 사용

for($k=0; $k < $view['file']['count']; $k++){ ? >

<  img src=~~~~/<? $thumb[$k] ? >

 

 

 

 


 

친절하신 답변 정말 감사합니다.
<?php
  for ($i=0; $i<$view['file']['count']; $i++) {
          $filename = $view['file'][$i]['file'];
          $filepath = G5_DATA_PATH."/file/{$bo_table}";
          $thum[] = thumbnail($filename, $filepath, $filepath, 400, 400);
  }

 $path= G5_DATA_URL.'/file/'.$bo_table;
?>
이런식으로 하면 되는건가요?

그런데, 이렇게 하면 아래와 같은 에러가 나오네요.
99번째 줄이 $thum[] = thumbnail($filename, $filepath, $filepath, 400, 400); 부분입니다.

Fatal error: Uncaught ArgumentCountError: Too few arguments to function thumbnail(), 5 passed in \view.skin.php on line 99 and at least 6 expected in \thumbnail.lib.php:222 Stack trace: #0 \view.skin.php(99):...

친절하신 답변 감사합니다.

알려주신대로 하니 이제 에러는 나지 않습니다.
그런데, 파일을 불러 올 때 이런식으로 하는게 맞는지요?
<img src="<?=$path?>/<?=$thumb[0]?>">
이렇게 했더니,
이미지 주소가 주소/data/file/게시판테이블명/
까지만 나옵니다.

아... 제가 바보짓 했었군요.
정상적으로 잘 보여집니다.
다시 한번 감사드립니다.

혹시 시간 되실 때 for문 사용해서 한번에 다 보여지게 하는것도 알려주시면 정말 감사하겠습니다.
위에 적어주신걸 적용해 봐도 잘 안되는거 같아서요.

좀 더 쉽게 할 수 있는 방법으로 구현을 하자면

 

lib/thumnail.lib.php파일에서 

get_file_thumbnail을 찾아서

 


function get_file_thumbnail($file, $thumb_width=0){
    if( ! is_array($file) ) return '';
    if( preg_match('/(\.jpg|\.jpeg|\.gif|\.png|\.bmp|\.webp)$/i', $file['file']) && $contents = run_replace('get_file_thumbnail_tags', '', $file) ){
        return $contents;
    } else if ($file['view']) {
        if ($thumb_width){
            return get_view_thumbnail($file['view'],$thumb_width);
        } else {
            return get_view_thumbnail($file['view']);            
        }
    }
    return $file['view'];
}

 

식으로 thumb_width를 받아올 수 있게 수정을 하구요

 

 

400사이즈로 보여지고 하는 보드 스킨의 view.skin.php에서

 


echo get_file_thumbnail($view_file);

 

이라고 된 부분을


echo get_file_thumbnail($view_file,400);

 

 

그 아래부분도 혹시 모르니까 


get_view_thumbnail($view['content']);

된 부분을


get_view_thumbnail($view['content'],400);

 

이런식으로 하면 400px짜리 썸네일로 이미지들 다 자동 생성해서 보여줄 거 같습니다..

 

 

 

친절하신 답변 정말 감사합니다.
이렇게 하니 본문의 이미지가 정말 썸네일로 나오네요.
그런데... 제가 단순히 이미지만 나오게 하는게 아니라 저 이미지로 무언가 구현을 하려고 합니다.

그래서 이미지가 제가 본문에 적은 소스처럼 <?=$thumbsrc?> 이런 식으로 이미지 주소만 나와야 하는데,
알려주신 방법으로 하면 이미지에 새창 링크가 있는채로 나와서 적용이 안되네요.
본문 이미지 새창 링크 없애는 방법은 검색해 봤는데, 특정 게시판만 하는게 아니라 그누보드 전체에 적용되는거라서 적용하기 힘들고요.
조금더 검색해 보겠습니다.

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 41
© SIRSOFT
현재 페이지 제일 처음으로