CI 묻고 답하기

제목 헤더 풋더 나누기..
글쓴이 김대현 작성시각 2013/08/20 13:58:54
댓글 : 8 추천 : 0 스크랩 : 0 조회수 : 16017   RSS
안녕하세요.
상단에 메뉴와 바디 부분을 분리해서 코딩하려고 하는데요..

<div class="container-narrow">

<div class="masthead">

<ul class="nav nav-pills pull-right">

<li class="active"><a href="#">Member List<!--><!-->

<li><a href="#">Member Add<!--a><!--li>

<!--?phpif($this -> session -> userdata('user_level') == ADMIN_LEVEL){?>

<li><a href="#">Admin<!--><!-->

<!--?}?-->

<li><a href="/index/logout">Logout<!--a><!--li>

<!--

<h3 class="muted">MPTC<!-->

      <!--div>

이런식식으로 상단 메뉴는 한페이지에서 관리하고 나머지 바디부분은 각각 메뉴 벌로 관리하고 싶은데

어떻게 해야할까요?



그리고 메뉴 활성화시 li 태그 안에 class =" active" 속성이 활성화 되야합니다.

조언좀 해주세요.




 다음글 프로그램 툴 질문이요[html5 builder] (2)
 이전글 input->get_post(); (14)

댓글

risa / 2013/08/20 14:26:12 / 추천 0
$menu_code = array();

 $this->load->view('header_v',$menu_code);

 $this->load->view('main_v',$main);

 $this->load->view('footer_v'');


메뉴코드에 $this->uri->segment(); 를 기준으로 판별해서 코드값을 미리 넣어둡니다.
예 : 1001

뒷자리든 앞자리든 짤라서 해당 코드 값이면  class =" active"

메뉴를 헤더 밑에 메뉴만 따로 넣고 싶으면

 $this->load->view('menu_v',$menu_code);


여기에 리맵까지 넣으시면 끗.

public function _remap($method){
  $this->load->view('header_v');
  $this->load->view('menu_v',$menu_code);
  $this->{"{$method}"}();
  $this->load->view('footer_v'');
}

나머지 함수 호출에는 신경 끄고 해당 뷰만 넣으시면 됩니다.

risa / 2013/08/20 14:31:07 / 추천 0
 아 혹시 뷰를 따로 부르는게 부담 되신다면...

$this->output->append_output();

를 이용해 보세요.

그냥 echo 의 대용이라고 생각 하시면 됩니다.
김대현 / 2013/08/20 14:49:03 / 추천 0
 $this->{"{$method}"}(); 코드가 이해가 되지 않습니다 어떤 기능을 하는 코드인가요?
risa / 2013/08/20 15:30:50 / 추천 0
public function _remap($method){ 
}

이것부터 이해 하셔야 합니다.

메뉴얼 찾아보시면 리맵 이라는 기능입니다.

컨트롤러 실행시 제일 먼저 찾아가는 함수 정도로 먼저 이해하시면됩니다.

일반적으로  
$method  = $this->uri->segment(2);  와 같습니다. [일부 아닐경우도 있지만 통상적으론 같습니다.]


CI 에서 함수[페이지] 호출 법은 무엇이죠?

$this->func_name();

입니다.

{"{$method}"} = 가변변수를 이용하여 2번째 세그먼트의 값을 그대로 호출 하는 것입니다.


예를들어서 test 컨트롤러에

function abc(){
}

가 있고 

../test/abc/

로 URL 접근시

abc 라는 함수 호출 이란 의미입니다.

$this->abc(); 와 같습니다.

즉 2번째 세그먼트에 적은 값의 함수로 호출 하겠다는 의미입니다.






들국화 / 2013/08/20 16:12:53 / 추천 0
개인적으로 hooking 으로 하는게 좀더 편한거 같아요.

하나의 컨트롤러에서 여러 디자인을 사용하기도 편리한듯 하네요.
김대현 / 2013/08/20 17:09:05 / 추천 0
 hooking 이 코드이그나이트 방법인가요?
변종원(웅파) / 2013/08/20 17:31:25 / 추천 0
http://cikorea.net/user_guide_2.1.0/general/hooks.html

후킹이라는 기법으로 레이아웃을 관리할 수 있습니다.

포럼 검색에서 레이아웃 또는 layout으로 검색해보세요.
김대현 / 2013/08/20 18:31:17 / 추천 0
 답변 너무 감사합니다. 많은 도움 됫습니다.