/**
  * @brief 입력받은 정보로 설치를 함
  **/
 function procInstall()
 {
     // 설치가 되어 있는지에 대한 체크
     if (Context::isInstalled()) {
         return new Object(-1, 'msg_already_installed');
     }
     // 설치시 임시로 최고관리자로 지정
     $logged_info->is_admin = 'Y';
     $_SESSION['logged_info'] = $logged_info;
     Context::set('logged_info', $logged_info);
     // DB와 관련된 변수를 받음
     $db_info = Context::gets('db_type', 'db_port', 'db_hostname', 'db_userid', 'db_password', 'db_database', 'db_table_prefix', 'time_zone', 'use_rewrite');
     if ($db_info->use_rewrite != 'Y') {
         $db_info->use_rewrite = 'N';
     }
     if (!$db_info->default_url) {
         $db_info->default_url = Context::getRequestUri();
     }
     $db_info->lang_type = Context::getLangType();
     // DB의 타입과 정보를 등록
     Context::setDBInfo($db_info);
     // DB Instance 생성
     $oDB =& DB::getInstance();
     // DB접속이 가능한지 체크
     $output = $oDB->getError();
     if (!$oDB->isConnected()) {
         return $oDB->getError();
     }
     // firebird는 설치시에 트랜젝션을 사용하지 않음
     if ($db_info->db_type != "firebird") {
         $oDB->begin();
     }
     // 모든 모듈의 설치
     $this->installDownloadedModule();
     if ($db_info->db_type != "firebird") {
         $oDB->commit();
     }
     // config 파일 생성
     if (!$this->makeConfigFile()) {
         return new Object(-1, 'msg_install_failed');
     }
     // 설치 완료 메세지 출력
     $this->setMessage('msg_install_completed');
 }
 /**
  * @brief Change settings
  **/
 function procInstallAdminSaveTimeZone()
 {
     $use_rewrite = Context::get('use_rewrite');
     if ($use_rewrite != 'Y') {
         $use_rewrite = 'N';
     }
     $use_sso = Context::get('use_sso');
     if ($use_sso != 'Y') {
         $use_sso = 'N';
     }
     $use_cdn = Context::get('use_cdn');
     if ($use_cdn != 'Y') {
         $use_cdn = 'N';
     }
     $time_zone = Context::get('time_zone');
     $qmail_compatibility = Context::get('qmail_compatibility');
     if ($qmail_compatibility != 'Y') {
         $qmail_compatibility = 'N';
     }
     $use_db_session = Context::get('use_db_session');
     if ($use_db_session != 'Y') {
         $use_db_session = 'N';
     }
     $use_ssl = Context::get('use_ssl');
     if (!$use_ssl) {
         $use_ssl = 'none';
     }
     $use_html5 = Context::get('use_html5');
     if (!$use_html5) {
         $use_html5 = 'N';
     }
     $http_port = Context::get('http_port');
     $https_port = Context::get('https_port');
     $use_mobile_view = Context::get('use_mobile_view');
     if ($use_mobile_view != 'Y') {
         $use_mobile_view = 'N';
     }
     $admin_ip_list = Context::get('admin_ip_list');
     $admin_ip_list = preg_replace("/[\r|\n|\r\n]+/", ",", $admin_ip_list);
     $admin_ip_list = preg_replace("/\\s+/", "", $admin_ip_list);
     if (preg_match('/(<\\?|<\\?php|\\?>)/xsm', $admin_ip_list)) {
         $admin_ip_list = '';
     }
     $db_info = Context::getDBInfo();
     $db_info->default_url = Context::get('default_url');
     if ($db_info->default_url && !preg_match('/^(http|https):\\/\\//i', $db_info->default_url)) {
         $db_info->default_url = 'http://' . $db_info->default_url;
     }
     $db_info->time_zone = $time_zone;
     $db_info->qmail_compatibility = $qmail_compatibility;
     $db_info->use_db_session = $use_db_session;
     $db_info->use_rewrite = $use_rewrite;
     $db_info->use_sso = $use_sso;
     $db_info->use_ssl = $use_ssl;
     $db_info->use_cdn = $use_cdn;
     $db_info->use_html5 = $use_html5;
     $db_info->use_mobile_view = $use_mobile_view;
     $db_info->admin_ip_list = $admin_ip_list;
     if ($http_port) {
         $db_info->http_port = (int) $http_port;
     } else {
         if ($db_info->http_port) {
             unset($db_info->http_port);
         }
     }
     if ($https_port) {
         $db_info->https_port = (int) $https_port;
     } else {
         if ($db_info->https_port) {
             unset($db_info->https_port);
         }
     }
     unset($db_info->lang_type);
     Context::setDBInfo($db_info);
     $oInstallController =& getController('install');
     $oInstallController->makeConfigFile();
     $site_args->site_srl = 0;
     $site_args->index_module_srl = Context::get('index_module_srl');
     $site_args->default_language = Context::get('change_lang_type');
     $site_args->domain = $db_info->default_url;
     $oModuleController =& getController('module');
     $oModuleController->updateSite($site_args);
     $this->setMessage('success_updated');
 }
 /**
  * @brief Install with received information
  */
 function procInstall()
 {
     // Check if it is already installed
     if (Context::isInstalled()) {
         return new Object(-1, 'msg_already_installed');
     }
     // Assign a temporary administrator when installing
     $logged_info = new stdClass();
     $logged_info->is_admin = 'Y';
     Context::set('logged_info', $logged_info);
     // check install config
     if (Context::get('install_config')) {
         $db_info = $this->_makeDbInfoByInstallConfig();
     } else {
         if (FileHandler::exists($this->db_tmp_config_file)) {
             include $this->db_tmp_config_file;
         }
         if (FileHandler::exists($this->etc_tmp_config_file)) {
             include $this->etc_tmp_config_file;
         }
     }
     // Set DB type and information
     Context::setDBInfo($db_info);
     // Create DB Instance
     $oDB =& DB::getInstance();
     // Check if available to connect to the DB
     if (!$oDB->isConnected()) {
         return $oDB->getError();
     }
     // Install all the modules
     try {
         $oDB->begin();
         $this->installDownloadedModule();
         $oDB->commit();
     } catch (Exception $e) {
         $oDB->rollback();
         return new Object(-1, $e->getMessage());
     }
     // Create a config file
     if (!$this->makeConfigFile()) {
         return new Object(-1, 'msg_install_failed');
     }
     // load script
     $scripts = FileHandler::readDir(_XE_PATH_ . 'modules/install/script', '/(\\.php)$/');
     if (count($scripts) > 0) {
         sort($scripts);
         foreach ($scripts as $script) {
             $script_path = FileHandler::getRealPath('./modules/install/script/');
             $output = (include $script_path . $script);
         }
     }
     // save selected lang info
     $oInstallAdminController = getAdminController('install');
     $oInstallAdminController->saveLangSelected(array(Context::getLangType()));
     // Display a message that installation is completed
     $this->setMessage('msg_install_completed');
     unset($_SESSION['use_rewrite']);
     if (!in_array(Context::getRequestMethod(), array('XMLRPC', 'JSON'))) {
         $returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('');
         header('location:' . $returnUrl);
         return new Object();
     }
 }
 /**
  * @brief 설정 변경
  **/
 function procInstallAdminSaveTimeZone()
 {
     $use_rewrite = Context::get('use_rewrite');
     if ($use_rewrite != 'Y') {
         $use_rewrite = 'N';
     }
     $use_optimizer = Context::get('use_optimizer');
     if ($use_optimizer != 'Y') {
         $use_optimizer = 'N';
     }
     $time_zone = Context::get('time_zone');
     $qmail_compatibility = Context::get('qmail_compatibility');
     if ($qmail_compatibility != 'Y') {
         $qmail_compatibility = 'N';
     }
     $use_db_session = Context::get('use_db_session');
     if ($use_db_session != 'Y') {
         $use_db_session = 'N';
     }
     $use_ssl = Context::get('use_ssl');
     if (!$use_ssl) {
         $use_ssl = 'none';
     }
     $http_port = Context::get('http_port');
     $https_port = Context::get('https_port');
     $db_info = Context::getDBInfo();
     $db_info->default_url = Context::get('default_url');
     if ($db_info->default_url && !preg_match('/^(http|https):\\/\\//i', $db_info->default_url)) {
         $db_info->default_url = 'http://' . $db_info->default_url;
     }
     $db_info->time_zone = $time_zone;
     $db_info->qmail_compatibility = $qmail_compatibility;
     $db_info->use_db_session = $use_db_session;
     $db_info->use_rewrite = $use_rewrite;
     $db_info->use_optimizer = $use_optimizer;
     $db_info->use_ssl = $use_ssl;
     if ($http_port) {
         $db_info->http_port = (int) $http_port;
     } else {
         if ($db_info->http_port) {
             unset($db_info->http_port);
         }
     }
     if ($https_port) {
         $db_info->https_port = (int) $https_port;
     } else {
         if ($db_info->https_port) {
             unset($db_info->https_port);
         }
     }
     unset($db_info->lang_type);
     Context::setDBInfo($db_info);
     $oInstallController =& getController('install');
     $oInstallController->makeConfigFile();
     $site_args->site_srl = 0;
     $site_args->index_module_srl = Context::get('index_module_srl');
     $site_args->default_language = Context::get('change_lang_type');
     $site_args->domain = $db_info->default_url;
     $oModuleController =& getController('module');
     $oModuleController->updateSite($site_args);
     $this->setMessage('success_updated');
 }
 function procInstallAdminConfig()
 {
     $use_mobile_view = Context::get('use_mobile_view');
     if ($use_mobile_view != 'Y') {
         $use_mobile_view = 'N';
     }
     $time_zone = Context::get('time_zone');
     $db_info = Context::getDBInfo();
     $db_info->use_mobile_view = $use_mobile_view;
     $db_info->time_zone = $time_zone;
     unset($db_info->lang_type);
     Context::setDBInfo($db_info);
     $oInstallController = getController('install');
     if (!$oInstallController->makeConfigFile()) {
         return new Object(-1, 'msg_invalid_request');
     }
     $site_args = new stdClass();
     $site_args->site_srl = 0;
     $site_args->index_module_srl = Context::get('index_module_srl');
     //
     $site_args->default_language = Context::get('change_lang_type');
     //
     $oModuleController = getController('module');
     $oModuleController->updateSite($site_args);
     //언어 선택
     $selected_lang = Context::get('selected_lang');
     $this->saveLangSelected($selected_lang);
     //save icon images
     $deleteFavicon = Context::get('is_delete_favicon');
     $deleteMobicon = Context::get('is_delete_mobicon');
     $this->updateIcon('favicon.ico', $deleteFavicon);
     $this->updateIcon('mobicon.png', $deleteMobicon);
     //모듈 설정 저장(썸네일, 풋터스크립트)
     $config = new stdClass();
     $config->thumbnail_type = Context::get('thumbnail_type');
     $config->htmlFooter = Context::get('htmlFooter');
     $config->siteTitle = Context::get('site_title');
     $this->setModulesConfig($config);
     $this->setRedirectUrl(Context::get('error_return_url'));
 }
Example #6
0
 /**
  * @brief Get the secret key for this site
  * @return bool
  */
 public static function getSecretKey()
 {
     // If the secret key does not exist, the config file needs to be updated
     $db_info = Context::getDbInfo();
     if (!isset($db_info->secret_key)) {
         $db_info->secret_key = self::createSecureSalt(48, 'alnum');
         Context::setDBInfo($db_info);
         getController('install')->makeConfigFile();
     }
     return $db_info->secret_key;
 }