페이지네이션 클래스

CodeIgniter의 페이지네이션 클래스는 매우 사용하기 쉬우며 동적으로 또는 저장된 설정을 통해 100% 사용자 정의가 가능합니다.

“페이지네이션”이라는 용어에 익숙하지 않다면 다음과 같이 페이지에서 페이지로 탐색할 수 있는 링크를 의미합니다:

« First  < 1 2 3 4 5 >  Last »

예시

다음은 컨트롤러 메소드 중 하나에서 페이지네이션을 만드는 방법을 보여주는 간단한 예시입니다:

$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();

참고

$config 배열에는 설정 변수가 포함됩니다. 위와 같이 $this->pagination->initialize() 메소드에 전달됩니다. 설정할 수 있는 항목이 약 20가지 있지만 최소한 표시된 세 가지가 필요합니다. 해당 항목이 의미하는 내용은 다음과 같습니다:

  • base_url 페이지네이션이 포함된 컨트롤러 클래스/함수의 전체 URL입니다. 위 예시에서는 “Test”라는 컨트롤러와 “page”라는 함수를 가리킵니다. 다른 구조가 필요한 경우 URI를 재라우팅할 수 있다는 점을 기억하세요.

  • total_rows 이 숫자는 페이지네이션을 만들고 있는 결과 집합의 총 행 수를 나타냅니다. 일반적으로 이 숫자는 데이터베이스 쿼리가 반환한 총 행 수입니다.

  • per_page 페이지당 표시하려는 항목 수입니다. 위 예시에서는 페이지당 20개의 항목을 표시합니다.

create_links() 메소드는 표시할 페이지네이션이 없을 때 빈 문자열을 반환합니다.

설정 파일에서 설정

위의 방법으로 설정을 지정하지 않으려면 설정 파일에 넣을 수 있습니다. pagination.php라는 새 파일을 만들고 해당 파일에 $config 배열을 추가하세요. 그런 다음 파일을 application/config/pagination.php에 저장하면 자동으로 사용됩니다. 설정 파일에 설정을 저장하면 $this->pagination->initialize()를 사용할 필요가 없습니다.

페이지네이션 사용자 정의

다음은 디스플레이를 조정하기 위해 초기화 함수에 전달할 수 있는 모든 설정 목록입니다.

$config[‘uri_segment’] = 3;

페이지네이션 함수는 URI의 어떤 세그먼트에 페이지 번호가 포함되어 있는지 자동으로 결정합니다. 다른 것이 필요한 경우 지정할 수 있습니다.

$config[‘num_links’] = 2;

선택된 페이지 번호 앞뒤에 표시하려는 “숫자” 링크의 수입니다. 예를 들어 숫자 2는 이 페이지 맨 위의 예시 링크처럼 양쪽에 두 자리를 배치합니다.

$config[‘use_page_numbers’] = TRUE;

기본적으로 URI 세그먼트는 페이지네이션하는 항목의 시작 인덱스를 사용합니다. 실제 페이지 번호를 표시하려면 이것을 TRUE로 설정하세요.

$config[‘page_query_string’] = TRUE;

기본적으로 페이지네이션 라이브러리는 URI 세그먼트를 사용한다고 가정하고 다음과 같은 링크를 구성합니다:

http://example.com/index.php/test/page/20

$config['enable_query_strings']가 TRUE로 설정된 경우 링크는 자동으로 쿼리 문자열을 사용하여 재작성됩니다. 이 옵션은 명시적으로 설정할 수도 있습니다. $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

이는 3.0 이전에는 불가능했던 일반 URI 세그먼트와 쿼리 문자열 인수를 함께 혼합하는 데 도움이 됩니다.

$config[‘prefix’] = ‘’;

경로에 추가되는 사용자 정의 접두사입니다. 접두사 값은 오프셋 세그먼트 바로 앞에 위치합니다.

$config[‘suffix’] = ‘’;

경로에 추가되는 사용자 정의 접미사입니다. 접미사 값은 오프셋 세그먼트 바로 뒤에 위치합니다.

$config[‘use_global_url_suffix’] = FALSE;

TRUE로 설정하면 $config['suffix'] 값을 재정의하고 대신 application/config/config.php 파일의 $config['url_suffix']에 있는 값으로 설정합니다.

둘러싸는 마크업 추가

전체 페이지네이션을 마크업으로 둘러싸려면 다음 두 가지 설정으로 할 수 있습니다:

$config[‘full_tag_open’] = ‘<p>’;

전체 결과의 왼쪽에 배치되는 여는 태그입니다.

$config[‘full_tag_close’] = ‘</p>’;

전체 결과의 오른쪽에 배치되는 닫는 태그입니다.

첫 번째 링크 사용자 정의

$config[‘first_link’] = ‘First’;

왼쪽의 “처음” 링크에 표시할 텍스트입니다. 이 링크를 렌더링하지 않으려면 값을 FALSE로 설정할 수 있습니다.

참고

이 값은 언어 파일을 통해 번역할 수도 있습니다.

$config[‘first_tag_open’] = ‘<div>’;

“처음” 링크의 여는 태그입니다.

$config[‘first_tag_close’] = ‘</div>’;

“처음” 링크의 닫는 태그입니다.

$config[‘first_url’] = ‘’;

“첫 번째 페이지” 링크에 사용할 대체 URL입니다.

마지막 링크 사용자 정의

$config[‘last_link’] = ‘Last’;

오른쪽의 “마지막” 링크에 표시할 텍스트입니다. 이 링크를 렌더링하지 않으려면 값을 FALSE로 설정할 수 있습니다.

참고

이 값은 언어 파일을 통해 번역할 수도 있습니다.

$config[‘last_tag_open’] = ‘<div>’;

“마지막” 링크의 여는 태그입니다.

$config[‘last_tag_close’] = ‘</div>’;

“마지막” 링크의 닫는 태그입니다.

다음 링크 사용자 정의

$config[‘next_link’] = ‘&gt;’;

“다음” 페이지 링크에 표시할 텍스트입니다. 이 링크를 렌더링하지 않으려면 값을 FALSE로 설정할 수 있습니다.

참고

이 값은 언어 파일을 통해 번역할 수도 있습니다.

$config[‘next_tag_open’] = ‘<div>’;

“다음” 링크의 여는 태그입니다.

$config[‘next_tag_close’] = ‘</div>’;

“다음” 링크의 닫는 태그입니다.

이전 링크 사용자 정의

$config[‘prev_link’] = ‘&lt;’;

“이전” 페이지 링크에 표시할 텍스트입니다. 이 링크를 렌더링하지 않으려면 값을 FALSE로 설정할 수 있습니다.

참고

이 값은 언어 파일을 통해 번역할 수도 있습니다.

$config[‘prev_tag_open’] = ‘<div>’;

“이전” 링크의 여는 태그입니다.

$config[‘prev_tag_close’] = ‘</div>’;

“이전” 링크의 닫는 태그입니다.

현재 페이지 링크 사용자 정의

$config[‘cur_tag_open’] = ‘<b>’;

“현재” 링크의 여는 태그입니다.

$config[‘cur_tag_close’] = ‘</b>’;

“현재” 링크의 닫는 태그입니다.

숫자 링크 사용자 정의

$config[‘num_tag_open’] = ‘<div>’;

“숫자” 링크의 여는 태그입니다.

$config[‘num_tag_close’] = ‘</div>’;

“숫자” 링크의 닫는 태그입니다.

페이지 숨기기

특정 페이지 목록을 표시하지 않으려면(예: “다음”과 “이전” 링크만 원하는 경우) 다음을 추가하여 렌더링을 억제할 수 있습니다:

$config['display_pages'] = FALSE;

앵커에 속성 추가

페이지네이션 클래스가 렌더링하는 모든 링크에 추가 속성을 추가하려면 “attributes” 설정에 키/값 쌍으로 설정할 수 있습니다:

// 생성 결과: class="myclass"
$config['attributes'] = array('class' => 'myclass');

rel 속성 비활성화

기본적으로 rel 속성은 동적으로 생성되어 적절한 앵커에 추가됩니다. 어떤 이유로든 이를 해제하려면 일반 속성으로 boolean FALSE를 전달할 수 있습니다:

$config['attributes']['rel'] = FALSE;

클래스 레퍼런스

class CI_Pagination
initialize([$params = array()])
매개변수:
  • $params (array) – 설정 매개변수

반환:

CI_Pagination 인스턴스 (메소드 체이닝)

반환 형식:

CI_Pagination

원하는 옵션으로 페이지네이션 클래스를 초기화합니다.

반환:

HTML 형식의 페이지네이션

반환 형식:

string

생성된 링크를 포함하는 “페이지네이션” 바를 반환하거나 페이지가 하나뿐인 경우 빈 문자열을 반환합니다.