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

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

QA

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

답변 1

본문

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

 

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

이 질문에 댓글 쓰기 :

답변 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);?>
답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 102
© SIRSOFT
현재 페이지 제일 처음으로