테스트 사이트 - 개발 중인 베타 버전입니다

인기글에 이미지(썸네일) 가져오기 도와주세요 채택완료

9년 전 조회 4,008

인기글 출력 소스에서 이미지(썸네일) 까지 가져오려면 어떻게 해야하나요?

아무리해도 이미지는 NO IMAGE 라고만 뜨네요.

 

/lib/latest_popular_lib.php 파일 

 

인기글 소스에 썸네일 가져오는 소스를 추가했는데요

추가된 소스는 붉게 표시했습니다.

누가 좀 보시고 알려주십시오 이거 가지고 벌써 며칠째 하고 있는데 이제는 짜증이나네요.

 

 

if (!defined('_GNUBOARD_')) exit;

 

 

 

 

// 썸네일

include_once(G5_LIB_PATH.'/thumbnail.lib.php');

 

$thumb_width = 250;

$thumb_height = 160; //표시할 이미지의 세로사이즈

 

// 인기글 추출

// $cache_time 캐시 갱신시간

function latest_popular($bo_table, $rows=5, $subject_len=5, $term='', $options='')

{

  //  global $g5; 아래걸로 수정

  global $g5,$thumb_width,$thumb_height; 

 

 

 

switch($term){

case '일간': $term_time = date("Y-m-d H:i:s", G5_SERVER_TIME-3600*24*30); break;

case '주간': $term_time = date("Y-m-d H:i:s", G5_SERVER_TIME-3600*24*7); break;

case '월간': $term_time = date("Y-m-d H:i:s", G5_SERVER_TIME-3600*24*30); break;

}

 

        $list = array();

 

     if($bo_table){ //각 게시판 출력

$sql = " select * from {$g5['board_table']} where bo_table = '{$bo_table}' ";

        $board = sql_fetch($sql);

        $bo_subject = get_text($board['bo_subject']);

 

        $tmp_write_table = $g5['write_prefix'] . $bo_table; // 게시판 테이블 전체이름

$sql_between = " wr_datetime between '$term_time' and '".G5_TIME_YMDHIS."' ";

        $sql = " select * from {$tmp_write_table} where wr_is_comment = 0 and {$sql_between} order by {$options} limit 0, {$rows} ";

        $result = sql_query($sql);

        for ($i=0; $row = sql_fetch_array($result); $i++) {

            $list[$i] = get_list($row, $board, $latest_skin_url, $subject_len);

        }

    }else{ //전체 게시판 출력

 

       $sql_between = " a.bn_datetime between '$term_time' and '".G5_TIME_YMDHIS."' ";

       $sql_common = " from {$g5['board_new_table']} a, {$g5['board_table']} b where a.bo_table = b.bo_table and b.bo_use_search = 1 and a.wr_id = a.wr_parent and {$sql_between} ";

       $sql_order = " order by a.bn_datetime desc ";

 

       $sql = " select a.*, count(b.bo_subject) as cnt {$sql_common} {$sql_order} limit 0, {$rows} ";

       $row = sql_fetch($sql);

  

 

       if($row[cnt] > 0){

$sql = " select a.*, b.bo_subject {$sql_common} {$sql_order} limit 0, {$rows} ";

      $result = sql_query($sql);

      for ($i=0; $row = sql_fetch_array($result); $i++){

$tmp_write_table = $g5['write_prefix'].$row['bo_table'];

$bo_table = $row['bo_table'];

if($i > 0)

$sql2 .= " union ";

$sql2 .= "(select '{$bo_table}' as bo_table, wr_id, wr_subject, wr_hit, wr_good from {$tmp_write_table} where wr_datetime between '{$term_time}' and '".G5_TIME_YMDHIS."') ";

      }

$sql2 .= " order by ".$options." limit 0, 10";

$result2 = sql_query($sql2);

for ($i=0; $row2 = sql_fetch_array($result2); $i++){

   $list[$i]['href'] = G5_BBS_URL.'/board.php?bo_table='.$row2['bo_table'].'&wr_id='.$row2['wr_id'];

   $list[$i]['subject'] = $row2['wr_subject'];

}

  }

 

    }

 

    ob_start();

?>

 

 

 

$content = ob_get_contents();

    ob_end_clean();

 

    return $content;

}

?>

 

 

 

     

     

  • 타이틀

       

    •   

        

       

        

        

  •  

     

     

 

 

댓글을 작성하려면 로그인이 필요합니다.

답변 5개

채택된 답변
+20 포인트

아...bo_table 값을 안주고 전체로 뽑을때 문제가 있네요.....

$list[$i]['bo_table'] = $row2['bo_table']; 

아래 쪽에

$list[$i]['wr_id'] = $row2['wr_id']; 

추가해 주세요.

 

요런 에러에서 문제 찾는 방법은, 함수에 필요한 변수들이 정확하게 입력이 되고 있는지 부터 확인하는게 좋습니다.

그 다음으로는 함수내 쿼리문을 통해 나온 결과값이 정상적으로 들어가 있는지.등등..

 

 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

위에 대댓글 쓰기가 오류나서 여기에 씁니다.

그림자밟기 님 해결했습니다. 도움주셔서 너무 감사드립니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

흠...이상해서 테스트해보니 저는 정상적으로 이미지가 나오고 있습니다.

다른 이유가 있는 듯 한데요, 첨부파일로 이미지 올리고 우선적으로 테스트해보세요.

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

혹시 /lib/latest_popular_lib.php 위 소스 파일 위치가 여기고...

index.php 파일(/theme/basic/index.php)에서
<div>
<?php include_once(G5_LIB_PATH.'/latest_popular.lib.php'); ?>
</div>
이렇게 가져오셨나요?

첨부파일이 아니라 에디터로 사진 올려서 그랬나 싶어 다시 첨부파일로 올려도
똑같이 NO IMAGE 만 뜨네요.

정상적으로 이미지가 나온다고하시니 뭘 어떻게 해야할지 더 갑갑해지네요..
if($thumb['src']) {
$img_content = '<img class="img_left" src="'.$thumb['src'].'" alt="'.$list[$i]['subject'].'" width="'.$thumb_width.'" height="'.$thumb_height.'">';
} else {
$img_content = 'NO IMAGE';
}
echo $img_content;


$thumb['src'] 에 링크가 안되는것 같습니다. NO IMAGE 부분 대신 해당 소스를 넣어보면 "" 이렇게 밖에 표기가 안되네요.

댓글을 작성하려면 로그인이 필요합니다.

보니깐 썸네일 뽑을때는 게시판ID를 $list[$i]['bo_table'] 요걸로 넘겨주는데

상단소스에는 $list[$i]['bo_table'] 정의가 없네요.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

$list[$i] = get_list($row, $board, $latest_skin_url, $subject_len);

=>

$list[$i] = get_list($row, $board, $latest_skin_url, $subject_len);

$list[$i]['bo_table'] = $bo_table;

 

 

$list[$i]['href'] = G5_BBS_URL.'/board.php?bo_table='.$row2['bo_table'].'&wr_id='.$row2['wr_id'];

$list[$i]['subject'] = $row2['wr_subject'];

=>

$list[$i]['href'] = G5_BBS_URL.'/board.php?bo_table='.$row2['bo_table'].'&wr_id='.$row2['wr_id'];

$list[$i]['subject'] = $row2['wr_subject'];

$list[$i]['bo_table'] = $row2['bo_table'];

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

해봤는데 여전히 안되네요 좀더 찾아볼게요. 매번 답변 감사드립니다.

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인

전체 질문 목록

🐛 버그신고