TIP게시판

제목 뷰를 구성하는 방식 1가지 추가
글쓴이 변종원(웅파) 작성시각 2013/10/02 11:53:27
댓글 : 5 추천 : 2 스크랩 : 1 조회수 : 15329   RSS
뷰로 헤더, 내용, 푸터를 구성할 때 다음과 같은 방법이 있습니다. 

1. 기본 (컨트롤러내 메소드에서 선언)
$this->load->view('header_v');
$this->load->view('list_v');
$this->load->view('footer_v');

2. remap 이용 (컨트롤러내에 선언)
function _remap($method)
{
    $this->load->view('header_v');
    
    if( method_exists($this, $method) )
    {
        $this->{"{$method}"}();
    }
    
    $this->load->view('footer_v');
}

3. hook을 이용한 레이아웃 구조 : 자세한 것은 포럼에서 레이아웃으로 검색
- 컨트롤러 로딩 전에 미리 화면 레이아웃을 구성하고 내용부분을 치환하는 방식

4. carbogrid.com 의 하나의 뷰를 이용하는 방식
- 데이터그리드가 필요해서 검색을 해서 찾은 것인데 뷰를 사용하는 방식이 새로워서 글을 쓰게 됐습니다.
레이아웃과 비슷한데 hook을 이용한 것이 아니라 1번의 일반적인 사용법과 비슷합니다.

//컨트롤러 메소드에서 선언
$data->page = 'grid_single'; //불러올 view페이지명
$this->load->view('container', $data);
//container 파일은 헤더, 푸터 모두 선언되어 있고

//container.php

생략...

<div id="wrapper">
<?php $this->load->view('header'); ?>
<?php $this->load->view('content'); ?>
<?php $this->load->view('footer'); ?>
</div>

후략....

//content.php
<div id="content">
    <div class="container_12">
        <div class="grid_12">
            <?php if (isset($page)) $this->load->view($page); ?>
        </div>
        <div class="clear"></div>
    </div>
</div>
//컨트롤러에서 선언한 $page 변수를 이곳에서 사용하여 실제 뷰파일을 불러옴.

hook으로 처리하는 것이 아니라 컨트롤러에서 연결되어 뷰 디렉토리에 존재하기 때문에 숨겨진 부분이 없어
유지보수시 문서가 따로 없더라도 바로 처리할 수 있고 화면 레이아웃이 달라질 경우 그에 해당하는 container 파일을
여러 개 만들어 사용하면 처리가 가능하네요.

새로운 뷰 구현로직(?)을 배운 기념으로 정리해서 올립니다. ^^










 다음글 한글언어팩 누락 부분 (1)
 이전글 [설정] CodeIgniter + Sencha Arch... (5)

댓글

한대승(불의회상) / 2013/10/04 16:28:04 / 추천 0
디자이너와의 원활한 업무 소통을 위해 이렇게 하는게 좋겠습니다. 
변종원(웅파) / 2013/10/04 17:41:27 / 추천 0
불의회상/ 이렇게는 4번?
한대승(불의회상) / 2013/10/04 17:44:33 / 추천 0
네 4번 이요..
쿨교 / 2013/10/07 13:21:32 / 추천 0
 와 레이아웃으로 하니까 왠지 좀 느린감이 있는것 같았는데 

요걸로 바꿔봐야겠네요. 감사합니다.
슘님 / 2014/02/05 08:18:48 / 추천 0
 4번은 정말 좋네요. 
당장 하나 적용해봐야겠어요. 
좋은 정보 감사합니다. ^^