최신글 그룹으로 뽑아오기 질문합니다. 정보
최신글 그룹으로 뽑아오기 질문합니다.
본문
최신글을 그룹으로 뽑아오려고 합니다.
아래파일을 어떻게 수정해야 될까요? ^^;;
아래 파일은, 게시판에서 일정기간 및 여러가지 형식으로 뽑아오는 것입니다.
이렇게 사용되죠.
최신글을 불러올 때에는 아래와 같이 입력
<?=latest("스킨명", "게시판명", 출력갯수, 제목길이, "형식", "기간");?>
형식 - 코멘트순(C), 조회순(H), 랜덤(R), 추천(G), 비추천(N), 기본 최신글(공백이거나 B)
기간 - 최근 몇일간의 입력된 글을 뽑아옴. 100이라 입력하면 최근 100일간의 글을 뽑아옴
ex)
<?=latest("basic", "morssola", 5, 40, "R", "100");?>
latest.skin.php 파일
<?
if (!defined('_GNUBOARD_')) exit;
// 최신글 추출
function latest($skin_dir="", $bo_table, $rows=10, $subject_len="", $brch="", $time="", $options="")
{
global $config;
global $g4;
if ($skin_dir)
$latest_skin_path = "$g4[path]/skin/latest/$skin_dir";
else
$latest_skin_path = "$g4[path]/skin/latest/$config[cf_latest_skin]";
$list = array();
$sql = " select * from {$g4[board_table]} where bo_table = '$bo_table'";
$board = sql_fetch($sql);
$tmp_write_table = $g4[write_prefix] . $bo_table; // 게시판 테이블 전체이름
if ($brch == "H") // 넘어온 값이 "H" 즉 hit 일때
$brch = "wr_hit"; // hit 순으로 쿼리
elseif ($brch == "C") // 넘어온 값이 "C" 즉 comment 일때
$brch ="wr_comment"; // comment 순으로 쿼리
elseif ($brch == "R") //넘온값이 "R" 즉 random 일때
$brch = "rand()"; // 랜덤 쿼리
elseif ($brch == "G") //넘온값이 "G" 즉 추천 일때
$brch = "wr_good"; // 추천 쿼리
elseif ($brch == "N") //넘온값이 "N" 즉 비추천 일때
$brch = "wr_nogood"; // 비추천 쿼리
elseif ($brch == "B") //넘온값이 "B" 즉 기본 최신글 일때
$brch = "wr_id"; // 기본 최신글 쿼리
else // 넘어온값이 없거나 그이외 일때
$brch = "wr_id"; // 걍 최근순으로 쿼리
$sql = "
select * from $tmp_write_table where wr_is_comment = 0
and wr_datetime between date_sub(now(), interval $time day) and now()
order by $brch desc limit 0, $rows ";
//explain($sql);
$result = sql_query($sql);
for ($i=0; $row = sql_fetch_array($result); $i++)
$list[$i] = get_list($row, $board, $latest_skin_path, $subject_len);
ob_start();
include "$latest_skin_path/latest.skin.php";
$content = ob_get_contents();
ob_end_clean();
return $content;
}
?>
아래파일을 어떻게 수정해야 될까요? ^^;;
아래 파일은, 게시판에서 일정기간 및 여러가지 형식으로 뽑아오는 것입니다.
이렇게 사용되죠.
최신글을 불러올 때에는 아래와 같이 입력
<?=latest("스킨명", "게시판명", 출력갯수, 제목길이, "형식", "기간");?>
형식 - 코멘트순(C), 조회순(H), 랜덤(R), 추천(G), 비추천(N), 기본 최신글(공백이거나 B)
기간 - 최근 몇일간의 입력된 글을 뽑아옴. 100이라 입력하면 최근 100일간의 글을 뽑아옴
ex)
<?=latest("basic", "morssola", 5, 40, "R", "100");?>
latest.skin.php 파일
<?
if (!defined('_GNUBOARD_')) exit;
// 최신글 추출
function latest($skin_dir="", $bo_table, $rows=10, $subject_len="", $brch="", $time="", $options="")
{
global $config;
global $g4;
if ($skin_dir)
$latest_skin_path = "$g4[path]/skin/latest/$skin_dir";
else
$latest_skin_path = "$g4[path]/skin/latest/$config[cf_latest_skin]";
$list = array();
$sql = " select * from {$g4[board_table]} where bo_table = '$bo_table'";
$board = sql_fetch($sql);
$tmp_write_table = $g4[write_prefix] . $bo_table; // 게시판 테이블 전체이름
if ($brch == "H") // 넘어온 값이 "H" 즉 hit 일때
$brch = "wr_hit"; // hit 순으로 쿼리
elseif ($brch == "C") // 넘어온 값이 "C" 즉 comment 일때
$brch ="wr_comment"; // comment 순으로 쿼리
elseif ($brch == "R") //넘온값이 "R" 즉 random 일때
$brch = "rand()"; // 랜덤 쿼리
elseif ($brch == "G") //넘온값이 "G" 즉 추천 일때
$brch = "wr_good"; // 추천 쿼리
elseif ($brch == "N") //넘온값이 "N" 즉 비추천 일때
$brch = "wr_nogood"; // 비추천 쿼리
elseif ($brch == "B") //넘온값이 "B" 즉 기본 최신글 일때
$brch = "wr_id"; // 기본 최신글 쿼리
else // 넘어온값이 없거나 그이외 일때
$brch = "wr_id"; // 걍 최근순으로 쿼리
$sql = "
select * from $tmp_write_table where wr_is_comment = 0
and wr_datetime between date_sub(now(), interval $time day) and now()
order by $brch desc limit 0, $rows ";
//explain($sql);
$result = sql_query($sql);
for ($i=0; $row = sql_fetch_array($result); $i++)
$list[$i] = get_list($row, $board, $latest_skin_path, $subject_len);
ob_start();
include "$latest_skin_path/latest.skin.php";
$content = ob_get_contents();
ob_end_clean();
return $content;
}
?>
댓글 전체
여러 테이블에서 글을 가져 오는 건가요?

위 파일은 게시판에서 뽑아오는 것입니다.
이를 그룹에서 뽑아오려고 하는데 모르겠네요. ^^;;
이를 그룹에서 뽑아오려고 하는데 모르겠네요. ^^;;
같은 그룹(G)에 속한 게시판(B1, B2, B3)에서 가져 온다는 것으로 이해한다면
B1, B2, B3를 통합하여 날짜순으로 정렬한 다음
거기에서 최근 것 N개를 가져오면 되는 건가요?
B1, B2, B3를 통합하여 날짜순으로 정렬한 다음
거기에서 최근 것 N개를 가져오면 되는 건가요?
그누는 게시판 별로 테이블이 따로 있기 때문에
같은 그룹에 속한 테이블 모두에서 N개를 select해야 합니다.
그리고 이 것을 같은 배열에 넣고 sort함수 한 번 실행한 다음
처음 N개만 출력해야죠.
같은 그룹에 속한 테이블 모두에서 N개를 select해야 합니다.
그리고 이 것을 같은 배열에 넣고 sort함수 한 번 실행한 다음
처음 N개만 출력해야죠.

문제는,
G그룹에 속한 게시판 B1, B2, B3에서 여러형태로 뽑아와야하죠.
최신, 추천, 비추천, 조회수, 랜덤, 코멘트
또한 일정기간내에서 뽑아와야하죠.
위에 latest.lib.php 파일은
위 조건을 갖춘 체, 그룹이 아닌 하나의 게시판(테이블)에서 뽑아오는 것이죠.
따라서 위에 예를들자면, 이런 형식이죠.
<?=latest("스킨명", "게시판명", 출력갯수, 제목길이, "형식", "기간");?>
↓
<?=latest("스킨명", "그룹명", 출력갯수, 제목길이, "형식", "기간");?>
도움주시면 무척 감사하겠습니다. ^^;;
G그룹에 속한 게시판 B1, B2, B3에서 여러형태로 뽑아와야하죠.
최신, 추천, 비추천, 조회수, 랜덤, 코멘트
또한 일정기간내에서 뽑아와야하죠.
위에 latest.lib.php 파일은
위 조건을 갖춘 체, 그룹이 아닌 하나의 게시판(테이블)에서 뽑아오는 것이죠.
따라서 위에 예를들자면, 이런 형식이죠.
<?=latest("스킨명", "게시판명", 출력갯수, 제목길이, "형식", "기간");?>
↓
<?=latest("스킨명", "그룹명", 출력갯수, 제목길이, "형식", "기간");?>
도움주시면 무척 감사하겠습니다. ^^;;
http://sir.co.kr/bbs/new.php
소스를 보니까
g4_board_new 테이블이 있더군요. 그누가 아직 초보라서......
이 파일 소스를 분석해 보면 답이 나오겠는데요.
소스를 보니까
g4_board_new 테이블이 있더군요. 그누가 아직 초보라서......
이 파일 소스를 분석해 보면 답이 나오겠는데요.