강좌게시판

제목 Hook을 이용하여 웹과 모바일웹 만들기 1편
글쓴이 변종원(웅파) 작성시각 2011/03/30 18:40:08
댓글 : 5 추천 : 0 스크랩 : 1 조회수 : 33904   RSS
1.7.3 기준으로 작성되었습니다.

컨트롤러와 모델을 같이 쓰면서 웹브라우저로 접속했는지 모바일브라우저로 접속했는지에 따라
웹UI와 모바일UI를 보여주도록 구성한 것입니다.


1. application/config/config.php 수정 : 기본값은 FALSE 입니다.
/*
|--------------------------------------------------------------------------
| Enable/Disable System Hooks
|--------------------------------------------------------------------------
|
| If you would like to use the "hooks" feature you must enable it by
| setting this variable to TRUE (boolean).  See the user guide for details.
|
*/
$config['enable_hooks'] = TRUE;
2. application/config/hooks.php 입력
<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/*
| -------------------------------------------------------------------------
| Hooks
| -------------------------------------------------------------------------
| This file lets you define "hooks" to extend CI without hacking the core
| files.  Please see the user guide for info:
|
|	http://codeigniter.com/user_guide/general/hooks.html
|
*/

$hook['post_controller_constructor'][] = array(
											'function' => 'b_check',
											'filename' => 'browser_check.php',
											'filepath' => 'hooks'
											);

/* End of file hooks.php */
/* Location: ./system/application/config/hooks.php */
3. application/hooks 디렉토리(위 선언파일에서 filepath 명시한대로)에 browser_check.php 라는 파일을 만듭니다.
<?php
//browser_check.php
function b_check() {
	if ( preg_match('/(iPhone|Android|iPod|iPad|BlackBerry|IEMobile|HTC|Server_KO_SKT|SonyEricssonX1|SKT)/',$_SERVER['HTTP_USER_AGENT']) )
	{
		define('BROWSER_TYPE', 'M');
	}
	else
	{
		define('BROWSER_TYPE', 'W');
	}
}

?>
function 명은 hooks.php 파일에서 명시한대로 b_check 로 합니다.

이제 BROWSER_TYPE 이라는 상수의 값에 따라 컨트롤러에서 view를 제어해줍니다.



1편 끝.....




퍼가실 때는 출처 명기 바랍니다.
 다음글 Hook을 이용하여 웹과 모바일웹 만들기 2편 (11)
 이전글 [양승현]CI coding style guide 번역 (8)

댓글

kirrie / 2011/05/19 16:02:39 / 추천 0
User Agent Library의 is_mobile 함수를 쓰면 더 좋겠지요. ㅎㅎ.
변종원(웅파) / 2011/05/19 17:50:47 / 추천 0
 kirrie님 살아계셨군요?
거짓없는삶 / 2012/08/14 13:01:01 / 추천 0

좋은정보 잘보고 갑니다~

꾸숑 / 2013/01/18 20:37:51 / 추천 0
웅파님!

봤습니다.

모바일과 pc를 분리하여 서비스 할수 있겠군요...

갈수록 공부할게 늘어만 가는군요^^

감사합니다.
beop / 2013/12/12 09:27:35 / 추천 0
감사합니다~