2009. 3. 9. 17:40

페이징 클래스 v1.0 (PHP4/5)


간단하게 페이징 클래스를 만들어 보았다.
class_paging.php 파일은 PHP4/5 모두 사용가능하며 일반적인 클래스 작성방식으로 작성했으며
class_paging_php5.php 파일은 PHP5 버젼에서 사용가능하며 Singleton 방식으로 작성되어 있다.
사용예제

<style> .aaa {font-family: "돋움","굴림";font-size: 11px ;color: #FF7E00; font-weight : bold;} .bbb {font-family: "돋움","굴림";font-size: 12px ;color: red; font-weight : bold;} </style> <?php require "class_paging.php"; $page = $_GET['page']; $params = array( 'curPageNum' => $page, 'pageVar' => 'page', 'extraVar' => '&aaa=1&bbb=abc', 'totalItem' => 176, 'perPage' => 10, 'perItem' => 5, 'prevPage' => '[이전]', 'nextPage' => '[다음]', 'prevPerPage' => '[이전10페이지]', 'nextPerPage' => '[다음10페이지]', 'firstPage' => '[처음]', 'lastPage' => '[끝]', 'pageCss' => 'aaa', 'curPageCss' => 'bbb' ); $paging = new YsPaging($params); $paging->printPaging(); ?>

$params 설명 (필수옵션)

curPageNum : 현재 페이지의 값을 넘겨 줍니다.
pageVar : 페이지 링크에 사용할 변수명(ex page,pagenum)
extraVar : 페이지 링크에 추가적으로 같이 넘길 변수 link를 기입(ex "&opt1=10&opt2=가나다")
totalItem : 데이타베이스에 읽어들인 글(아이템)의 총 수
perPage : 페이지 리스트 링크에 몇개씩 리스트를 뿌릴 것인지 (ex 5 설정하면 페이지리스트에 1 2 3 4 5가 나옴)
perItem : 한페이지에 뿌려지는 글(아이템)의 수(실제 리스팅은 select 쿼리에서 하시고 이옵션은 페이지 계산용)
prevPage : "이전" 링크에 사용할 문구나 이미지 태그 미설정시 "이전"이 출력
nextPage : "다음" 링크에 사용할 문구나 이미지 태그 미설정시 "다음"이 출력
prevPerPage : "이전10개" 링크에 사용할 문구나 이미지 태그 미설정시 출력 안됨
nextPerPage : "다음10개" 링크에 사용할 문구나 이미지 태그 미설정시 출력 안됨
firstPage : "처음" 링크에 사용할 문구나 이미지 태그 미설정시 출력 안됨
lastPage : "마지막" 링크에 사용할 문구나 이미지 태그 미설정시 출력 안됨
pageCss : 페이지 목록 링크에서 사용할 스타일 시트
curPageCss : 페이지 목록 링크 중 현재 페이지 번호에서 사용할 스타일 시트



참고
class_paging_php5.php 파일의 경우
$paging = YsPaging::getInstance($params);
를 사용하면 싱글톤으로 구현됩니다.

페이지 링크에 관한 구성은 printPaging() 메소드를 상속후 오버라이딩하거나
개별 메소드를 호출하여 구성하여도 됩니다.

echo $paging->getFirstPage();
echo $paging->getPrevPerPage();
echo $paging->getPrevPage();
echo $paging->getPageList();
echo $paging->getNextPage();
echo $paging->getNextPerPage();
echo $paging->getLastPage();