CI 묻고 답하기

제목 remap 사용시 스크립트 호출 방법
카테고리 CI 2, 3
글쓴이 개락 작성시각 2017/05/09 15:37:17
댓글 : 6 추천 : 0 스크랩 : 0 조회수 : 15266   RSS
public function _remap($method)
  {
    $navName = $this->uri->segment(1);    
    $data['js_load'] = array('*.js');
    $data['css_load'] = array('*.css', '*.css', '*.css','*.css','*.css');
    $data['title'] = "page Title";
    //로그인 체크
    get_login($this->session->userdata('logged_in'));
    //헤더 include
    if ($this->input->is_ajax_request()) {
      if (method_exists($this,$method)) {
        $this->{"{$method}"}();
      }
    } else {
      if (method_exists($this, $method)) {
        $this->Include_m->header($data);
        $this->Include_m->nav();
        if (method_exists($this, $method)) {
          $this->{"{$method}"}();
        }
        //푸터 include
        $this->Include_m->footer();
        $this->output->enable_profiler(true);
      }
    }
  }

remap 사용법에 대한 부분을 포럼상에서 검색해서 찾아봤지만 오! 이방법이면 되겠다 싶은게 없어서 혹시나 질문글을 올려봅니다.

remap에서 css랑 js를 배열로 헤더로 넘깁니다. 헤더에서는 값을 받아서 for문으로 생성을 하구요..

문제는 작성페이지나 기타 다른 페이지에서 추가 css 파일이나 js파일을 처리해야할때인대요..

현재 생각으로는 $method값을 체크해서 사용해야하는 페이지에 각 배열에 값을 추가해주는 방식으로 처리를 해보려고하는데 이방법 말고 좀 더 효율적인 방법은 없을까요?..

퍼블리셔와 협업을 해야하는데 기존에 날코딩으로 진행하다보니 mvc를 적용시켜도 서로 적응하는데 어려움이 있네요...ㅎㅎ;

 다음글 상수 관리 어떻게 하시나요? (2)
 이전글 엑티브 레코드 질문이요 (5)

댓글

변종원(웅파) / 2017/05/09 23:17:43 / 추천 0

공통 js, css 이외의 것은 주소에 따라 $data 변수에 추가로 넣도록 하면 됩니다.

아래 부분을 remap에서 처리하는게 아니라 헬퍼 함수정도로 해서 주소에 따라 다른 js, css를 선언해주면 됩니다.

$data['js_load'] = array('*.js');
    $data['css_load'] = array('*.css''*.css''*.css','*.css','*.css');
    $data['title'] = "page Title";
 
 
 
개락 / 2017/05/10 11:01:13 / 추천 0

조언 감사합니다. 기초적인 질문이 있습니다. 헬퍼에 함수를 만들어서 각 값들을 추가로 변수에 넣는다 하면..

그걸 전역적으로 사용할수 있는 방법이..^^;;

$this->load->vars($data); 로 생성자에서 처리해두면 remap에서 연결되는 각 view에서 js_load나 css_load를 다 호출할수 있는건가요?.. ㅎㅎ; 

한대승(불의회상) / 2017/05/10 11:11:16 / 추천 0
전역으로 사용된다면 config/constants.php 에 기록하시거나 세션에 집어 넣는게 좋을것 같습니다.
개락 / 2017/05/10 14:09:39 / 추천 0

솔직히 말씀드리자면... php 클래스 사용에 대한 지식이 부족해서..

생성자에서 배열만든후에 remap에 있는 헤더로 그 값을 넘겨주질 못해서 remap안으로 옮긴거거든요...ㅎㅎ;;

어차피 매 페이지마다 호출되야하는 부분이니 회상님 말씀대로 상수나 세션으로 처리해도 좋을꺼같습니다.

두분 감사합니다..^^

 

변종원(웅파) / 2017/05/10 14:19:48 / 추천 0

생성자에서 $this->배열명 = array() 으로 할당하고

메소드에서 $this->배열명으로 사용하면 됩니다.

개락 / 2017/05/10 14:27:07 / 추천 0

변종원(웅파)

아하하하. 감사합니다..!!