최근글에서 이미지를 추출하려고 합니다. > 그누4 질문답변

그누4 질문답변

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

최근글에서 이미지를 추출하려고 합니다. 정보

최근글에서 이미지를 추출하려고 합니다.

본문

이곳에서 userfunction.lib.php를 보고 해당 파일을 생성하였습니다.
 
//userfunction.lib.php의 내용
********************************************************************************
<? 
if (!defined('_GNUBOARD_')) exit; 
/// 함수 정의 시작 
// 최신글 추출 - 선택한 그룹별로 원하는 수만큼 보여줌 
function latest_group($skin_dir="", $gr_id, $rows=10, $subject_len=40, $category="", $orderby="") 

    global $config; 
    global $g4; 
$list = array(); 
$limitrows = $rows; 
$sqlgroup = " select bo_table, bo_subject from $g4[board_table] where gr_id = '$gr_id' and  bo_use_search=1 order by bo_order_search"; 
$rsgroup = sql_query($sqlgroup); 
if ($skin_dir) 
$latest_skin_path = "$g4[path]/skin/latest/$skin_dir"; 
else 
$latest_skin_path = "$g4[path]/skin/latest/$config[cf_latest_skin]"; 
for ($j=0, $k=0; $rowgroup=sql_fetch_array($rsgroup); $j++) { 
$bo_table = $rowgroup[bo_table]; 
// 테이블 이름구함 
$sql = " select * from {$g4[board_table]} where bo_table = '$bo_table'"; 
$board = sql_fetch($sql); 
$tmp_write_table = $g4[write_prefix] . $bo_table; // 게시판 테이블 실제이름 
// 옵션에 따라 정렬 
$sql = "select * from $tmp_write_table where wr_is_comment = 0 "; 
$sql .= (!$category) ? "" : " and ca_name = '$category' "; 
$sql .= (!$orderby) ? "  order by wr_id desc " : "  order by $orderby desc, wr_id desc "; 
$sql .= " limit $limitrows"; 
$result = sql_query($sql); 
for ($i=0; $row = sql_fetch_array($result); $i++, $k++) { 
if(!$orderby) $op_list[$k] = $row[wr_datetime]; 
else  { 
$op_list[$k] = is_string($row[$orderby]) ? sprintf("%-256s", $row[$orderby]) : sprintf("%016d", $row[$orderby]); 
$op_list[$k] .= $row[wr_datetime]; 
$list[$k] = get_list($row, $board, $latest_skin_path, $subject_len); 


if($k>0) array_multisort($op_list, SORT_DESC, $list); 
if($k>$rows) array_splice($list, $rows); 
ob_start(); 
include "$latest_skin_path/latest.skin.php"; 
$content = ob_get_contents(); 
ob_end_clean(); 
return $content; 

/// 함수 정의 끝 
?>
********************************************************************************
 
 
 
그리고 스킨을 하나 만들었습니다.
 
<?
if (!defined("_GNUBOARD_")) exit;
?>
<?
for ($k=0; $k<count($list); $k++) {
 $subject = cut_str(get_text($list[$k][subject]), 30, '...');
 $content = cut_str(get_text($list[$k][wr_content]), 100);
 if (!$list[$k][file][0][file]) {
        $img = "$g4[path]/img/no_image.gif";
 } else {
  $img =  "$g4[path]/data/file/$bo_table/".urlencode($list[$k][file][0][file]);
 }
?>
<tr>
  <td width="80%">
<?
    if ($list[$k][is_notice]) {
      echo "<a href='{$list[$k][href]}'><font class='viewTitle'>{$subject}</font></a><font class='viewAuthor'> | {$list[$k][datetime2]}</font>";
} else {
      echo "<a href='{$list[$k][href]}'><font class='viewTitle'>{$list[$k][subject]}</font></a><font class='viewAuthor'> | {$list[$k][datetime2]}</font>";
} ?>
  </td>
</tr>
<tr>
  <td class="table_td_b01"><img src="<?=$img?>" width='100' height='100'><?=$content?></td>
</tr>
<?
  } ?>
<? if(count($list)==0){echo"<tr><td align='center' height='50'>게시물이 없습니다.</td></tr>"; } ?>
 
위 처럼 빨간부분에 이미지를 추출하려는데 계속해서
 
 if (!$list[$k][file][0][file]) {
        $img = "$g4[path]/img/no_image.gif";
 } else {
  $img =  "$g4[path]/data/file/$bo_table/".urlencode($list[$k][file][0][file]);
 }
 
의 부분의 $bo_table를 보면 전체 그룹의 게시판 중 제일 마지막거만  불러옵니다.
제가 원하는건 각각의 게시글의 처럼 보드테이블이 자동으로 인식되게 하고자 합니다.
위 코드로는 제목은 정상적으로 해당 게시판의 테이블을 지정하고 있어 그룹내의 여러 테이블에서 글을 뽑아 오더라도 각각의 게시판으로 링크가 잘 걸리는데 이미지 파일은 못 읽어 오네요..(당연히 못 읽어 오겠죠.. /data/file/게시판테이블명/이미지파일명 의 형태로 불러와야 하니까)
 
/data/file/게시판테이블명/이미지파일명 에서 이미지 파일명은 잘 불어오니까 파란부분의 게시판 테이블명만 불러오면 될 거 같은데 잘 모르겠습니다.
 
답변 부탁드립니다.

댓글 전체

userfunction.lib.php
<?
if (!defined('_GNUBOARD_')) exit;
/// 함수 정의 시작

// 최신글 추출 - 선택한 그룹별로 원하는 수만큼 보여줌
function latest_group($skin_dir="", $gr_id, $rows=10, $subject_len=40, $category="", $orderby="")
{
global $config;
global $g4;

$list = array();
$limitrows = $rows;

$sqlgroup = " select bo_table, bo_subject from $g4[board_table] where gr_id = '$gr_id' and  bo_use_search=1 order by bo_order_search";
$rsgroup = sql_query($sqlgroup);

if ($skin_dir)
$latest_skin_path = "$g4[path]/skin/latest/$skin_dir";
else
$latest_skin_path = "$g4[path]/skin/latest/$config[cf_latest_skin]";

for ($j=0, $k=0; $rowgroup=sql_fetch_array($rsgroup); $j++) {
$bo_table = $rowgroup[bo_table];

// 테이블 이름구함
$sql = " select * from {$g4[board_table]} where bo_table = '$bo_table'";
$board = sql_fetch($sql);

$tmp_write_table = $g4[write_prefix] . $bo_table; // 게시판 테이블 실제이름

// 옵션에 따라 정렬
$sql = "select * from $tmp_write_table where wr_is_comment = 0 ";
$sql .= (!$category) ? "" : " and ca_name = '$category' ";
$sql .= (!$orderby) ? "  order by wr_id desc " : "  order by $orderby desc, wr_id desc ";
$sql .= " limit $limitrows";

$result = sql_query($sql);

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

if(!$orderby) $op_list[$k] = $row[wr_datetime];
else  {
$op_list[$k] = is_string($row[$orderby]) ? sprintf("%-256s", $row[$orderby]) : sprintf("%016d", $row[$orderby]);
$op_list[$k] .= $row[wr_datetime];
}

$list[$k] = get_list($row, $board, $latest_skin_path, $subject_len);

$list[$k][bo_table] = $board[bo_table];
$list[$k][bo_subject] = $board[bo_subject];

$list[$k][bo_wr_subject] = cut_str($board[bo_subject] . $list[$k][wr_subject], $subject_len);
}
}
if($k>0) array_multisort($op_list, SORT_DESC, $list);
if($k>$rows) array_splice($list, $rows);

ob_start();
include "$latest_skin_path/latest.skin.php";
$content = ob_get_contents();
ob_end_clean();
return $content;
}
/// 함수 정의 끝
?>


최신글 스킨에서 아래 부분을

 if (!$list[$k][file][0][file]) {
        $img = "$g4[path]/img/no_image.gif";
 } else {
  $img =  "$g4[path]/data/file/$bo_table/".urlencode($list[$k][file][0][file]);
 }

=====>

 if (!$list[$k][file][0][file]) {
        $img = "$g4[path]/img/no_image.gif";
 } else {
  $img =  "$g4[path]/data/file/{$list[$k][bo_table]}/".urlencode($list[$k][file][0][file]);
 }로 수정해보세요.
전체 66,554 |RSS
그누4 질문답변 내용 검색

회원로그인

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