한 페이지에 두개 게시판 불러와서 페이징처리(샘플파일추가) > 그누보드5 팁자료실

그누보드5 팁자료실

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

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

첨부파일

slowduk.zip (43.9K) 115회 다운로드 2019-04-14 21:32:55

본문

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

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

생각해서 올려봤습니다.

 

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

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('#&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

안녕하세요 ㅜㅜ 저 위에분 처럼 index로 불러와서 적용해보고싶었는데 샘플파일이 걸려져있는 링크 파일이 열려지지가 않네요 다시한번 좀 부탁드려도 될까요? ㅜ
안녕하세요. 샘플파일은 상단에 첨부파일로 추가되어있습니다.
링크는 적용사이트인데 호스팅기간이 끝나서 ㅠㅠ
댓글 확인 가능하시다면 ㅠ
최근파일 버전으로 한번 더 올려주실수있나요? ㅠㅠ 최신버전으로는 데이터가안불러와지네요 ㅠㅠ 어디를 수정해야 할지 몰라서 리스트에 데이터가 안뿌려지는데 ㅠㅠㅠ 좋은자료인데 슬프네요 ㅠㅠㅠㅠㅠㅠ
전체 2,411 |RSS
그누보드5 팁자료실 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT