diff --git a/classes/db/DBMysql.class.php b/classes/db/DBMysql.class.php
index 72c151366..9d338e8ed 100644
--- a/classes/db/DBMysql.class.php
+++ b/classes/db/DBMysql.class.php
@@ -2,7 +2,8 @@
/**
* @class DBMysql
* @author zero (zero@nzeo.com)
- * @brief mysql handling class
+ * @brief MySQL DBMS를 이용하기 위한 class
+ * mysql handling class
**/
class DBMysql extends DB {
diff --git a/classes/display/DisplayHandler.class.php b/classes/display/DisplayHandler.class.php
index 22080644e..bb4825b1b 100644
--- a/classes/display/DisplayHandler.class.php
+++ b/classes/display/DisplayHandler.class.php
@@ -1,154 +1,169 @@
- * @desc : display 객체
- * Request Method에 따라서 html or xml 출력방법을 결정한다
- * xml : oModule의 variables를 simple xml 로 출력
- * html : oModule의 template/variables로 html을 만들고 contents_html로 처리
- * plugin이나 layout의 html과 연동하여 출력
- *
- **/
-
- class DisplayHandler {
-
- // 출력하는 컨텐츠의 사이즈
- var $content_size = 0;
-
- // public void printContent() /*{{{*/
- function printContent($oModule) {
- // header 출력
- $this->_printHeader();
-
- // request method에 따른 처리
- $content = $this->getContent($oModule);
-
- // 요청방식에 따라 출력을 별도로
- if(Context::getRequestMethod()!="XMLRPC") {
- Context::set('content', $content);
-
- // content 래핑 (common/tpl/default.html)
- require_once("./classes/template/TemplateHandler.class.php");
- $oTemplate = new TemplateHandler();
- $output = $oTemplate->compile($oModule->layout_path, $oModule->layout_tpl);
- } else {
- $output = $content;
- }
-
- $this->content_size = strlen($output);
- print $output;
-
- // 디버깅 데이터 출력
- $this->_debugOutput();
- }/*}}}*/
-
- // public void getContent() /*{{{*/
- function getContent($oModule) {
- // request method에 따른 처리
- return $this->_toDoc($oModule);
- }/*}}}*/
-
/**
- * 문서 출력
- **/
- // private string _toDoc($oModule) /*{{{*/
- function _toDoc($oModule) {
- if(Context::getRequestMethod() == 'XMLRPC') $content = $this->_toXmlDoc($oModule);
- else $content = $this->_toHTMLDoc($oModule);
- return $content;
- }/*}}}*/
+ * @class DisplayHandler
+ * @author zero (zero@nzeo.com)
+ * @brief 데이터 출력을 위한 class (XML/HTML 데이터를 구분하여 출력)
+ *
+ * Request Method에 따라서 html or xml 출력방법을 결정한다\n
+ * xml : oModule의 variables를 simple xml 로 출력\n
+ * html : oModule의 template/variables로 html을 만들고 contents_html로 처리\n
+ * plugin이나 layout의 html과 연동하여 출력\n
+ **/
- // private string _toXmlDoc($oModule) /*{{{*/
- function _toXmlDoc($oModule) {
- $xmlDoc = "\n";
- $xmlDoc .= sprintf("%s\n",$oModule->getError());
- $xmlDoc .= sprintf("%s\n",$oModule->getMessage());
+ class DisplayHandler {
- $variables = $oModule->getVariables();
- if(count($variables)) {
- foreach($variables as $key => $val) {
- if(is_string($val)) $val = '';
- $xmlDoc .= "<{$key}>{$val}{$key}>\n";
- }
- }
+ var $content_size = 0; ///< 출력하는 컨텐츠의 사이즈
- $xmlDoc .= "";
+ /**
+ * @brief 모듈객체를 받아서 content 출력
+ **/
+ function printContent($oModule) {
+ // header 출력
+ $this->_printHeader();
- return $xmlDoc;
- }/*}}}*/
+ // request method에 따른 처리
+ $content = $this->getContent($oModule);
- // private string _toHTMLDoc($oModule) /*{{{*/
- function _toHTMLDoc($oModule) {
- // template handler 객체 생성
- require_once("./classes/template/TemplateHandler.class.php");
- $oTemplate = new TemplateHandler();
+ // 요청방식에 따라 출력을 별도로
+ if(Context::getRequestMethod()!="XMLRPC") {
+ Context::set('content', $content);
- // module tpl 변환
- $template_path = $oModule->getTemplatePath();
- $tpl_file = $oModule->getTemplateFile();
- return $oTemplate->compile($template_path, $tpl_file);
- }/*}}}*/
+ // content 래핑 (common/tpl/default.html)
+ require_once("./classes/template/TemplateHandler.class.php");
- // public int getContentSize() /*{{{*/
- function getContentSize() {
- return $this->content_size;
- }/*}}}*/
-
- // private void _debugOutput()/*{{{*/
- // __DEBUG__가 true일 경우 각 부분의 실행시간등을 debugPrint 함수를 이용해서 출력
- // 개발시나 테스트시에 config/config.inc.php의 __DEBUG__를 true로 세팅하고
- // tail -f ./files/_debug_message.php로 하여 console로 확인하면 편리함
- function _debugOutput() {
- if(!__DEBUG__) return;
- $end = getMicroTime();
+ $oTemplate = new TemplateHandler();
+ $output = $oTemplate->compile($oModule->layout_path, $oModule->layout_tpl);
+ } else {
+ $output = $content;
+ }
- $buff = "\n\n** Debug at ".date('Y-m-d H:i:s')." ************************************************************\n";
- $buff .= "\n- Request/ Response info\n";
- $buff .= sprintf("\tRequest URI \t\t\t: %s:%s%s%s%s\n", $_SERVER['SERVER_NAME'], $_SERVER['SERVER_PORT'], $_SERVER['PHP_SELF'], $_SERVER['QUERY_STRING']?'?':'', $_SERVER['QUERY_STRING']);
- $buff .= sprintf("\tRequest method \t\t\t: %s\n", $_SERVER['REQUEST_METHOD']);
- $buff .= sprintf("\tResponse contents size\t\t: %d byte\n", $this->getContentSize());
- if($GLOBALS['__db_queries__']) {
- $buff .= "\n- DB Queries\n";
- $buff .= $GLOBALS['__db_queries__'];
- }
- $buff .= "\n- Elapsed time\n";
+ $this->content_size = strlen($output);
+ print $output;
- if($GLOBALS['__db_elapsed_time__']) $buff .= sprintf("\tDB queries elapsed time\t\t: %0.5f sec\n", $GLOBALS['__db_elapsed_time__']);
- $buff .= sprintf("\tclass file load elapsed time \t: %0.5f sec\n", __RequireClassEndTime__-__RequireClassStartTime__);
- $buff .= sprintf("\tTemplate compile elapsed time\t: %0.5f sec\n", $GLOBALS['__template_elapsed__']);
- $buff .= sprintf("\tPHP elapsed time \t\t: %0.5f sec\n", $end-__StartTime__-$GLOBALS['__template_elapsed__']-$GLOBALS['__db_elapsed_time__']-(__RequireClassEndTime__-__RequireClassStartTime__));
- $buff .= sprintf("\tTotal elapsed time \t\t: %0.5f sec", $end-__StartTime__);
+ // 디버깅 데이터 출력
+ $this->_debugOutput();
+ }
- debugPrint($buff, false);
- }/*}}}*/
+ /**
+ * @brief 모듈 객체의 content return
+ **/
+ function getContent($oModule) {
+ return $this->_toDoc($oModule);
+ }
- /**
- * 헤더 출력
- ***/
- // private void _printHeader()/*{{{*/
- function _printHeader() {
- if(Context::getRequestMethod() == 'XMLRPC') return $this->_printXMLHeader();
- else return $this->_printHTMLHeader();
- }/*}}}*/
+ /**
+ * @brief 모듈 객체의 content return
+ **/
+ function _toDoc($oModule) {
+ if(Context::getRequestMethod() == 'XMLRPC') $content = $this->_toXmlDoc($oModule);
+ else $content = $this->_toHTMLDoc($oModule);
+ return $content;
+ }
- // private void _printXMLHeader()/*{{{*/
- function _printXMLHeader() {
- header("Content-Type: text/xml; charset=UTF-8");
- header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
- header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
- header("Cache-Control: no-store, no-cache, must-revalidate");
- header("Cache-Control: post-check=0, pre-check=0", false);
- header("Pragma: no-cache");
- }/*}}}*/
+ /**
+ * @brief RequestMethod가 XML이면 XML 데이터로 컨텐츠 생성
+ **/
+ function _toXmlDoc($oModule) {
+ $xmlDoc = "\n";
+ $xmlDoc .= sprintf("%s\n",$oModule->getError());
+ $xmlDoc .= sprintf("%s\n",$oModule->getMessage());
- // private void _printHTMLHeader()/*{{{*/
- function _printHTMLHeader() {
- header("Content-Type: text/html; charset=UTF-8");
- header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
- header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
- header("Cache-Control: no-store, no-cache, must-revalidate");
- header("Cache-Control: post-check=0, pre-check=0", false);
- header("Pragma: no-cache");
- }/*}}}*/
- }
+ $variables = $oModule->getVariables();
+
+ if(count($variables)) {
+ foreach($variables as $key => $val) {
+ if(is_string($val)) $val = '';
+ $xmlDoc .= "<{$key}>{$val}{$key}>\n";
+ }
+ }
+
+ $xmlDoc .= "";
+
+ return $xmlDoc;
+ }
+
+ /**
+ * @brief RequestMethod가 XML이 아니면 html 컨텐츠 생성
+ **/
+ function _toHTMLDoc($oModule) {
+ // template handler 객체 생성
+ require_once("./classes/template/TemplateHandler.class.php");
+ $oTemplate = new TemplateHandler();
+
+ // module tpl 변환
+ $template_path = $oModule->getTemplatePath();
+ $tpl_file = $oModule->getTemplateFile();
+ return $oTemplate->compile($template_path, $tpl_file);
+ }
+
+ /**
+ * @brief content size return
+ **/
+ function getContentSize() {
+ return $this->content_size;
+ }
+
+ /**
+ * @brief 디버그 모드일 경우 디버기 메세지 출력
+ *
+ * __DEBUG__가 true일 경우 각 부분의 실행시간등을 debugPrint 함수를 이용해서 출력\n
+ * 개발시나 테스트시에 config/config.inc.php의 __DEBUG__를 true로 세팅하고\n
+ * tail -f ./files/_debug_message.php로 하여 console로 확인하면 편리함\n
+ **/
+ function _debugOutput() {
+ if(!__DEBUG__) return;
+ $end = getMicroTime();
+
+ $buff = "\n\n** Debug at ".date('Y-m-d H:i:s')." ************************************************************\n";
+ $buff .= "\n- Request/ Response info\n";
+ $buff .= sprintf("\tRequest URI \t\t\t: %s:%s%s%s%s\n", $_SERVER['SERVER_NAME'], $_SERVER['SERVER_PORT'], $_SERVER['PHP_SELF'], $_SERVER['QUERY_STRING']?'?':'', $_SERVER['QUERY_STRING']);
+ $buff .= sprintf("\tRequest method \t\t\t: %s\n", $_SERVER['REQUEST_METHOD']);
+ $buff .= sprintf("\tResponse contents size\t\t: %d byte\n", $this->getContentSize());
+ if($GLOBALS['__db_queries__']) {
+ $buff .= "\n- DB Queries\n";
+ $buff .= $GLOBALS['__db_queries__'];
+ }
+ $buff .= "\n- Elapsed time\n";
+
+ if($GLOBALS['__db_elapsed_time__']) $buff .= sprintf("\tDB queries elapsed time\t\t: %0.5f sec\n", $GLOBALS['__db_elapsed_time__']);
+ $buff .= sprintf("\tclass file load elapsed time \t: %0.5f sec\n", __RequireClassEndTime__-__RequireClassStartTime__);
+ $buff .= sprintf("\tTemplate compile elapsed time\t: %0.5f sec\n", $GLOBALS['__template_elapsed__']);
+ $buff .= sprintf("\tPHP elapsed time \t\t: %0.5f sec\n", $end-__StartTime__-$GLOBALS['__template_elapsed__']-$GLOBALS['__db_elapsed_time__']-(__RequireClassEndTime__-__RequireClassStartTime__));
+ $buff .= sprintf("\tTotal elapsed time \t\t: %0.5f sec", $end-__StartTime__);
+
+ debugPrint($buff, false);
+ }
+
+ /**
+ * @brief RequestMethod에 맞춰 헤더 출력
+ ***/
+ function _printHeader() {
+ if(Context::getRequestMethod() == 'XMLRPC') return $this->_printXMLHeader();
+ else return $this->_printHTMLHeader();
+ }
+
+ /**
+ * @brief xml header 출력 (utf8 고정)
+ **/
+ function _printXMLHeader() {
+ header("Content-Type: text/xml; charset=UTF-8");
+ header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
+ header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
+ header("Cache-Control: no-store, no-cache, must-revalidate");
+ header("Cache-Control: post-check=0, pre-check=0", false);
+ header("Pragma: no-cache");
+ }
+
+ /**
+ * @brief html header 출력 (utf8 고정)
+ **/
+ function _printHTMLHeader() {
+ header("Content-Type: text/html; charset=UTF-8");
+ header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
+ header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
+ header("Cache-Control: no-store, no-cache, must-revalidate");
+ header("Cache-Control: post-check=0, pre-check=0", false);
+ header("Pragma: no-cache");
+ }
+ }
?>