테스트 사이트 - 개발 중인 베타 버전입니다

한 페이지에 두개 게시판 불러와서 페이징처리(샘플파일추가)

· 6년 전 · 6846 · 15

한 페이지에 게시판 두개를 불러와서 각각 따로 페이징 처리를 하는 방법입니다. 

원래라면 쿼리구문을 따로 처리해서 그룹핑을 해야하지만 이 방식이 좀 더 쉬운 방법이라고

생각해서 올려봤습니다.

 

아래는 한페이지에 새글 게시판을 조건에 맞게 따로 두개를 만들어서 함께 불러온 예시입니다.

988413851_1555027481.4115.png

 

전체적인 파일 구조

게시판을 불러올 파일을 만드신후 그 안에

     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('#&amp;page=[0-9]*(&amp;page=)$#', '$1', $url);
    $url = preg_replace('#&amp;pagek=[0-9]*#', '', $url) . '&pageC='.$pageC.'&amp;pagek=';

    $str = '';

 

function get_paging2($write_pages, $cur_page, $total_page, $url, $add="")
{
    if(isset($_GET['pagek'])){
        $pagek = $_GET['pagek'];
    }
    //$url = preg_replace('#&amp;page=[0-9]*(&amp;page=)$#', '$1', $url);
    $url = preg_replace('#&amp;pageC=[0-9]*#', '', $url) . '&pagek='.$pagek.'&amp;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&amp;view=$view&amp;mb_id=$mb_id&amp;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&amp;view=$view&amp;mb_id=$mb_id&amp;pageC=");

 

3) common.php에 전역변수 두개 추가

if (isset($_REQUEST['pagek'])) { // 리스트 페이지

    $pagek = (int)$_REQUEST['pagek'];

    if ($pagek)

        $qstr .= '&amp;pagek=' . urlencode($pagek);

} else {

    $pagek = '1';

}

 

if (isset($_REQUEST['pageC'])) { // 리스트 페이지

    $pageC= (int)$_REQUEST['pageC];

    if ($pageC)

        $qstr .= '&amp;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개

5년 전
좋네요!! 자료로 응용해서 해결했어요!!
4년 전
고맙습니다. 시도해봐야겠네요 ^^
감사합니다
댓글 확인 가능하시다면 ㅠ
최근파일 버전으로 한번 더 올려주실수있나요? ㅠㅠ 최신버전으로는 데이터가안불러와지네요 ㅠㅠ 어디를 수정해야 할지 몰라서 리스트에 데이터가 안뿌려지는데 ㅠㅠㅠ 좋은자료인데 슬프네요 ㅠㅠㅠㅠㅠㅠ
2년 전
페이징처리 두개~~

게시글 목록

번호 제목
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