그룹 최신글 불러올때 테이블명 같이 출력하고싶은데

그룹 최신글 불러올때 테이블명 같이 출력하고싶은데

QA

그룹 최신글 불러올때 테이블명 같이 출력하고싶은데

본문

최신글 스킨은 손봤는데

그룹최신글.lib 파일중 어디를 손봐야 할까요?

아래 파일입니다.

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

function latest_group($skin_dir="", $gr_id="", $rows=10, $subject_len=40,$latest_title="", $content_len="", $skin_title="", $skin_title_link="", $sort_order="", $secret=0)
{
    global $g4, $is_admin;

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

    $list = array();

    if ($sort_order)
      $sort_sql = " order by a." . $sort_order;
    else
      $sort_sql = " order by a.bn_id ";

    // $secret = 0/기타, 일반사용자: 비밀글 안보임, 관리자 : 비밀글 보임
    // $secret = 1, 일반사용자: 비밀글 보임, 관리자 : 비밀글 보임
    // $secret = 2, 일반사용자: 비밀글 안보임, 관리자 : 비밀글 안보임
    if ($secret == 1)
        $sql_secret = " ";
    else if ($secret == 2)
        $sql_secret = " and a.wr_option not like '%secret%' ";
    else {
      if ($is_admin)
          $sql_secret = " ";
      else
          $sql_secret = " and a.wr_option not like '%secret%' ";
    }

    // 검색이 허용된 게시판의 글만 select 합니다 ^^
    if ($gr_id == "")
        $gr_search = " 1 ";
    else
        $gr_search = " a.gr_id = '$gr_id' ";

    if ($g4['old_stype_search'] == 1) {
        // tmp 테이블 생성 오류가 나오는 경우, 이 코드를 쓰면 됩니다. 속도는 좀 많이 나쁘겠죠.
          $sql = " select a.bo_table, a.wr_id 
                     from $g4[board_new_table] a, 
                          ( select d.bo_tablem d.bo_table from $g4[board_table] d left join $g4[group_table] e on (d.gr_id=e.gr_id) where d.bo_use_search=1 and e.gr_use_search=1 ) b 
                    where $gr_search and a.bo_table = b.bo_table and a.wr_is_comment = '0' $sql_secret $sort_sql desc limit 0, $rows ";
        $result = sql_query($sql);
    } else if ($g4['old_stype_search'] == 2) {
        // MySQL DB 버젼이 너무나도 낮아서 sub query가 안먹히는 경우, 어쩔 수 없이 sql에서 기능을 일부 degration
        $rows2 = $rows * 3;
        $sql = " select a.bo_table, a.wr_id 
                  from $g4[board_new_table] a ,$g4[board_table] b
                  where a.gr_id = '$gr_id'  and a.bo_table = b.bo_table and b.bo_use_search = 1 and  a.wr_is_comment = '0' $sql_secret $sort_sql desc limit 0, $rows2 ";
        /*
        $sql = " select bo_table, wr_id 
                  from $g4[board_new_table] a 
                  where gr_id = '$gr_id' and wr_is_comment = '0' $sql_secret $sort_sql desc limit 0, $rows2 ";
        */
        $result = sql_query($sql);
    } else {
        // tmp 테이블을 만들고 그것에서 select를 한다.
        $sql = "select d.bo_table, d.bo_subject, d.bo_use_search, e.gr_use_search from $g4[board_table] d left join $g4[group_table] e on (d.gr_id=e.gr_id) ";
        $tmp_table = "g4_tmp_" . time();
        $sql_tmp = " create TEMPORARY table $tmp_table as $sql ";
        @mysql_query($sql_tmp) or die("<p>$sql_tmp<p>" . mysql_errno() . " : " .  mysql_error() . "<p>error file : $_SERVER[PHP_SELF]");

        $sql = " select a.bo_table, a.wr_id
                     from $g4[board_new_table] a 
                     left join $tmp_table b on (a.bo_table = b.bo_table)
                    where $gr_search and a.wr_is_comment = '0'
                          and b.bo_use_search=1 and b.gr_use_search=1 and wr_id=wr_parent
                          $sql_secret $sort_sql desc limit 0, $rows ";
        $result = sql_query($sql);
    
        $sql = " drop table $tmp_table ";
        sql_query($sql);
    }

    // 게시판 정보를 별도로 가져오게 코딩을 변경
    for ($i=0; $row = sql_fetch_array($result); $i++) {
        $tmp_write_table = $g4[write_prefix] . $row[bo_table];
        $sql_select = " wr_id, wr_subject, wr_option, wr_content, wr_comment, wr_parent, wr_datetime, wr_last, wr_homepage, wr_name, wr_reply, wr_link1, wr_link2, ca_name, wr_hit, wr_file_count ";
        $bo_select = " '" . $row[bo_table] . "' as bo_table ";
        if ($i == 0 )
            $sql2 .= " select $sql_select , $bo_select from $tmp_write_table where wr_id = '$row[wr_id]' ";
        else
            $sql2 .= " union all select $sql_select , $bo_select from $tmp_write_table where wr_id = '$row[wr_id]' ";
    }

    // Query set이 있는 경우에만 작업을
    if ($sql2) {
        $result2 = sql_query($sql2);
        $j = 0;
        for ($i=0; $row2 = sql_fetch_array($result2); $i++) {
            if ($j >= $rows)
                break;
            $board = get_board($row2[bo_table], "bo_table, bo_notice, bo_subject, bo_subject_len, bo_use_list_content, bo_use_sideview, bo_use_comment, bo_hot, bo_use_search, bo_new ");
            // 게시판에 값이 없으면 그냥 지나간다. 어쩔 수 없다. 빈칸이 하나 더 생기는거 감수하고 속도를 높인다. 게시판만 안지우면 이런일 사실 없다. ㅎㅎ
            if (!$board)
                continue;
            $write = $row2;
            $list[$j] = get_list($write, $board, $latest_skin_path, $subject_len);
            $j++;
        }
    }   

    if (!$skin_title) {
        if ($gr_id) { 
            $result4 = sql_fetch(" select gr_subject from $g4[group_table] where gr_id = '$gr_id' ");
            $skin_title = "$result4[gr_subject]";
        } else {
            $skin_title = "최근글";
        }
    }
        
    if (!$skin_title_link) {
        if ($gr_id)
          $skin_title_link = "$g4[bbs_path]/new.php?gr_id=$gr_id";
        else
          $skin_title_link = "#";
    }
    
    ob_start();
    include "$latest_skin_path/latest.skin.php";
    $content = ob_get_contents();
    ob_end_clean();

    return $content;
}

// imagetype code (getimagesize)
// 1 = GIF, 2 = JPG, 3 = PNG, 4 = SWF, 5 = PSD, 6 = BMP, 7 = TIFF(orden de bytes intel), 8 = TIFF(orden de bytes motorola), 9 = JPC, 10 = JP2, 
// 11 = JPX, 12 = JB2, 13 = SWC, 14 = IFF, 15 = WBMP, 16 = XBM. 
function latest_images($skin_dir="", $bo_table="", $gr_id="", $rows=10, $subject_len=40, $content_len="", $skin_title="", $skin_title_link="", $sort_order="", $secret=0)
{
    global $g4, $is_admin;

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

    $list = array();

    if ($gr_id) {
        // 그룹의 경우
        $sql = " select bo_table from $g4[board_table] where gr_id = '$gr_id' ";
        $result = sql_query($sql);
        $bo_sql = " a.bo_table in( ";
        for ($i=0; $row = sql_fetch_array($result); $i++) {
            if ($i == 0)
                $one = " '$row[bo_table] ' ";
            else
                $bo_sql .= "'" . $row[bo_table] . "', ";
        }
        $bo_sql .= $one . " ) ";
    } else if ($bo_table) {
        // 게시판의 경우
        $bo_sql = " a.bo_table = '$bo_table' ";
    } else {
        return;
    }
    if ($sort_order)
      $sort_sql = " order by a." . $sort_order;
    else
      $sort_sql = " order by a.bf_datetime desc ";

    // bo_table의 이미지(bf_type > 0)만 가져 옵니다.
    $sql = " select * from $g4[board_file_table] a where $bo_sql and a.bf_type > 0 $sort_sql limit 0, $rows  ";

    // Query set이 있는 경우에만 작업을
    $result = sql_query($sql);
    for ($i=0; $row = sql_fetch_array($result); $i++) {
        $tmp_write_table = $g4[write_prefix] . $row[bo_table];

        $sql2 = " select * from $tmp_write_table where wr_id = '$row[wr_id]' ";
        $row2 = sql_fetch($sql2);
        $write = $row2;

        $board = get_board($row[bo_table]);

        $list[$i] = get_list($write, $board, $latest_skin_path, $subject_len);

        $list[$i][bo_table] = $row[bo_table];
$list[$i][bo_subject] = $row[bo_subject];
         $list[$i][bo_wr_subject] = cut_str($board[bo_subject] . $list[$i][wr_subject], $subject_len); 

        $list[$i][bf_source] = $row[bf_source];
        $list[$i][bf_file] = $row[bf_file];
        $list[$i][bf_download] = $row[bf_download];
        $list[$i][bf_content] = $row[bf_content];
        $list[$i][bf_filesize] = $row[bf_filesize];
        $list[$i][bf_width] = $row[bf_width];
        $list[$i][bf_height] = $row[bf_height];
        $list[$i][bf_type] = $row[bf_type];
        $list[$i][bf_datetime] = $row[bf_datetime];
    }

    if (!$skin_title) {
        if ($gr_id) { 
            $result4 = sql_fetch(" select gr_subject from $g4[group_table] where gr_id = '$gr_id' ");
            $skin_title = "$result4[gr_subject]";
        } else {
            $skin_title = "최근글";
        }
    }
        
    if (!$skin_title_link) {
        if ($gr_id)
          $skin_title_link = "$g4[bbs_path]/new.php?gr_id=$gr_id";
        else
          $skin_title_link = "#";
    }
    
    ob_start();
    include "$latest_skin_path/latest.skin.php";
    $content = ob_get_contents();
    ob_end_clean();

    return $content;
}
?>

이 질문에 댓글 쓰기 :

답변 3

어디에 어떻게 넣으신다는건지 모르겠지만
이미 소스에 잇어요........
 
$list[$i][bo_table] = $row[bo_table]; // 테이블명
$list[$i][bo_subject] = $row[bo_subject]; //테이블제목

그누보드 원본이랑 다르게 파일이 많이 수정되어있습니다..

그리고 최신글 불러온느 소스에는 이미 적용되어 있구요

  <?
$sql = " select bo_table, bo_subject, bo_category_list from $g4[board_table] where (bo_list_level <= $member[mb_level]) and gr_id = '$gr_id' order by bo_order_search"; // 검색순서대로 정렬


      if ($list[$i]['ca_name'])
                echo " <span style=' font-size:9pt; color:#9A9A9A;'>[<a href=\"{$list[$i]['ca_name_href']}\">{$list[$i]['ca_name']}</a>]</span>";

       
   
            echo $list[$i]['icon_reply'] . " ";
            echo "<a href='{$list[$i]['href']}'>";
     
  if ($list[$i]['is_notice'])
          echo "<font style='font-family:돋움; font-size:9pt; color:#333333;'><strong>{$list[$i]['subject']}</strong></font>";
            else
                echo "{$list[$i]['bo_subject']}{$list[$i]['subject']}";
            echo "</a>";

        if ($list[$i]['comment_cnt'])
                echo " <span style='font-family:돋움;font-size:8pt;color:#F00303;'>{$list[$i]['comment_cnt']}</span>";


       
  echo " " . $list[$i][icon_new];
     
        ?>

lib파일에서 못불러오는거 같은데 lib파일을 어디를 건드려야 할지 여쭤본거에요

 $board = get_board($row[bo_table]); 다음에 print_r($board); 넣어서 값이 나오는지 보고(해보지 않아도 될 것 같긴하지만) 나온다면
그 아래 $list[$i][bo_subject] = $row[bo_subject]; <-- 아래처럼 고치세요
$list[$i][bo_subject] = $board[bo_subject];
게시판명 출력은 $list[$i][bo_subject]를 출력하면 됩니다

답변을 작성하시기 전에 로그인 해주세요.
전체 6
QA 내용 검색

회원로그인

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