한 페이지에 두개 게시판 불러와서 페이징처리(샘플파일추가) 정보
한 페이지에 두개 게시판 불러와서 페이징처리(샘플파일추가)첨부파일
본문
한 페이지에 게시판 두개를 불러와서 각각 따로 페이징 처리를 하는 방법입니다.
원래라면 쿼리구문을 따로 처리해서 그룹핑을 해야하지만 이 방식이 좀 더 쉬운 방법이라고
생각해서 올려봤습니다.
아래는 한페이지에 새글 게시판을 조건에 맞게 따로 두개를 만들어서 함께 불러온 예시입니다.
전체적인 파일 구조
게시판을 불러올 파일을 만드신후 그 안에
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를 변경하시면 됩니다.
13
댓글 15개
위 팁 보고 따라 연습해봤는데....안 되네용. ㅜㅜ
혹시, 수정하신 파일 샘플 압축해 올려주시는 거 가능하시면 올려주시면 감사하겠습니다.
/index.php (불러올 파일)
/bbs/new1.php
/bbs/new2.php
/lib/common.lib.php
/common.php
한번 적용해보시고 안되면 또 댓글 달아주세요`!
링크는 적용사이트인데 호스팅기간이 끝나서 ㅠㅠ
최근파일 버전으로 한번 더 올려주실수있나요? ㅠㅠ 최신버전으로는 데이터가안불러와지네요 ㅠㅠ 어디를 수정해야 할지 몰라서 리스트에 데이터가 안뿌려지는데 ㅠㅠㅠ 좋은자료인데 슬프네요 ㅠㅠㅠㅠㅠㅠ