특정글의 페이지 get값이 없을때 글번호만으로 페이지 위치 찾아주기 > 코딩/그누보드

본문 바로가기
사이트 내 전체검색

코딩

그누보드 특정글의 페이지 get값이 없을때 글번호만으로 페이지 위치 찾아주기

페이지 정보

본문

URL 복사

게시글 상세보기했을때 아래에 게시글 리스트 보이기를 쓰시는분이 많을거라 생각됩니다

 

리스트에서 페이지를 넘어갈때 주소에는 page get값을 들고가 현재 사용자가 보고있는 page위치를 잡아줍니다

 

3731597438_1604545762.7766.png

(주소창에 page get값이 나타남)

 

이렇게 page get값을 들고감으로써 현재 사용자가 위치하고있는(보고있는) 페이지위치를 알아내고 표시해줄 수 있죠

resize_3731597438_1604545844.2347.png

 

하지만 저 page 값이 없다면 어떻게 될까요?

 

홈페이지 내 검색이나 검색사이트를 통해 접속 또는 특정한 상황에서 게시물을 들어올때 모두 page get값을 들고 올 수는 없습니다(페이징 되는 버튼을 눌러야 현재 사용자의 page get값을 알아낼 수 있기때문입니다)

 

그렇기에 값이없다면 무조건 해당 글의 위치가 어디가 됐든 무조건 1페이지를 보여주게 되어있습니다

(page값이 없다면 page=1로 지정해두었기 때문)

 

이럴 경우를 방지 하기 위해서 아래와 같은 함수를 사용하면 그누보드에서 글번호만으로도 현재 페이지 위치를 잡아 자동으로 page값을 줄 수 있습니다.

 

lib/common.lib.php 에 아래와 같은 함수를 작성해 주세요

// 해당 글번호의 페이지위치
function get_board_page($wr_id, $bo_table){
global $g5, $board, $sca, $sfl, $stx, $sop;
if(G5_IS_MOBILE)
$page_rows = $board['bo_mobile_page_rows'];
else
$page_rows = $board['bo_page_rows'];

$sql_search = "";
if ($sca || $stx || $stx === '0') { //검색이면
$sql_search = get_sql_search($sca, $sfl, $stx, $sop);
if($sql_search) $sql_search = " AND ".$sql_search;
}

$write_table = $g5['write_prefix'].$bo_table;
$sql = " SELECT COUNT(wr_id) as page_cnt FROM $write_table WHERE wr_id >= '{$wr_id}' AND wr_is_comment = 0 {$sql_search} order by wr_comment, wr_id;";
//$sql = " SELECT COUNT(DISTINCT wr_parent) as page FROM $write_table WHERE wr_id >= '{$wr_id}' order by wr_comment, wr_id;";

$row = sql_fetch($sql);

$page = ceil((int)$row['page_cnt'] / $page_rows);
return $page;
}

보시면 안의 쿼리문이 두개인데 .... DISTINCT를 원래 썻다가 저게 속도 이슈가 있다고 말만들어서... 위와같이 바꿨는데요 

음 저는 테스트 DB가 많지않아서 속도 채감은 별로 안됩니다만 둘중에 빠른걸로 쓰시면 되겠습니다

 

이렇게 함수를 만들어 주시고

 

bbs/board.php 에서 23번째줄 if문 안에 넣어주세요(글읽기 부분)

//페이지 위치가 없을때 현재 게시글 페이지 위치
if(!$page && $page != 1) $page = get_board_page($write['wr_id'], $bo_table);

 

이렇게만 해주시면 page값이 없어도 해당 글번호가 위치해있는 페이지번호를 찾아서 아래 리스트를 불러옵니다.

 

이제 페이지값이 없어도 알아서 찾기때문에 url뒤에 page값 붙는것도 없애고싶다 하시는분들은

 

common.php 에서 342번째줄

if (isset($_REQUEST['page'])) { // 리스트 페이지
$page = (int)$_REQUEST['page'];
// if ($page)
// $qstr .= '&page=' . urlencode($page);
} else {
$page = '';
}

if($page)부분을 주석처리해주세요

저부분을 주석하면 url에 page붙는게 없어집니다(없어져도 상관없는게 우리는 이미 함수로 해당글의 위치를 찾도록해놓았기 때문이죠)

 

그대로 두셔도 되구요 이건 취향이니 쓰시는분 마음에따라..

 

읽어주셔서 감사합니다 😀😀

 

 

추천1 비추천0

댓글목록

profile_image

우성짱님의 댓글

우성짱 쪽지보내기 마이페이지 아이디로 검색 아이피 (39.7) 작성일

좋아요!

추천0 비추천0
Total 32건 1 페이지
코딩 목록
번호 제목 글쓴이 날짜 추천 조회
공지 운영자 쪽지보내기 마이페이지 아이디로 검색 11-19 0 160
공지 운영자 쪽지보내기 마이페이지 아이디로 검색 07-21 0 6228
32 진크화이트 쪽지보내기 마이페이지 아이디로 검색 12-03 0 10
31 유니신느 쪽지보내기 마이페이지 아이디로 검색 11-30 0 22
30 운영자 쪽지보내기 마이페이지 아이디로 검색 11-19 0 170
29 운영자 쪽지보내기 마이페이지 아이디로 검색 11-19 0 144
28 운영자 쪽지보내기 마이페이지 아이디로 검색 11-18 0 63
27 귀큰놈들시발 쪽지보내기 마이페이지 아이디로 검색 11-13 1 65
26 운영자 쪽지보내기 마이페이지 아이디로 검색 11-05 1 102
열람중 운영자 쪽지보내기 마이페이지 아이디로 검색 11-05 1 108
24 운영자 쪽지보내기 마이페이지 아이디로 검색 10-28 1 183
23 운영자 쪽지보내기 마이페이지 아이디로 검색 10-22 1 104
22 운영자 쪽지보내기 마이페이지 아이디로 검색 10-14 0 92
21 운영자 쪽지보내기 마이페이지 아이디로 검색 10-14 0 95
20 운영자 쪽지보내기 마이페이지 아이디로 검색 10-14 0 48
19 운영자 쪽지보내기 마이페이지 아이디로 검색 10-13 0 56
18 운영자 쪽지보내기 마이페이지 아이디로 검색 10-06 0 56
17 건들이 쪽지보내기 마이페이지 아이디로 검색 08-22 1 98
16 운영자 쪽지보내기 마이페이지 아이디로 검색 08-14 0 189
15 운영자 쪽지보내기 마이페이지 아이디로 검색 08-07 0 65
14 운영자 쪽지보내기 마이페이지 아이디로 검색 08-06 0 70
13 운영자 쪽지보내기 마이페이지 아이디로 검색 08-05 0 124
12 운영자 쪽지보내기 마이페이지 아이디로 검색 07-14 0 129
11 운영자 쪽지보내기 마이페이지 아이디로 검색 07-10 0 109
10 운영자 쪽지보내기 마이페이지 아이디로 검색 07-10 0 865
9 운영자 쪽지보내기 마이페이지 아이디로 검색 07-08 0 180
8 운영자 쪽지보내기 마이페이지 아이디로 검색 06-23 0 266
7 운영자 쪽지보내기 마이페이지 아이디로 검색 06-05 0 186
6 운영자 쪽지보내기 마이페이지 아이디로 검색 06-05 0 194
5 운영자 쪽지보내기 마이페이지 아이디로 검색 05-29 0 131
4 운영자 쪽지보내기 마이페이지 아이디로 검색 05-29 0 123
3 운영자 쪽지보내기 마이페이지 아이디로 검색 05-07 1 341

검색


회원로그인

회원가입

사이트 정보

회사명 : YEAH 커뮤니티 / 대표 : 이성재 / 개인정보관리책임자 : 이성재

Copyright © YE-AH.NET All rights reserved.