태그 사용 templateHandler에서 WidgetHandler::execute()를 실행하는 코드로 대체하게 된다 * * $include_info가 true일 경우 css 코드와 위젯핸들링을 위한 코드까지 포함하도록 한다 **/ function execute($widget, $args, $include_info = false) { // 디버그를 위한 위젯 실행 시간 저장 if(__DEBUG__==3) $start = getMicroTime(); // widget중 widgetContent 는 page 모듈에 종속적인 위젯으로 직접 page.admin.controller.php를 호출하여 처리를 해야 함 (차후 정리 필요) if($widget == 'widgetContent') { $style = $args->style; $body = base64_decode($args->body); $widget_margin_left = $args->widget_margin_left; $widget_margin_right = $args->widget_margin_right; $widget_margin_top = $args->widget_margin_top; $widget_margin_bottom = $args->widget_margin_bottom; if($include_info) { $oPageAdminController = &getAdminController('page'); $tpl = $oPageAdminController->transEditorContent($body, $args); } else { $tpl = sprintf('
', $style, $widget_margin_top, $widget_margin_right, $widget_margin_bottom, $widget_margin_left, $body); } return $tpl; } // 설치된 위젯들에 대한 처리 if(!is_dir(sprintf('./widgets/%s/',$widget))) return; $cache_path = './files/cache/widget_cache/'; if(!is_dir($cache_path)) FileHandler::makeDir($cache_path); // $widget의 객체를 받음 $oWidget = WidgetHandler::getObject($widget); if(!$oWidget) return; // 위젯 실행 $html = $oWidget->proc($args); // 위젯 output을 생성하기 위한 변수 설정 $margin_top = $args->widget_margin_top; $margin_bottom = $args->widget_margin_bottom; $margin_left = $args->widget_margin_left; $margin_right = $args->widget_margin_right; $inner_style = sprintf("margin:%dpx %dpx %dpx %dpx !important; padding:none !important;", $margin_top, $margin_right, $margin_bottom, $margin_left); /** * 출력을 위해 위젯 내용을 div로 꾸밈 **/ // 서비스에 사용하기 위해 위젯 정보를 포함하지 않을 경우 if(!$include_info) { $output = sprintf('', $args->style, $inner_style, $html); // 위젯 sequence가 있고 위젯의 캐싱을 지정하였고 위젯정보를 담지 않도록 하였을 경우 캐시 파일을 저장 if($args->widget_sequence && $args->widget_cache) WidgetHandler::writeCache($args->widget_sequence, $output); // 에디팅등에 사용하기 위한 목적으로 위젯 정보를 포함할 경우 } else { // args 정리 $attribute = array(); if($args) { foreach($args as $key => $val) { if($key == 'class' || $key == 'style') continue; if(strpos($val,'|@|')>0) { $val = str_replace('|@|',',',$val); } $attribute[] = sprintf('%s="%s"', $key, str_replace('"','\"',$val)); } } // 결과물에 있는 css Meta 목록을 구해와서 해당 css를 아예 읽어버림 require_once("./classes/optimizer/Optimizer.class.php"); $oOptimizer = new Optimizer(); preg_match_all('!<\!\-\-Meta:([^\-]*?)\-\->!is', $html, $matches); $css_header = null; for($i=0;$i