TIP게시판

제목 hook 훅을 이용하여 페이지 로딩 이미지 적용하기
글쓴이 핵잠함장 작성시각 2011/03/04 21:43:36
댓글 : 2 추천 : 1 스크랩 : 0 조회수 : 16759   RSS

안녕하세요 도움을 많이 받아 사이트하나 만들었습니다.

codeigniter 에도 hook(훅)이 있더군요.

훅을 이용하여 페이지 로딩시 로딩 이미지를 적용하는 것을 만들어 적용해봤습니다.


실제로 적용한 사이트 입니다.

http://www.wincert.com/   (운영중인 서비스 사이트라 사이트에 맞지않으면 관리자님 삭제해주세요.)


적용 방법

1.config.php 에 유심히 보시면

/*
|--------------------------------------------------------------------------
| 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;  //FALSE //TRUE
//기본 값은 FALSE로 적용되어 있습니다.  훅을 이용하기 위해서는 TRUE 로 변경


2. hooks.php 에 이용할 훅을 등록해야 합니다.

/*
| -------------------------------------------------------------------------
| 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'][] = array(
               'class'    => 'ClassName', ----> 클래스명
               'function' => 'FunctionName',  --->함수명
               'filename' => 'FileName',  --->파일명 hooks 디렉토리에 있는 파일명
               'filepath' => 'FilePath'  ---> hooks 디렉토리명
);
$hook['post_system'][] = array(
               'class'    => 'ClassName',
               'function' => 'FunctionName',
               'filename' => 'FileName',
               'filepath' => 'FilePath' 
);

//hook(훅) 배열에 있는 인덱스 값은 선언한 훅을 언제 실행 할 것을지를 정의해 주는 겁니다.
//종류는 메뉴얼에 있습니다. 참조해주세요.


3. 훅 클래스 생성

$hook['post_controller'] 이 실행될 훅파일
class BeginLoading
{

 function doBeginLoading()
 { 

  echo "<div id=\"beginloading\" style=\"position:absolute; left:40%; top:40%; width:224px; height:24px; z-index:1; background-color: #ffffff; layer-background-color: #ffffff; border: 1px none #999999; visibility: show;\" >Loading Message </div>";

 }
}


$hook['post_system'][]  이 실행될 훅 파익

class EndLoading
{

 function doEndLoading()
 {
 
  //global $OUT;
  //$CI =& get_instance();
  echo "<script language=\"JavaScript\" type=\"text/JavaScript\">document.getElementById('beginloading').style.visibility = \"hidden\";</script>";
 }
}


4. 쉽죠? 끝입니다.

많이들 적용 및 응용해 보시기 바랍니다.

더 좋은 방법 있으시면 코멘트 부탁드립니다.




 

태그 훅,hooks,hook,loading,page loading,page
 다음글 hook을 이용하여 IE6 접근 막기 (6)
 이전글 facebook이랑 ci 연동하기

댓글

변종원(웅파) / 2011/03/06 13:10:46 / 추천 0
Hook을 이용하니 간단하게 처리가 되네요. 포럼에 적용해봐야겠네요. 감사합니다.
무명의시인2 / 2011/03/10 14:04:50 / 추천 0

좋은 Tip을 말씀해 주셔서 감사합니다 ㅎㅎ