자유게시판

제목 페이징 처리 만들어봤어요
글쓴이 너그 작성시각 2016/12/15 13:15:06
댓글 : 5 추천 : 0 스크랩 : 0 조회수 : 10662   RSS

안녕하세요 CI 초보 개발자입니다.

 

TIP 까지 갈정도는 아닌 것같아서 자유 게시판에다가 한번 써보았어요 ^^;;

CI에 페이징 라이브러리가 있지만,

저는 궂이 그렇게 까지 할필요 없이 그냥 딱 필요한 페이지만 필요하고,

제가 도큐먼트 문서를 잘못봐서 그런지 페이지가 10단위로 나와서 직접 만들게 되었습니다..

 

사실은 자바 개발할때 쓰던거 PHP 버전으로 바꾼게 전부네요..

 

<? if ( ! defined('BASEPATH')) exit('No direct script access allowed');

/**
 * [toPage 페이지 헬퍼]
 * @param  [integer] $_total   [총페이지 수]
 * @param  [integer] $_current [표시 페이지 수]
 * @param  [integer] $_nowPage [현재 페이지]
 * @return [array]           [startPage:시작 페이지 , endPage:끝페이지, next:다음페이지 , prev:이전페이지 ,first:처음, last:마지막]
 */
function toPage($_total,$_current,$_nowPage){
  //총 페이지 수
  $total_page = ceil($_total/$_current);


  //현재 페이지가 없거나 0 이면 1페이지 표시
  if(!$_nowPage || $_nowPage <= 0){
    $_nowPage = 1;
  }

  //시작 페이지 & 끝페이지 계산
  $startPage = floor(($_nowPage -1) / $_current) * $_current + 1;
  $endPage = $startPage + $_current - 1;

  //총페이지 수보다 더 높은 페이지수가 입력되면 마지막 페이지로 계산
  if($_nowPage > $total_page) $_nowPage = $total_page;

  //마지막 페이지가 총페이지를 넘어가면 마지막 페이지로 표시
  if($endPage > $total_page)  $endPage = $total_page;

  //처음으로 & 끝으로
  $first = $_nowPage == 1            ? FALSE : 1;
  $last  = $_nowPage == $total_page  ? FALSE : (int)$total_page;

  //이전페이지 & 다음페이지
  $prev  = $_nowPage == 1           ? FALSE : (int)$_nowPage - 1;
  $next  = $_nowPage == $total_page ? FALSE : (int)$_nowPage + 1;

  return array( 'startPage'=>(int)$startPage,
                'endPage'=>(int)$endPage ,
                'next'=>$next,
                'prev'=>$prev ,
                'first'=>$first,
                'last'=>$last
              );

}

 

 다음글 안녕하세요 . PHPStorm IDE 신규 1년구독 시... (5)
 이전글 맥북, 또는 저사양 게임에서 쾌적하게 게임하기 (4)

댓글

한대승(불의회상) / 2016/12/15 13:43:05 / 추천 0

수고 하셨습니다. 

팁으로 옮겨도 될거 같은데요 ^^

변종원(웅파) / 2016/12/15 15:23:51 / 추천 0
수고하셨습니다. 매뉴얼 보시면 1, 2, 3으로 나오는 옵션이 있습니다. ^^
너그 / 2016/12/15 16:37:04 / 추천 0

#불의회상

- 감사합니다.. 

 

#웅파

잘보니간 옵션이 있었네요..

사실 정말 잘 찾아보면 있을거라는 생각은했는데..

저희 코더가 짜놓은 코딩에 이걸 합치는 것은 헬난이도라서 그냥 만들게 되었어요 ~ 

(불순한 동기 .. ;;)

 

 

kaido / 2016/12/15 17:08:11 / 추천 0

저도 불순한 동기로 네이티브틱한 php 페이지네이션 방식으로 만들 수 없을까?

고민하다가 따로 만들었습니다.

요점은 페이지 증가수는 1로 만들고 페이지는 limit 에서 증가 시킨다는 것이 핵심이죠.

홍즈 / 2016/12/21 12:58:15 / 추천 0
감사합니다. 참고하겠습니다.