[PHP/CI] Codeigniter에서 마스터 페이지 만들고 사용하기

2014-05-22 13:03:25에 작성됨 | PHP, MySQL, 프로그래밍

마스터 페이지에 관한 개념을 혹시 모른다면, 마스터 페이지는 http://terms.naver.com/entry.nhn?cid=2955&docId=1618297&mobile&categoryId=2955 여기에 쉽게 설명 되어 있으니 참고하고, MS 오피스 사용하는 사람이라면 파워포인트에서 ‘마스터 슬라이드’라는 기능이 있는데, 슬라이드의 틀을 만들어 디자인 요소를 모든 슬라이드에 동일하게 적용하는 것이 있다. 여기서 말하는 마스터 페이지도 그런 개념이다.

ASP.NET(웹폼, MVC 둘 다)의 경우 아예 마스터 페이지를 파일로 만들어내고 프로젝트에서 지정하면 바로 사용이 가능하지만 PHP의 CodeIgniter의 경우는 기본적으로 지원 되지 않는 기능이다. 따라서 라이브러리를 사용해야 한다.

먼저 masterpage.php를 다운받고 application의 Libraries에 넣어준다.

그 다음 사용할 컨트롤러의 생성자에 라이브러리를 로드시킨다.

public function __construct ( ) {
parent::__construct ( );
$this->load->library ( ‘MasterPage’ );
}

마스터 페이지용 뷰를 만든다. 이때, 프로그램으로 내용등을 넣을 부분을 <mp:~~ /> 형태의 테그로 넣어준다. 예 : <mp:content />

주의할 점은 <mp:content /> 에서 파란색 테그 부분은 반드시 소문자여야 하며, 빨간색 테그 닫힘 부분은 반드시 파란색 테그에서 공백이 한 칸 있어야 한다는 것이다.(물론 이게 불편하면 라이브러리 고쳐서 본인 입맛대로 바꿀 수 있다.)

그리고 컨트롤러의 페이지 호출 부분에

$this->load->view(‘내용 페이지 뷰’);

대신에 다음과 같이 넣어준다.

$this->masterpage->setMasterPage ( ‘마스터 페이지 뷰’ );
$this->masterpage->addContentPage ( ‘내용 페이지 뷰’, ‘테그’ );
$this->masterpage->show ( );

위에서 테그는 당연히 앞에서 <mp:~~ /> 형태로 만들었던 그 테그를 넣어주면 된다.

다운로드 : MasterPage

Leave a Reply

Your email address will not be published. Required fields are marked *