CI 묻고 답하기

제목 페이지네이션 커스텀 질문드리겠습니다.(페이지 넘버관련)
글쓴이 해행행 작성시각 2016/03/21 13:02:05
댓글 : 10 추천 : 0 스크랩 : 0 조회수 : 18373   RSS

제가 게시판작업을 하고있습니다.

전체리스트를 불러오는 카테고리가있고

특정 리스트만 불러오는 카테고리가있습니다.

전체리스트를 불러오는경우 페이지넘버를 $this->pagination->create_links() 이걸로 불러와서 정삭적으로 작동되나

특정 리스트만 불러온 카테고리의경우 어떻게 커스텀을 해야하는지 방법을 잘모르겠습니다.

페이지넘버가... 예를 들어 2페이지 선택시 여전히 전체리스트의 페이지 넘버 로 이동이됩니다

제가 시야가 좁아서 어떻게 커스텀을해야하는지 알수없어 이렇게 질문을드립니다

저번주 정모참여해볼려고햇는데 일정이안맞아서 못갔네요 ㅜ

매번 좋은포럼사이트를 만들어주셔서 유용하게 잘 사용하고있습니다. 감사합니다.

 다음글 CI 의 Encryptions 로 encrypt 한 d... (3)
 이전글 오늘 날짜 데이터를 가져오려고 하는데 잘 안되네요. (2)

댓글

kaido / 2016/03/21 13:34:54 / 추천 1

구현 하시려는 부분은 페이지 네이션 라이브러리하고는 상관없습니다.

페이지 네이션 라이브러리는  [이미 데이터를 뽑아낸 배열을 태그형태로 만들어주는 함수] 이라고 생각 하시면 됩니다.

 

모델 부분에서 특정 카테고리만 리스트 되게 만들어서 페이징 하시면 됩니다.

 

Aㅏ !! 그래도 잘 모르겠다면

http://cikorea.net/bbs/view/lecture?idx=7097&page=2&view_category=&lists_style=

한번 눈여겨 보세요.

변종원(웅파) / 2016/03/21 14:00:38 / 추천 1

처음엔 시야가 좁을 수밖에 없기 때문에 다른 사람이 만든 소스를 자꾸 보는 것이 중요합니다.

말씀하신 부분은 게시판 기본 로직에 해당하는 것이라 꼭 ci 게시판이 아니더라도 php 게시판 소스들 참고하시면 됩니다.

보통 리스트_모델함수(시작, 끝, 검색어) 정도로 함수를 만들고 검색어에 카테고리를 넘겨줘서 sql에 포함해서 검색을 합니다.

그 총수를 구하고 시작, 끝에 해당하는 부분만 가져오도록 하는게 페이징입니다.

배강민 / 2016/03/21 15:01:09 / 추천 1

TapBBS는 다음과 같이 되어 있습니다.

            $this->config->load('pagination');
            $pagination_config = $this->config->item($this->viewport);

            unset($config);

            // http://codeigniter-kr.org/user_guide_2.1.0/libraries/pagination.html
            $config['base_url']             = BASE_URL . 'bbs/lists/' . $this->bbs_id . '?' . $view_category['param_add'] . '&lists_style=' . $this->input->get_post('lists_style');
            $config['enable_query_strings'] = TRUE; // ?page=10 이런 일반 get 방식
            $config['page_query_string']    = TRUE;
            $config['use_page_numbers']     = TRUE;
            $config['num_links']            = (int)BBS_SETTING_bbs_count_page_article;
            $config['query_string_segment'] = 'page';
            $config['total_rows']           = $assign['total_cnt'];
            $config['per_page']             = (int)BBS_SETTING_bbs_count_list_article;

            $config = array_merge($config, $pagination_config);

            $this->pagination->initialize($config);

            $assign['pagination'] = $this->pagination->create_links();

 

즉, base_url 에 붙여야할 파라메터를 붙어지게 하면됩니다.

해행행 / 2016/03/21 15:16:02 / 추천 0

//kaido, 웅파

감사합니다 동영상도 참고하고 조언도 참고해서 제가어떤부분을 간과했는지 찾았습니다 ^^

매번 친절한답변 감사합니다.

해행행 / 2016/03/21 15:17:29 / 추천 0

//배강민

뒤늦게 봤습니다. 말씀해주신부분도 참고하여 공부하겠습니다 감사합니다 ^^

 

해행행 / 2016/03/21 15:28:17 / 추천 0

아아 바보같은짓을했네요.

페이지가 딱 원하는만큼만떠서 해결한줄알고 기분좋아져서 댓글달았는데

혹시 설마하고 눌렇더니 여전히 전체리스트로 넘어가네요... 좀더 봐보고 뭐가잘못됫었는지 댓글달겠습니다.

 

변종원(웅파) / 2016/03/21 15:58:20 / 추천 0
해행행/ 전체 리스트가 나온다면 쿼리에 조건문이 반영 안된겁니다. ^^
해행행 / 2016/03/21 16:11:59 / 추천 0

//변종원(웅파)

음... 정확히 어느부분을 말씀하시는건지 헤깔립니다. 

말씀하신 쿼리는 게시판리스트를 불러오는 쿼리를 말씀하시는 건가요?

그렇다면 데이터는 정상적으로 불러오는데 페이지 넘버만 클릭시 제대로 이동하질 않고있습니다.

그게아니라 다른부분의 쿼리를 말씀하시는거면 어떤부분을 말씀하시는지 한번만 더 짚어주시면안될까요?

매번감사합니다.

누구야 / 2016/03/21 18:42:02 / 추천 0

전체리스트는 잘 동작을 하는데

특정리스트를 출력하고 나서 페이지를 이동하려고 페이지네이트 링크를 눌렀을시 전체리스트가 나온다?라는 문제인가요?

그렇다면 페이지네이트 링크를 확인해보세요. 올바른 주소로 넘어가는지 확인해보셔야합니다.

그 주소가 특정리스트 출력하는 쿼리 조건의 변수를 담고 있으니깐요.

 

그러므로 특정리스트 주소와

페이지네이트 페이지이동후에 주소를 비교해보세요.

그러면 문제점이 보이실꺼같네요.

 

해행행 / 2016/03/22 11:16:34 / 추천 0

해결 했습니다. 다들 감사합니다.

라이브러리 커스텀하기 껄끄러워 스크립트로 a태그 href 속성변경하여서 

값넘겨주는 형식으로 해결했습니다 감사합니다 !