한 페이지에 게시판 두개를 불러와서 각각 따로 페이징 처리를 하는 방법입니다.
원래라면 쿼리구문을 따로 처리해서 그룹핑을 해야하지만 이 방식이 좀 더 쉬운 방법이라고
생각해서 올려봤습니다.
아래는 한페이지에 새글 게시판을 조건에 맞게 따로 두개를 만들어서 함께 불러온 예시입니다.

전체적인 파일 구조
게시판을 불러올 파일을 만드신후 그 안에
1) bbs/new1.php(각 게시판 용도에 맞게 쿼리만 수정시키면 됩니다 + 스킨을 따로 include)
2) bbs/new2.php(각 게시판 용도에 맞게 쿼리만 수정시키면 됩니다 + 스킨을 따로 include)
파일을 인클루드 시킵니다.
각 게시판별로 request되는 page변수를 pageK와 pageC로 분리해서 내보냅니다
0)new1.php, new2.php각각 35번째줄
$total_page = ceil($total_count / $rows); // 전체 페이지 계산
if ($pagek < 1) $pagek = 1; // 페이지가 없으면 첫 페이지 (1 페이지)
$from_record = ($pagek - 1) * $rows; // 시작 열을 구함
$total_page = ceil($total_count / $rows); // 전체 페이지 계산
if ($pageC < 1) $pageC = 1; // 페이지가 없으면 첫 페이지 (1 페이지)
$from_record = ($pageC - 1) * $rows; // 시작 열을 구함
1) lib/common.lib.php에서 get_paging을 변형하여 함수를 따로 만들어 줍니다
url관련 부분만 변경하면 됩니다.
function get_paging1($write_pages, $cur_page, $total_page, $url, $add="")
{
if(isset($_GET['pageC'])){
$pageC = $_GET['pageC'];
}
//$url = preg_replace('#&page=[0-9]*(&page=)$#', '$1', $url);
$url = preg_replace('#&pagek=[0-9]*#', '', $url) . '&pageC='.$pageC.'&pagek=';
$str = '';
function get_paging2($write_pages, $cur_page, $total_page, $url, $add="")
{
if(isset($_GET['pagek'])){
$pagek = $_GET['pagek'];
}
//$url = preg_replace('#&page=[0-9]*(&page=)$#', '$1', $url);
$url = preg_replace('#&pageC=[0-9]*#', '', $url) . '&pagek='.$pagek.'&pageC=';
$str = '';
2) new1.php / new2.php 111번째줄 수정하여 함수를 불러줍니다
new1.php에서
$write_pages = get_paging1(G5_IS_MOBILE ? $config['cf_mobile_pages'] : $config['cf_write_pages'], $pagek, $total_page, "?gr_id=$gr_id&view=$view&mb_id=$mb_id&pagek=");
new2.php에서
$write_pages = get_paging2(G5_IS_MOBILE ? $config['cf_mobile_pages'] : $config['cf_write_pages'], $pageC, $total_page, "?gr_id=$gr_id&view=$view&mb_id=$mb_id&pageC=");
3) common.php에 전역변수 두개 추가
if (isset($_REQUEST['pagek'])) { // 리스트 페이지
$pagek = (int)$_REQUEST['pagek'];
if ($pagek)
$qstr .= '&pagek=' . urlencode($pagek);
} else {
$pagek = '1';
}
if (isset($_REQUEST['pageC'])) { // 리스트 페이지
$pageC= (int)$_REQUEST['pageC];
if ($pageC)
$qstr .= '&pageC=' . urlencode($pagekC);
} else {
$pageC = '1';
}
4) 각 스킨 40번째줄
for ($i=0; $i<count($list); $i++)
{
$num = $total_count - ($pagek - 1) * 3 - $i;
$gr_subject = cut_str($list[$i]['gr_subject'], 20);
$bo_subject = cut_str($list[$i]['bo_subject'], 20);
$wr_subject = get_text(cut_str($list[$i]['wr_subject'], 80));
?>
for ($i=0; $i<count($list); $i++)
{
$num = $total_count - ($pageC - 1) * 3 - $i;
$gr_subject = cut_str($list[$i]['gr_subject'], 20);
$bo_subject = cut_str($list[$i]['bo_subject'], 20);
$wr_subject = get_text(cut_str($list[$i]['wr_subject'], 80));
?>
*요청하신분이 계셔서 샘플파일을 추가했습니다.
(적용링크)
http://slowduk.com/slowdukdbx/bbs/mypage.php
-common.php(전역변수추가 295번째줄 - 309 번째줄)
-common.lib.php(페이징함수추가 17번째줄 - 98번째줄)
-mypage.php(불러올페이지 - bbs폴더에 넣어주세요)
-mypage1.php, mypage2.php(불러올게시판1,2 - bbs폴더에 넣어주세요)
-new.skin1.php, new.skin2.php(skin/new/basin에 넣어주세요, 42번째줄 - 48번째줄)
위 샘플은 그룹아이디가 mypage1, mypage2인 게시판을 불러옵니다. 다른그룹 아이디 적용시
mypage1.php / mypage2.php 13번째줄
$sql_common .= " and b.gr_id = 'mypage1' ";
에서 mypage1를 변경하시면 됩니다.
댓글 15개
게시글 목록
| 번호 | 제목 |
|---|---|
| 24318 | |
| 24317 | |
| 24315 | |
| 24309 | |
| 24294 | |
| 24293 | |
| 24277 | |
| 24262 | |
| 24260 | |
| 24253 | |
| 24251 | |
| 24236 | |
| 24233 | |
| 24228 | |
| 24226 | |
| 24221 | |
| 24214 | |
| 24203 | |
| 24201 | |
| 24199 | |
| 24196 | |
| 24195 | |
| 24194 | |
| 24192 | |
| 24191 | |
| 24187 | |
| 24185 | |
| 24183 | |
| 24172 | |
| 24168 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기