게시판들을 쿼리문으로 묶는 방법좀 알려주세요..

게시판들을 쿼리문으로 묶는 방법좀 알려주세요..

QA

게시판들을 쿼리문으로 묶는 방법좀 알려주세요..

본문

그룹 게시판 스킨이 별로 없는것 같아 게시판 스킨으로 모든 게시판 최신글을 모아서 뽑으려고 해요 ㅠ

 

어디서 부터 손봐야할지 모르겠네요.. 도와주세요 ㅠ

이 질문에 댓글 쓰기 :

답변 1

그룹으로 지정된 게시판들의 최신글을 가지고 오고싶다는 말인가요?

아니면 그룹으로 지정된 게시판들이 아니더라도

지정한 게시판들의 최신글을 가져오고싶단 말인가요

그룹으로 지정한 게시판의 최신글을 불러오는 소스는 이미 공유되어지고있습니다..

 

 

/lib/latest.lib.php 에 추가  


function latest_group($skin_dir="", $gr_id, $rows="", $subject_len=40, $cache_time=1)
{
	global $g5;


    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-gr{$gr_id}-{$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 - 600 * $cache_time)) {
                    @unlink($cache_file);
                    $cache_fwrite = true;
                }
            }

            if(!$cache_fwrite)
                include_once($cache_file);
        }
    }



	if(!G5_USE_CACHE || $cache_fwrite) {
	$limitrows = $rows;
	if (!$skin_dir) $skin_dir = 'basic';

	$sqlgroup = " select bo_table, bo_subject from {$g5[board_table]} where gr_id = '$gr_id' ";
	
	// $sqlgroup .= " and bo_use_search=1 order by bo_order ";
	$sqlgroup .= " order by bo_order ";
	$rsgroup = sql_query($sqlgroup);

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

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

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

		//print $sql;
		// 옵션에 따라 정렬
		$sql = "select * from $tmp_write_table where wr_is_comment = 0 order by wr_id desc 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_url, $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);


        if($cache_fwrite) {
            $handle = fopen($cache_file, 'w');
            $cache_content = "<?php\nif (!defined('_GNUBOARD_')) exit;\n\$gr_id=\"".$gr_id."\";\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;
}

 


<?php echo latest_group("스킨명", "그룹아이디", 5, 40);?>
답변을 작성하시기 전에 로그인 해주세요.
전체 129,672 | RSS
QA 내용 검색

회원로그인

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