[기능] 쪽지 페이징 처리하기 > 정보공유

본문 바로가기

정보공유

일반글
그누보드팁

[기능] 쪽지 페이징 처리하기

페이지 정보

게시물QR코드

본문

그누보드의 기본 기능 중 쪽지를 주고 받는 기능이 있습니다.

하지만 쪽지를 수십 수백개 주고 받다보면 아래와 같이

953ab8fb6f863dbf027111de8eb32c19_1497922618_3692.png
 

페이징 처리가 되지 않기 때문에 한 페이지에 모든 쪽지가 나타나도록 되어있습니다.

이부분을 페이징 처리하여 구현하는 방법을 살펴보겠습니다.

 

1. www/bbs/memo.php 파일을 열어서 아래와 같이 소스코드를 교체하도록 합니다.

소스코드가 추가 되는 부분은 따로 주석으로 표시를 해두었습니다.

<?php

/* www/bbs/memo.php */ 

 

include_once('./_common.php');

 

if ($is_guest)

    alert_close('회원만 이용하실 수 있습니다.');

 

$g5['title'] = '내 쪽지함';

include_once(G5_PATH.'/head.sub.php');

 

if (!$kind) $kind = 'recv';

 

if ($kind == 'recv')

    $unkind = 'send';

else if ($kind == 'send')

    $unkind = 'recv';

else

    alert(''.$kind .'값을 넘겨주세요.');

 

$sql = " select count(*) as cnt from {$g5['memo_table']} where me_{$kind}_mb_id = '{$member['mb_id']}'";

$row = sql_fetch($sql);

//$total_count = number_format($row['cnt']);

$total_count = $row['cnt'];

 

// 여기부터 추가

$page_rows = 10;

$page = ($_GET['page'] < 1) ? 1 : $_GET['page'];

$from_record = ($page - 1) * $page_rows;

// 여기까지 추가

 

if ($kind == 'recv')

{

    $kind_title = '받은';

    $recv_img = 'on';

    $send_img = 'off';

}

else

{

    $kind_title = '보낸';

    $recv_img = 'off';

    $send_img = 'on';

}

 

$list = array();

 

$sql = " select a.*, b.mb_id, b.mb_nick, b.mb_email, b.mb_homepage

            from {$g5['memo_table']} a

            left join {$g5['member_table']} b on (a.me_{$unkind}_mb_id = b.mb_id)

            where a.me_{$kind}_mb_id = '{$member['mb_id']}'

            order by a.me_id desc

LIMIT {$from_record}, {$page_rows}"; // 여기도 LIMIT 추가

$result = sql_query($sql);

for ($i=0; $row=sql_fetch_array($result); $i++)

{

    $list[$i] = $row;

 

    $mb_id = $row["me_{$unkind}_mb_id"];

 

    if ($row['mb_nick'])

        $mb_nick = $row['mb_nick'];

    else

        $mb_nick = '정보없음';

 

    $name = get_sideview($row['mb_id'], $row['mb_nick'], $row['mb_email'], $row['mb_homepage']);

 

    if (substr($row['me_read_datetime'],0,1) == 0)

        $read_datetime = '아직 읽지 않음';

    else

        $read_datetime = substr($row['me_read_datetime'],2,14);

 

    $send_datetime = substr($row['me_send_datetime'],2,14);

 

    $list[$i]['name'] = $name;

    $list[$i]['send_datetime'] = $send_datetime;

    $list[$i]['read_datetime'] = $read_datetime;

    $list[$i]['view_href'] = 'http://www.gnuwiz.com/bbs/memo_view.php'.$row['me_id'].'&amp;kind='.$kind;

    $list[$i]['del_href'] = 'http://www.gnuwiz.com/bbs/memo_delete.php'.$row['me_id'].'&amp;kind='.$kind;

}

 

// 여기부터 추가

$total_page  = ceil($total_count / $page_rows);

$url = "./memo.php?kind=".$_GET['kind'];

$memo_pages = get_paging($page_rows, $page, $total_page, $url, $add="");

// 여기까지 추가

 

include_once($member_skin_path.'/memo.skin.php');

 

include_once(G5_PATH.'/tail.sub.php');

?>

 

2. 자신의 홈페이지에 사용중인 회원가입 스킨을 찾습니다.

관리자 페이지 -> 기본환경설정 -> 회원가입 메뉴를 들어가시면

아래와 같이 어떤 스킨을 사용 중 인지 알 수 있습니다.

953ab8fb6f863dbf027111de8eb32c19_1497922916_8704.png
회원가입 스킨이 basic 이라면 경로는 www/skin/member/basic/ 경로가 되고

theme/basic 으로 되어있다면 경로는 www/theme/테마명/skin/member/basic/ 경로가 되겠습니다.

저는 일반 스킨경로인 www/skin/member/basic/memo.skin.php 을 수정하겠습니다.

우선 해당 회원가입스킨경로/memo.skin.php 파일을 열어서 아래와 같은 소스코드를 찾아보겠습니다.

<!-- 회원가입스킨경로/memo.skin.php -->

 

<p class="win_desc">

쪽지 보관일수는 최장 <strong><?php echo $config['cf_memo_del'] ?></strong>일 입니다.

</p>

해당 부분 바로 상단에 아래와 같이 소스코드를 추가 하도록 하겠습니다.

<!-- 회원가입스킨경로/memo.skin.php -->

 

<?echo $memo_pages?>

<p class="win_desc">

쪽지 보관일수는 최장 <strong><?php echo $config['cf_memo_del'] ?></strong>일 입니다.

</p>

 

www/bbs/memo.php 파일과

회원가입스킨경로/memo.skin.php 파일을 정상적으로 수정 하였다면

아래와 같이 정상적으로 페이징 처리가 적용 된 것을 확인 할 수 있겠습니다.

953ab8fb6f863dbf027111de8eb32c19_1497923306_6081.png
 

댓글목록

등록된 댓글이 없습니다.

  • Addr.부산광역시 동구 중앙대로 319, 9층 L4호(초량동, 부산YMCA빌딩) Email. gnuwiz@naver.com
  • BR. 625-68-00172 TRC. 2019-부산해운대-1186 TEL. 0507-1382-2790
All rights reserved.