페이지네이션 Pagination Class¶
CodeIgniter의 페이지네이션 클래스는 매우 사용하기 쉽답니다. 100% 커스터마이징 가능합니다. 커스터마이징은 동적으로 할 수도 있고, 설정을 저장할 수도 있습니다.
“페이지네이션” 이라는 말에 익숙하지 않으신가요 ? 바로 아래와 같이 페이지 이동을위한 링크를 뜻하는 말입니다:
« First < 1 2 3 4 5 > Last »
예제 Example¶
컨트롤러 (controller) 함수내에서 어떻게 페이지를 생성하는지 보여주는 예제입니다:
$this->load->library('pagination');
$config['base_url'] = 'http://example.com/index.php/test/page/';
$config['total_rows'] = 200;
$config['per_page'] = 20;
$this->pagination->initialize($config);
echo $this->pagination->create_links();
참고 Notes¶
$config 배열에는 설정값들이 들어갑니다. 위와 같이 그 배열을 $this->pagination->initialize() 함수에 넘겨줍니다. 20개정도의 설정 아이템들이 있지만, 위에서 보여준것은 그중에서 반드시 필요한 세 가지 입니다. 아래는 각 아이템에 대한 설명입니다:
- base_url 페이지네이션에 포함될 컨트롤러/함수 의 전체 url 입니다. 위의 예제에서,컨트롤러는 “Test” 이고 함수는 “page” 입니다. url을 다른 구조로 하고 싶다면 url 라우팅 변경(re-route your URI) 을 이용하실 수 있습니다.
- total_rows페이지네이션할 전체 레코드의 수를 나타냅니다. 통상적이로 이숫자는 데이터베이스 쿼리에서 리턴되는 전체 열 수 입니다.
- per_page 한페이지에 보여질 아이템(열)수 입니다. 위의 예제에서는 20 개의 아이템이 한페이지에 보여집니다.
보여줄 페이지네이션이 없을 경우 create_links() 함수는 빈 문자열을 리턴합니다.
config file 에서 환경설정 Setting preferences in a config file¶
설정을 위처럼 하지 않고, 설정 파일에 저장할 수도 있습니다. pagination.php 파일을 만든 후 $config 배열을 추가하세요. 그런 후 파일을 application/config/pagination.php 에 저장하시면, 자동으로 불러지게 됩니다. 설정 파일로 저장하면 $this->pagination->initialize() 함수를 호출할 필요가 없습니다.
페이지네이션 커스터마이징 Customizing the Pagination¶
아래는 페이지네이션이 어떻게 보여질지에 대한 설정(preferences) 목록입니다.
$config[‘uri_segment’] = 3;
페이지네이션 함수는 페이지 번호를 URI 새그먼트의 어느부분에 포함시킬지 자동으로 결정합니다. 여러분이 직접 지정하고싶으면 위 설정을 사용합니다.
$config[‘num_links’] = 2;
선택된 페이지번호 좌우로 몇개의 “숫자”링크를 보여줄지 설정합니다. 예를 들어, 2 는 본 페이지의 맨위에있는 예제와 같이 양쪽에 2개의 숫자링크를 보여줍니다.(즉 숫자는 5개가 되겠죠 )
$config[‘use_page_numbers’] = TRUE;
기본값으로, URI 새그먼트는 페이징하는 아이템들의 시작 인덱스를 사용합니다. 실제 페이지 번호를 보여주고 싶다면, TRUE로 설정하세요.
$config[‘page_query_string’] = TRUE;
기본값으로, 페이지네이션 라이브러리는 여러분이 URI 새그먼트(Segments) 를 사용한다고 가정합니다. 그리고 링크를 아래처럼 생성합니다:
http://example.com/index.php/test/page/20
$config['enable_query_strings'] 을 TRUE 로 설정하면, 링크는 자동으로 쿼리스트링(Query Strings) 형식으로 바뀝니다. 이 옵션은 명시적으로 설정할 수도 있습니다. $config['page_query_string'] 이 TRUE 일때 페이지네이션 링크는 아래처럼 바뀝니다:
http://example.com/index.php?c=test&m=page&per_page=20
“per_page” 는 기본적으로 전달되는 쿼리스트링입니다. 그러나 $config['query_string_segment'] = 'your_string' 를 통해서 여러분이 설정할 수도 있습니다.
$config[‘reuse_query_string’] = FALSE;
기본적으로 당신의 쿼리 문자열 인수 (다른 쿼리 문자열 옵션과는 상관 없는)는 무시됩니다. true로 설정을 설정하면 URI 새그먼트 후 URL에 접미사하기 전에 기존의 쿼리 문자열 인수를 추가합니다 :
http://example.com/index.php/test/page/20?query=search%term
이것은 일반적인 URI Segments 뿐만 아니라 쿼리 스트링 인자까지 혼합하는 것을 도와줍니다.
$config[‘prefix’] = ‘’;
사용자 정의 접두사가 경로에 추가됩니다. 접두사 값은 오프셋 새그먼트 바로 전에 위치하게 될 것입니다.
$config[‘suffix’] = ‘’;
사용자 정의 접미사가 경로에 추가됩니다. 접미사 값은 오프셋 새그먼트 바로 후에 위치하게 될 것입니다.
$config[‘use_global_url_suffix’] = FALSE;
TRUE 로 설정하면, $config['suffix']의 값을 무시하고, 대신 application/config/config.php 파일에 $config['url_suffix']의 값으로 설정됩니다.
감싸는 태그 추가하기 Adding Enclosing Markup¶
페이지네이션 전체에 감싸는 태그를 추가하고싶으면 아래와 같이 합니다:
$config[‘full_tag_open’] = ‘<p>’;
페이지네이션 왼쪽에 위치할 여는태그입니다.
$config[‘full_tag_close’] = ‘</p>’;
페이지네이션 오른쪽에 위치할 닫는태그 입니다.
“처음으로” 링크 커스터마이징 Customizing the First Link¶
$config[‘first_link’] = ‘First’;
페이지네이션 맨 왼쪽에 위치할 “처음으로” 링크 글을 설정합니다. 값을 FALSE로 설정하면, 이 링크는 렌더링 되지않습니다.
Note
이 값은 언어 파일을 통해 번역됩니다.
$config[‘first_tag_open’] = ‘<div>’;
“처음으로” 링크의 여는태그 입니다.
$config[‘first_tag_close’] = ‘</div>’;
“처음으로” 링크의 닫는태그 입니다.
$config[‘first_url’] = ‘’;
“처음으로” 링크의 URL 을 설정할 수 있습니다.
“끝으로” 링크 커스터마이징 Customizing the Last Link¶
$config[‘last_link’] = ‘Last’;
페이지네이션 맨 오른쪽에 위치할 “끝으로” 링크 글을 설정합니다. 값을 FALSE로 설정하면, 이 링크는 렌더링 되지 않습니다.
Note
이 값은 언어 파일을 통해 번역됩니다.
$config[‘last_tag_open’] = ‘<div>’;
“끝으로” 링크의 여는태그 입니다.
$config[‘last_tag_close’] = ‘</div>’;
“끝으로” 링크의 닫는태그 입니다.
“다음으로” 링크 커스터마이징 Customizing the “Next” Link¶
$config[‘next_link’] = ‘>’;
“다음” 링크 글을 설정합니다. 값을 FALSE로 설정하면, 이 링크는 렌더링 되지 않습니다.
Note
이 값은 언어 파일을 통해 번역됩니다.
$config[‘next_tag_open’] = ‘<div>’;
“다음으로” 링크의 여는태그 입니다.
$config[‘next_tag_close’] = ‘</div>’;
“다음으로” 링크의 닫는태그 입니다.
“이전으로” 링크 커스터마이징 Customizing the “Previous” Link¶
$config[‘prev_link’] = ‘<’;
“이전” 링크 글을 설정합니다. 값을 FALSE로 설정하면, 이 링크는 렌더링 되지 않습니다.
Note
이 값은 언어 파일을 통해 번역됩니다.
$config[‘prev_tag_open’] = ‘<div>’;
“이전으로” 링크의 여는태그 입니다.
$config[‘prev_tag_close’] = ‘</div>’;
“이전으로” 링크의 닫는태그 입니다.
“현재페이지” 링크 커스터마이징 Customizing the “Current Page” Link¶
$config[‘cur_tag_open’] = ‘<b>’;
“현재페이지” 링크의 여는태그 입니다.
$config[‘cur_tag_close’] = ‘</b>’;
“현재페이지” 링크의 닫는태그 입니다.
“숫자” 링크 커스터마이징 Customizing the “Digit” Link¶
$config[‘num_tag_open’] = ‘<div>’;
“숫자” 링크의 여는태그 입니다.
$config[‘num_tag_close’] = ‘</div>’;
“숫자” 링크의 닫는태그 입니다.
페이지 숨기기 Hiding the Pages¶
페이지를 숨기고 싶다면 (예를 들어 “이전”, “다음” 링크만 출력하고 싶다든지) 아래와 같이 하면 해당 페이지가 렌더링 되지않습니다:
$config['display_pages'] = FALSE;
A태그에 속성 추가 Adding attributes to anchors¶
페이지네이션 클래스에 의해 렌더링 되는 모든 링크에 추가 속성을 더하고 싶다면, config 에 key/value 로 전달하면 됩니다:
// Produces: class="myclass"
$config['attributes'] = array('class' => 'myclass');
Note
“anchor_class” 를 통해 세팅했던 예전 방식은 deprecated 되었습니다.
rel 속성 제거 Disabling the “rel” attribute¶
기본적으로 rel 속성은 동적으로 생성되고 A 태그에 추가됩니다. 만약 그 속성을 해제하고 싶으면, 일반 속성으로 부울 FALSE를 전달할 수 있습니다.
$config['attributes']['rel'] = FALSE;
클래스 레퍼런스 Class Reference¶
- class CI_Pagination¶
- initialize([$params = array()])¶
인수: - $params (array) – Configuration parameters
반환값: CI_Pagination instance (method chaining)
반환형: CI_Pagination
원하는 옵션과 함께 페이지네이션 클래스를 초기화하기.
- create_links()¶
반환값: HTML-formatted pagination 반환형: string 단지 하나의 페이지만 있다면, 생성되는 링크나 빈 문자열을 포함하는 “pagination” 을 반환합니다.