[G5/Amina] 그룹 최신글 추출 > 기술자료 | 해피정닷컴

[G5/Amina] 그룹 최신글 추출 > 기술자료

본문 바로가기

사이트 내 전체검색

[G5/Amina] 그룹 최신글 추출 > 기술자료

그누보드 [G5/Amina] 그룹 최신글 추출

페이지 정보


본문

그룹별 최신글 사용을 하고자 하는 경우에
환경설정 > 기본환경설정 > 최근게시물 삭제  ...  30일을  300일 정도로 변경합니다.
 
그룹별 최신게시글에서 그룹에 포함된 최신게시글의 추출의 경우에는 g5_board_new 데이타를 기준으로 추출을 하는데, 기본설정 30일이 지난 경우엔 추출될 근거 자료가 사라집니다.

아래의 function 은 g5_board_new 에 저장된 것을 활용하지 않고, 개별 board의 글을 활용하는 방식입니다.


본 강좌는 단순 추출기능만 포함되어 있습니다.
그룹내 게시글을 union 으로 묶어서 날짜로 정렬하는 상품은
https://sir.kr/cmall/1544195999 에서 구입할 수 있습니다.


1. 변경이력

2016-09-06 12:59
  . 최초 배포

2018-12-05 16:17
  . 아미나빌더 적용된 경우 모바일 화면에서 노출 안되는 오류 수정

2018-12-05 17:05
  . 공지글과 답변글 추출 제외기능 추가 ( 소스에서 제어가능 / 주석 확인 )



2. lib / latest_group.lib.php  파일생성
<?php
if (!defined('_GNUBOARD_')) exit;
@include_once(G5_LIB_PATH.'/thumbnail.lib.php');

/* 사용방법:  
<?php
include_once(G5_LIB_PATH."/latest_group.lib.php");
//echo latest_group2("최신글스킨", "그룹이름", 게시물수, 제목글자수, 본문글자수,"옵션","카테고리","정렬방식");
echo latest_group2("basic", "그룹이름", 게시물수, 제목글자수, 본문글자수,"","","");
?>
*/

function latest_group2($skin_dir="", $gr_id, $rows=10, $subject_len=40, $contents_len=200, $options="", $category="", $orderby="") { 
    global $config; 
    global $g5; 
    
    $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 ";
    $rsgroup = sql_query($sqlgroup); 
    if (!$skin_dir) $skin_dir = 'basic'; 

    // 아미나빌더인가요?
    $field_query = "SHOW COLUMNS FROM {$g5['config_table']} WHERE `Field` = 'as_thema';";
    $field_row = sql_fetch( $field_query );
    if($field_row['Field']) { // 아미나빌더가 있으면
        $g5_builder = "amina";
    }
    
    if ($g5_builder == "amina") {
            $latest_skin_path = G5_SKIN_PATH.'/latest/'.$skin_dir;
            $latest_skin_url  = G5_SKIN_URL.'/latest/'.$skin_dir;
    } else {
        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; // 게시판 테이블 실제이름
        
        $subqry = "";
        
        // 답변글 출력제외 
        //$subqry = "&& wr_reply = ''";
        
        // 공지사항 출력제외 
        $arr_notice = preg_replace("/\n/",',', trim($board['bo_notice']));
        if($arr_notice) {
            $subqry = $subqry." && wr_id Not in ({$arr_notice}) ";
        }
        
        // 옵션에 따라 정렬
        $sql = "select * from {$tmp_write_table} where wr_is_comment = 0 ";
        $sql .= (!$category) ? "" : " and ca_name = '{$category}' ";
        $sql .= $subqry;
        $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;
}
 

댓글목록

등록된 댓글이 없습니다.


Total 2,633건 10 페이지
  • RSS
기술자료 목록
2453
PHP   7879  2021-03-04 19:10 ~ 2021-06-22 00:03  
2452
PHP   6628  2021-03-03 16:20 ~ 2021-03-03 16:21  
2451
그누보드   4408  2021-02-25 22:28 ~ 2021-03-17 11:33  
2450
그누보드   5738  2021-02-18 10:28 ~ 2021-02-18 14:10  
2449
그누보드   6180  2021-02-08 14:43 ~ 2021-02-08 16:31  
2448
PHP   10792  2021-01-20 12:07 ~ 2021-01-27 13:35  
2447
전자결제   7914  2021-01-01 01:20 ~ 2021-01-13 19:41  
2446
JavaScript   6293  2020-12-24 19:40  
2445
HTML   4910  2020-12-20 11:42  
2444
SNS   8183  2020-12-18 07:58  
2443
그누보드   7019  2020-12-14 18:09 ~ 2023-04-04 11:18  
2442
SNS   6109  2020-12-11 09:37 ~ 2020-12-18 11:55  
2441
Apple   5708  2020-12-10 14:22 ~ 2020-12-17 00:27  
2440
Android   9110  2020-12-10 12:22 ~ 2020-12-17 00:27  
2439
그누보드   6116  2020-12-07 15:15 ~ 2022-12-17 21:15  
2438
SNS   6426  2020-11-30 14:39 ~ 2020-12-12 09:04  
2437
SNS   5780  2020-11-29 16:55 ~ 2020-12-18 19:53  
2436
SNS   9748  2020-11-25 14:04 ~ 2020-12-12 09:05  
2435
Apple   5266  2020-11-24 19:27 ~ 2020-11-24 19:34  
2434
SNS   5812  2020-11-23 03:38 ~ 2020-12-17 09:25  

검색

해피정닷컴 정보

회사소개 회사연혁 협력사 오시는길 서비스 이용약관 개인정보 처리방침

회사명: 해피정닷컴   대표: 정창용   전화: 070-7600-3500   팩스: 042-670-8272
주소: 서울센터 (08393) 서울시 구로구 디지털로32가길 16 파트너스타워2차 1206-280호
        대전센터 (34368) 대전시 대덕구 대화로 160 대전산업용재유통단지 지원1동 205호
개인정보보호책임자: 정창용   사업자번호: 119-05-36414
통신판매업신고: 2014-서울구로-0074 [사업자등록확인]  
Copyright 2001~2024 해피정닷컴. All Rights Reserved.