From f0621b76dc6915b0445fc854bd3d3d9b46767de6 Mon Sep 17 00:00:00 2001 From: ngleader Date: Mon, 21 Dec 2009 08:47:45 +0000 Subject: [PATCH] =?UTF-8?q?install=EC=8B=9C=20=EC=82=AC=EC=9A=A9=EC=9E=90?= =?UTF-8?q?=20=EC=8A=A4=ED=81=AC=EB=A6=BD=ED=8A=B8=20=EC=B6=94=EA=B0=80?= =?UTF-8?q?=EA=B0=80=EB=8A=A5=ED=95=98=EB=8F=84=EB=A1=9D=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://xe-core.googlecode.com/svn/sandbox@7062 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/install/install.controller.php | 42 +++++++++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) diff --git a/modules/install/install.controller.php b/modules/install/install.controller.php index 022c3f233..df0b3488b 100644 --- a/modules/install/install.controller.php +++ b/modules/install/install.controller.php @@ -7,7 +7,6 @@ class installController extends install { - /** * @brief 초기화 **/ @@ -57,6 +56,15 @@ // config 파일 생성 if(!$this->makeConfigFile()) return new Object(-1, 'msg_install_failed'); + // load script + $scripts = FileHandler::readDir('./modules/install/script','/(\.php)$/'); + if(count($scripts)>0){ + sort($scripts); + foreach($scripts as $script){ + $output = include(FileHandler::getRealPath('./modules/install/script/'.$script)); + } + } + // 설치 완료 메세지 출력 $this->setMessage('msg_install_completed'); } @@ -314,5 +322,37 @@ if(@file_exists($config_file)) return true; return false; } + + function installByConfig($install_config_file){ + include $install_config_file; + if(!is_array($auto_config)) return false; + + $auto_config['module'] = 'install'; + $auto_config['act'] = 'procInstall'; + + $fstr = "<%s>\r\n"; + $fheader = "POST %s HTTP/1.1\r\nHost: %s\r\nContent-Type: application/xml\r\nContent-Length: %s\r\n\r\n%s\r\n"; + $body = "\r\n\r\n\r\n"; + foreach($auto_config as $k => $v){ + if(!in_array($k,array('host','port','path'))) $body .= sprintf($fstr,$k,$v,$k); + } + $body .= "\r\n"; + + $header = sprintf($fheader,$auto_config['path'],$auto_config['host'],strlen($body),$body); + $fp = @fsockopen($auto_config['host'], $auto_config['port'], $errno, $errstr, 5); + if($fp){ + fputs($fp, $header); + while(!feof($fp)) { + $line = trim(fgets($fp, 4096)); + if(preg_match("/^/i",$line)){ + fclose($fp); + return false; + } + } + fclose($fp); + } + return true; + + } } ?>