CI 묻고 답하기

제목 포럼소스 페이징 질문 드립니다. 꾸벅~
글쓴이 꾸숑 작성시각 2013/03/31 03:06:49
댓글 : 3 추천 : 0 스크랩 : 0 조회수 : 14164   RSS

자꾸 질문만 드려서 죄송스럽습니다.
기회 되면 꼬~옥 식사대접 할게요^^
현재 제가 만든 게시판에 포럼의 통합검색기능을 이식작업중 페이징에 오류가 발생했습니다.

검색후 브라우저 url(정상) =
http://localhost/board_tank/search/index/q/테스트
검색후 페이지 링크 url (오류)=
http://localhost/board_tank/page/1
이렇게 되고 있습니다.

페이지 링크 url 이 아래처럼 정상적으로 되도록 수정할려고 합니다.
http://localhost/board_tank/search/index/q/테스트/page/2

브라우저에 직접 위와 같이 입력했을때 정상적으로 페이징은 됩니다
.

이래 저래 작업해 봤으나 실력 부족으로 잘 안되네요..
혹시 몰라 작업중 파일 첨부 합니다.
바쁘시시만 부탁드립니다.


controllers/search.php

<?php

class Search extends CI_Controller {

 function __construct()
 {
  parent::__construct();
  $this->load->model('search_model');

  $this->load->model('admin/site_config_model');
  $this->load->helper(array('directory','common'));

  $this->seg_exp = segment_explode($this->uri->uri_string());
 }

 //헤더, 푸터 자동삽입
 public function _remap($method)
 {
     $site=$this->site_config_model->site();
     $this->load->view('main_top_view',$site);

  if( method_exists($this, $method) )
  {
   $this->{"{$method}"}();
  }
  $this->load->view('main_foot_view');
 }

 //통합검색 기능추가 by emc (2009/08/19)
 //세그먼트 정리 및 리맵 추가 by 웅파 (2013/03/05)
 function index()
 {
  if( in_array('q', $this->seg_exp) )
  {
   $data['search_word'] = $search_word = urldecode($this->security->xss_clean(url_explode($this->seg_exp, 'q')));
   //주소에서 q 제거. 뷰에서 사용
   $this->seg_exp =  url_delete($this->seg_exp, 'q');
   $data['search_url'] = "q/".$search_word;
  }
  else
  {
   $data['search_word'] = $search_word = '';
   $data['search_url'] = '';
  }

  if( $search_word != '' )
  {
   $post = array('s_word'=>str_replace("'", "", $search_word));
  }
  else
  {
   $post = '';
  }

  $data['search_total'] = $total = $this->search_model->search_total($post);


  if($this->uri->segment(4) == 'page')
  {
   $data['page_account']=$page = 1;
  }
  else
  {
   //페이징
   if( in_array('page', $this->seg_exp) )
   {
    $data['page_account'] = $page = urldecode($this->security->xss_clean(url_explode($this->seg_exp, 'page')));
   }
   else
   {
    $data['page_account'] = $page = 1;
   }
  }

  $rp = 10; //리스트 갯수
  $limit = 9; //보여줄 페이지수

  $start = (($page-1) * $rp);

  //검색후 페이징처리위한..
  $this->url_seg = $this->seg_exp;
  $urls = implode('/', url_delete($this->url_seg, 'page'));
  $data['pagination_links'] = pagination($urls."/page", paging($page,$rp,$total,$limit));

  $data['search_list'] = $this->search_model->search_list($start, $rp, $post);
  $this->load->view('board/search_view', $data);
 }
}

태그 웅파,꾸숑,통합검색,검색,search.php,search,포럼,포럼소스
첨부파일 통합검색작업.zip (4.4 KB)
 다음글 view 에 2차원 배열 전달하기 (1)
 이전글 포럼 게시판 통합 검색에 대해서 질문 드립니다. (3)

댓글

변종원(웅파) / 2013/04/01 12:06:36 / 추천 0
 $urls = implode('/', url_delete($this->url_seg, 'page'));

이 부분이 해당 주소 만드는 부분입니다. 검색관련 주소가 나오도록 바꿔주시면 됩니다.
꾸숑 / 2013/04/02 00:32:11 / 추천 0
웅파//
답글 감사합니다.
말씀하신데로 작업해 보겠습니다.^^
꾸숑 / 2013/04/05 02:36:29 / 추천 0
웅파//아래와 같이 수정하여 오류 없이 잘 작동 됩니다.
  $data['pagination_links'] = pagination($urls."/search/index/q/$search_word/page",

다만 조금 아쉬운점은 First 나 Last를 한번클릭하고 다시한번   First 나 Last를 클릭하면
주소가 아래처럼 search/index 가 중복으로 나오는군요 작동하는데는 문제는 없네요^^
http://localhost/board_tank/search/index/search/index/q/테스트/page/1

어찌했든 문제 하나 해결했습니다. 감사합니다.