제목 | 페이지네이션 attribute 관련 질문입니다. | ||
---|---|---|---|
카테고리 | CI 2, 3 | ||
글쓴이 | 델리카토 | 작성시각 | 2016/11/09 13:51:49 |
|
|||
안녕하십니까? 페이지네이션과 관련해서 질문이 있어 글을 남깁니다. 페이지네이션에 보면 attribute를 배열로 넣는 부분이 있습니다. 이부분에서 궁금한것이 있습니다.
페이지네이션 라이브러리를 보면 config에서 설정한 param들을 한번 불러서 변수에 저장하고, initialize에서 추가로 넣은 (base_url등) param값을 또 한번 불러서 변수에 저장합니다.
이때 initialize 부분을 보면 attributes 가 있으면 별도로 _parse_attributes함수를 실행시키고, 여기서 변수에 저장을 하는데, 이부분이 이렇게 되어있습니다. protected function _parse_attributes($attributes) { isset($attributes['rel']) OR $attributes['rel'] = TRUE; $this->_link_types = ($attributes['rel']) ? array('start' => 'start', 'prev' => 'prev', 'next' => 'next') : array(); unset($attributes['rel']); $this->_attributes = ''; foreach ($attributes as $key => $value) { $this->_attributes .= ' '.$key.'="'.$value.'"'; } } 보시면 _attributes를 한번 비우고 foreach로 재 설정합니다.
즉, config파일에서 attribute를 설정하더라도 config파일 한번, 추후 추가(커스터마이징 부분)할때 한번 총 두번 실행되기 때문에 추후 실제 페이지네이션을 불러올때(커스터마이징 부분) param값에 attributes값이 없으면 지워버리는 거죠.
코드만 보면 이런데... 다른분들은 이부분을 잘 쓰고 계신것 같더라구요. 혹시 제가 놓치고 있는 것이 있는지, 있다면 어떤 것인지 궁금합니다. 버전은 3.1.2를 사용하고 있습니다.
이부분에 대해 아시는 분이 있으시면 답변 부탁드립니다. 감사합니다.
|
|||
다음글 | Oracle DB에 로우 인서트 후 해당 로우가 사라지... (3) | ||
이전글 | 선배님들 라이브러리 호출 관련 질문합니다 ㅠ_ㅠ.. (8) | ||
변종원(웅파)
/
2016/11/09 16:39:08 /
추천
0
|
델리카토
/
2016/11/09 17:18:51 /
추천
0
네 ^^ 답변 감사합니다. initialize함수를 호출 해서, 필요한 부분 base_url 이나 total_rows를 오버라이팅 해서 쓰고 있습니다. 일반적으로 이렇게 쓰시지 않나요? 이게 잘못된 방법인가요? 이부분을 config 파일에 넣긴 어려우니까요. 그런데 다른 파라메터는 추가로 저장(overwirte)이 되는데 attribute만 전부 리셋 되길래 여쭈어 보았습니다. |
델리카토
/
2016/11/09 17:25:36 /
추천
0
$config['base_url'] = $base_url; $config['total_rows'] = $total_cnt; $config['per_page'] = $limit; $config['uri_segment'] = $page_seg; $config["attributes"] = array("class"=>"page-link"); $CI->pagination->initialize($config); 이런 방식으로 사용하고 있습니다. 맨 밑에 attributes는 config파일에 넣어놓으면 리셋되어서 어쩔수 없이 하단에 추가 방식으로 넣어 놓은 것입니다. 저 attributes 부분을 config파일 넣고 싶은거구요. 여태까지 이 방법만 알고 있었어서.... 어떻게 진행해야 하는지 올바른 방법을 알려주시면 감사하겠습니다. |
변종원(웅파)
/
2016/11/09 18:12:27 /
추천
0
지금 사용하시는게 일반적인 방식이구요. config파일에 넣으면 initialize가 필요없다는 말씀입니다.
|
사용법을 잘못 알고 계시네요.
config 파일에 데이터를 넣어서 저장을 하면 initialize() 함수를 호출할 필요가 없습니다.
initialize()함수는 컨트롤러 내부에서 config를 다르게 사용하려고 할때 사용합니다.
매뉴얼 다시 읽어보세요. http://www.ciboard.co.kr/user_guide/kr/libraries/pagination.html