안녕하세요 도움을 많이 받아 사이트하나 만들었습니다.
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. 쉽죠? 끝입니다.
많이들 적용 및 응용해 보시기 바랍니다.
더 좋은 방법 있으시면 코멘트 부탁드립니다.
좋은 Tip을 말씀해 주셔서 감사합니다 ㅎㅎ