그룹내 특정 분류 최근글을 메인화면에 최근게시물로 추출 방법 질문이요..

그룹내 특정 분류 최근글을 메인화면에 최근게시물로 추출 방법 질문이요..

QA

그룹내 특정 분류 최근글을 메인화면에 최근게시물로 추출 방법 질문이요..

본문

그룹내의 모든 게시판에서 동일한 분류를 사용하고

(board(그룹명)에 속해있는 10개의 게시판 분류는 신상,구제,재고 모두 동일

현재 그룹에 속해 있는 최근게시물은 추출은 되고 있는데 

분류를 나눌 예정이라서

그룹내 신상 분류에 업로드되는 게시물의 최근글을 메인화면에 최근게시물로 추출이 가능할까요?

 

<?=latest_group("theme/gr_product”,”board”,10,20); //그룹 최근글 latest_group('스킨','그룹id','글수','제목 글자 수')?> =그룹내 게시물중 최근글 추출

<?=latest_group("theme/gr_product”,”board”,10,20); //그룹 최근글 latest_group('스킨','그룹id','분류','글수','제목 글자 수')?>-이렇게 응용은 안될까요?

 

현재 사용중인 latest.lib.php

<?php

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

 

// 최신글 추출

// $cache_time 캐시 갱신시간

function latest($skin_dir='', $bo_table, $rows=10, $subject_len=40, $cache_time=1, $options='')

{

    global $g5;

 

    if (!$skin_dir) $skin_dir = 'basic';

 

    if(preg_match('#^theme/(.+)$#', $skin_dir, $match)) {

        if (G5_IS_MOBILE) {

            $latest_skin_path = G5_THEME_MOBILE_PATH.'/'.G5_SKIN_DIR.'/latest/'.$match[1];

            if(!is_dir($latest_skin_path))

                $latest_skin_path = G5_THEME_PATH.'/'.G5_SKIN_DIR.'/latest/'.$match[1];

            $latest_skin_url = str_replace(G5_PATH, G5_URL, $latest_skin_path);

        } else {

            $latest_skin_path = G5_THEME_PATH.'/'.G5_SKIN_DIR.'/latest/'.$match[1];

            $latest_skin_url = str_replace(G5_PATH, G5_URL, $latest_skin_path);

        }

        $skin_dir = $match[1];

    } else {

        if(G5_IS_MOBILE) {

            $latest_skin_path = G5_MOBILE_PATH.'/'.G5_SKIN_DIR.'/latest/'.$skin_dir;

            $latest_skin_url  = G5_MOBILE_URL.'/'.G5_SKIN_DIR.'/latest/'.$skin_dir;

        } else {

            $latest_skin_path = G5_SKIN_PATH.'/latest/'.$skin_dir;

            $latest_skin_url  = G5_SKIN_URL.'/latest/'.$skin_dir;

        }

    }

 

    $cache_fwrite = false;

    if(G5_USE_CACHE) {

        $cache_file = G5_DATA_PATH."/cache/latest-{$bo_table}-{$skin_dir}-{$rows}-{$subject_len}.php";

 

        if(!file_exists($cache_file)) {

            $cache_fwrite = true;

        } else {

            if($cache_time > 0) {

                $filetime = filemtime($cache_file);

                if($filetime && $filetime < (G5_SERVER_TIME - 3600 * $cache_time)) {

                    @unlink($cache_file);

                    $cache_fwrite = true;

                }

            }

 

            if(!$cache_fwrite)

                include($cache_file);

        }

    }

 

    if(!G5_USE_CACHE || $cache_fwrite) {

        $list = array();

 

        $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 = " select * from {$tmp_write_table} where wr_is_comment = 0 order by wr_num limit 0, {$rows} ";*/

        /*$sql = " select * from {$tmp_write_table} where wr_is_comment = 0".$where." order by wr_num limit 0, {$rows} ";*/

        /*$sql = " select * from {$tmp_write_table} where ca_name='{$ca_name}' AND wr_is_comment = 0 order by wr_num limit 0, {$rows} ";*/

        $sql = " select * from {$tmp_write_table} where wr_is_comment = 0".$where." order by wr_num 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);

        }

 

        if($cache_fwrite) {

            $handle = fopen($cache_file, 'w');

            $cache_content = "<?php\nif (!defined('_GNUBOARD_')) exit;\n\$bo_subject='".sql_escape_string($bo_subject)."';\n\$list=".var_export($list, true)."?>";

            fwrite($handle, $cache_content);

            fclose($handle);

        }

    }

 

    ob_start();

    include $latest_skin_path.'/latest.skin.php';

    $content = ob_get_contents();

    ob_end_clean();

 

    return $content;

}

 

function latest_group($skin_dir="", $gr_id, $rows=10, $subject_len=40, $contents_len=200, $options="", $category="", $orderby="") { 

     global $config; 

     global $g5; 

     list($bo_table, $category) = explode("|", $bo_table); 

     if($category) $where = " AND ca_name = '".$category."' ";

     

     $list = array(); 

     $limitrows = $rows; 

     

     $sql_groupname = " select gr_subject from ".$g5['group_table']." where gr_id='".$gr_id."' ";

     $rowgroup = sql_fetch_array(sql_query($sql_groupname));

     $gr_subject = $rowgroup['gr_subject']; 

     

     $sqlgroup = " select bo_table, bo_subject from ".$g5['board_table']." where gr_id='".$gr_id."' and bo_use_search=1 order by bo_order";

     $rsgroup = sql_query($sqlgroup); 

     if (!$skin_dir) $skin_dir = 'basic'; 

   

     if(preg_match('#^theme/(.+)$#', $skin_dir, $match)) {

         if (G5_IS_MOBILE) {

             $latest_skin_path = G5_THEME_MOBILE_PATH.'/'.G5_SKIN_DIR.'/latest/'.$match[1];

             if(!is_dir($latest_skin_path))

                 $latest_skin_path = G5_THEME_PATH.'/'.G5_SKIN_DIR.'/latest/'.$match[1];

             $latest_skin_url = str_replace(G5_PATH, G5_URL, $latest_skin_path);

         } else {

             $latest_skin_path = G5_THEME_PATH.'/'.G5_SKIN_DIR.'/latest/'.$match[1];

             $latest_skin_url = str_replace(G5_PATH, G5_URL, $latest_skin_path);

         }

         $skin_dir = $match[1];

     } else {

         if(G5_IS_MOBILE) {

             $latest_skin_path = G5_MOBILE_PATH.'/'.G5_SKIN_DIR.'/latest/'.$skin_dir;

             $latest_skin_url  = G5_MOBILE_URL.'/'.G5_SKIN_DIR.'/latest/'.$skin_dir;

         } else {

             $latest_skin_path = G5_SKIN_PATH.'/latest/'.$skin_dir;

             $latest_skin_url  = G5_SKIN_URL.'/latest/'.$skin_dir;

         }

     }

     

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

         $bo_table = $rowgroup['bo_table']; 

         

         // 테이블 이름구함 

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

         $board = sql_fetch($sql); 

         

         $tmp_write_table = $g5['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_datetime desc " : "  order by ".$orderby." desc, wr_datetime 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']; 

                 $op_list[$k] .= $row['wr_name']; 

             } 

             

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

             

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

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

             $list[$k]['wr_name'] = $board['wr_name']; 

             

             $list[$k]['bo_wr_subject'] = cut_str($board['bo_subject'] . $list[$k]['wr_subject'], $subject_len, $wr_name, $wr_10); 

         } 

     } 

     

     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; 

 } 

?>

 

이 질문에 댓글 쓰기 :

답변 1

분류별 최신글 불러오기 참고글입니다.

 

https://m.blog.naver.com/ellenyang512/220689201485

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

회원로그인

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