카테고리별 최신글 > 그누3 팁자료실

그누3 팁자료실

카테고리별 최신글 정보

카테고리별 최신글

본문

1). 메인에 해당게시판의 카테고리가 가로로나열 되고,그 카테고리 밑으로 그카테고리에 해당 되는 최신글들이 세로로 나열된다.
2). 카테고리도 상단의 게시판 제목처럼 메뉴가 되고 그아래 최신글들이 올라오는 형태입니다.메인상에서...
3). 해당카테고리 메뉴를 클릭하면 카테고리별 최신글 목록이 쭈욱 나열되면 되겠죠...

위의 1,2,3이 모두 잘 적용되었는지 모르겠군요.


1. 첨부파일을 받아서 최신글 스킨에 폴더에 디렉토리생성후 저장한다.
2. 다음 내용을 lib/developer.lib.php에 저장한다.
  (만약 3.23 이상버전의 사용자라면 임의의 파일명으로 저장해서 lib 디렉토리에 넣어도됨)
  ############# 추가할 내용 시작
    // description : 카테고리별 최신글 추출
    // created by : root(http://www.threes.org
    // version : 1.0
    // created : 2003.12.27
    // usage :
    //      latest_cat('byflower', 'bwork', '10', '20', '50', '1,2,3,4');
    //      latest_cat('byflower', 'bwork', '10', '10', '50', '');
    // sample :
    //      http://threes.org/gnu3/?doc=main/byflower.php
    //
    function latest_cat($skin_dir='', $bo_table, $rows=10, $title_len=40, $content_len=50, $wherecaid)
    {
        global $latest_skin, $cfg;
   
        $tmp_latest_skin = $latest_skin;
   
        // 스킨디렉토리값이 넘어왔다면
        if ($skin_dir) {
            $latest_skin = "./bbs/skin/latest/$skin_dir";
        }
   
        $sql = " select * from $cfg[table_board] where bo_table = '$bo_table' ";
        $bo = sql_fetch($sql);
        $bo_subject = $bo[bo_subject];
   
        // category list
        $ca_sql = " select * from {$cfg[write_table_prefix]}{$bo_table}_cat ";
        if($wherecaid) $ca_sql .= " where ca_id in($wherecaid) ";
        $ca_sql .= " order by ca_id ";
        $ca_result = sql_query($ca_sql);
   
        for ($ca_i=0; $ca_row = mysql_fetch_array($ca_result); $ca_i++) {
   
        $sql = " select *
                  from {$cfg[write_table_prefix]}{$bo_table}
                  where wr_comment = 0 and ca_id = $ca_row[ca_id]
                  order by wr_id desc limit 0, $rows ";
        $result = sql_query($sql);
   
        for ($i=0; $row = mysql_fetch_array($result); $i++) { 
            $list[$ca_i][$i] = $row;
   
            $list[$ca_i][$i][href] = "./?doc=bbs/gnuboard.php&bo_table=$bo_table&wr_id=$row[wr_id]";
   
            // 코멘트 카운트
            $list[$ca_i][$i][commentcnt] = "";
            if ($row[wr_commentcnt] > 0) {
                $list[$ca_i][$i][commentcnt] = "($row[wr_commentcnt])";
            }
   
            $list[$ca_i][$i][name] = gblayer($row[mb_id], cut_str($row[wr_name],10), $row[wr_email], $row[wr_homepage]);
            $list[$ca_i][$i][subject] = conv_subject($row[wr_subject], $title_len,"…");
            $list[$ca_i][$i][content] = get_text(cut_str($row[wr_content], $content_len,"…"));
            $list[$ca_i][$i][date] = substr($row[wr_datetime],2,8);
   
            $table = "{$cfg[write_table_prefix]}{$bo_table}";
            $is_category = false;
            if ($bo[bo_use_category]) {
                $is_category = true;
                $category_option = get_category_option($table);
            }
   
            $list[$ca_i][$i][ca_name] = get_category_name($table, $row[ca_id]);
   
            $list[$ca_i][$i][icon_new] = "";
            if ($row[wr_datetime] >= date("Y-m-d H:i:s", time() - $bo[bo_new] * 3600)) {
                $list[$ca_i][$i][icon_new] = "<img src='$latest_skin/icon_new.gif' align=absmiddle> ";
            }
   
        }
        mysql_free_result($result);
   
        }
        mysql_free_result($ca_result);
   
        include "$latest_skin/latest.skin.php";
   
        $latest_skin = $tmp_latest_skin;
    }
  ############# 추가할 내용 끝
 
3. 호출방식 :
    latest_cat($skin_dir='', $bo_table, $rows=10, $title_len=40, $content_len=50, $wherecaid)
    $wherecaid는 전체카테고리를 보여주고 싶을 경우는 ex2)처럼 ''로 처리하시고, 임의의 카테고리를 선택하고 싶은경우 원하는 카테고리 ca_id 값을 '와 '사이에 ,로 구분하여 기재함.
    ex1은 카테고리 1,2,3,4만 보여주기 위해서 '1,2,3,4'로 설정했음.
    ex1) latest_cat('스킨폴더', '테이블명', '10', '20', '50', '1,2,3,4');
    ex2) latest_cat('스킨폴더', '테이블명', '10', '10', '50', '');

4. 링크의 byflower.php는 다음처럼 되어있습니다.
    <?
    if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
   
    define("_DOCTYPE_", "DESIGN");
   
    $html_title = "그누보드3";
   
    echo " <table width=100% align=center>";
    echo " <tr><td>";
   
        //function latest_cat($skin_dir='', $bo_table, $rows=10, $title_len=40, $content_len)
        latest_cat('byflower', 'bwork', '10', '20', '50', '1,2,3,4'); // 카테고리 1,2,3,4 출력
        latest_cat('byflower', 'bwork', '10', '10', '50', '');  // 전체카테고리 출력
   
    echo " </td></tr>";
    echo " </table>\n";
    ?>
추천
0

댓글 전체

루트님 안녕하세요 좋은 소스 넘 감사드리고 있고요...

다름이 아니라... 루트님께서 만들어주신 카테고리별 최신글을 뽑아오는 소스에서...

현재 카테고리 이름이 출력이 되고 그 카테고리에 해당하는 글의 제목들을 뽑아오는 것으로 알고 있는데 해당 글의 제목 뿐 아니라 이미지를 같이 뽑아오는 방법이 없을까 해서요...

보여주는 형태는 제목 옆에 이미지가 붙게끔...

항상 감사합니다.

좋은 하루되세요~~~
어디에 있는 어떤 이미지를 어떻게 보여주기를 원하는지?
현재 위의 내용은 카테고리 아래쪽에 해당 카테고리의 제목만을 보여주는 것인데..
위 프로그램에서 이미지를 보여주기를 원하는것인지?
위 프로그램에서 이미지를 보여주기를 원한다면 어떻게 표시해야 하는지??
대단히 감사합니다~~~^^
root님~~~!!
제가 원하던 바로 그것입니다~~~^^
제가 너무 늦게 확인을 했네요~~~
이렇게나 고마운 선물을 올연말에 root님에게 받는 것 같네요~~~
다시금 감사 드립니다...
참 그리고 너무 수고 하셨습니다^^
그리고 빨리 적용해 봐야 겠네요~~~^^
항상 행복 하시고 건강 하세요~~~^^
참 그리고 도와 주실려고 애쓰신 임성길(지니아빠0님이랑, 케빈님,,,그리고 관심 가져 주신 모든 분들도 새해 복많이 받으세요~~~^^;;
전체 80
그누3 팁자료실 내용 검색

회원로그인

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