gz_enabled = true;
// request method에 따른 컨텐츠 결과물 추출
if(Context::getRequestMethod() == 'XMLRPC') $output = $this->_toXmlDoc($oModule);
else if(Context::getRequestMethod() == 'JSON') $output = $this->_toJSON($oModule);
else $output = $this->_toHTMLDoc($oModule);
// HTML 출력 요청일 경우 레이아웃 컴파일과 더블어 완성된 코드를 제공
if(Context::getResponseMethod()=="HTML") {
// 관리자 모드일 경우 #xeAdmin id를 가지는 div 추가
if(Context::get('module')!='admin' && strpos(Context::get('act'),'Admin')>0) $output = '
'.$output.'
';
// 내용을 content라는 변수로 설정 (layout에서 {$output}에서 대체됨)
Context::set('content', $output);
// 레이아웃을 컴파일
$oTemplate = &TemplateHandler::getInstance();
// layout이라는 변수가 none으로 설정되면 기본 레이아웃으로 변경
if(Context::get('layout') != 'none') {
if(__DEBUG__==3) $start = getMicroTime();
$layout_path = $oModule->getLayoutPath();
$layout_file = $oModule->getLayoutFile();
$edited_layout_file = $oModule->getEditedLayoutFile();
// 현재 요청된 레이아웃 정보를 구함
$oLayoutModel = &getModel('layout');
$current_module_info = Context::get('current_module_info');
$layout_srl = $current_module_info->layout_srl;
// 레이아웃과 연결되어 있으면 레이아웃 컴파일
if($layout_srl > 0){
$layout_info = Context::get('layout_info');
// faceoff 레이아웃일 경우 별도 처리
if($layout_info && $layout_info->type == 'faceoff') {
$oLayoutModel->doActivateFaceOff($layout_info);
Context::set('layout_info', $layout_info);
}
// 관리자 레이아웃 수정화면에서 변경된 CSS가 있는지 조사
$edited_layout_css = $oLayoutModel->getUserLayoutCss($layout_srl);
if(file_exists($edited_layout_css)) Context::addCSSFile($edited_layout_css,true,'all','',100);
}
if(!$layout_path) $layout_path = "./common/tpl";
if(!$layout_file) $layout_file = "default_layout";
$output = $oTemplate->compile($layout_path, $layout_file, $edited_layout_file);
if(__DEBUG__==3) $GLOBALS['__layout_compile_elapsed__'] = getMicroTime()-$start;
}
}
// 출력하기 전에 trigger 호출 (before)
ModuleHandler::triggerCall('display', 'before', $output);
// 애드온 실행
$called_position = 'before_display_content';
$oAddonController = &getController('addon');
$addon_file = $oAddonController->getCacheFilePath();
if(file_exists($addon_file)) @include($addon_file);
// HTML 출력일 경우 최종적으로 common layout을 씌워서 출력
if(Context::getResponseMethod()=="HTML") {
if(__DEBUG__==3) $start = getMicroTime();
// body 내의 를 header로 이동
$output = preg_replace_callback('!