기존의 각 모듈 생성시 기본 설정하는 것을 없애고 시작 모듈 개념을 메인 사이트에서도 적용.

메인/ 가상 사이트 모두 관리자 페이지에서 시작 모듈을 설정하는 구조로 변경


git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6152 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
zero 2009-04-20 07:49:03 +00:00
parent bd3e3241ec
commit 714d618523
45 changed files with 169 additions and 169 deletions

View file

@ -48,6 +48,11 @@
if($oDB->isColumnExists("documents","extra_vars".$i)) return true;
}
// sites 테이블에 기본 사이트 정보 입력
$args->site_srl = 0;
$output = $oDB->executeQuery('module.getSite', $args);
if(!$output->data || !$output->data->index_module_srl) return true;
return false;
}
@ -245,6 +250,30 @@
$oDB->dropColumn('documents','extra_vars'.$i);
}
// sites 테이블에 기본 사이트 정보 입력
$args->site_srl = 0;
$output = $oDB->executeQuery('module.getSite', $args);
if(!$output->data || !$output->data->index_module_srl) {
// 기본 mid, 언어 구함
$mid_output = $oDB->executeQuery('module.getDefaultMidInfo', $args);
$db_info = Context::getDBInfo();
$domain = Context::getDefaultUrl();
$url_info = parse_url($domain);
$domain = $url_info['host'].( (!empty($url_info['port'])&&$url_info['port']!=80)?':'.$url_info['port']:'').$url_info['path'];
$site_args->site_srl = 0;
$site_args->index_module_srl = $mid_output->data->module_srl;
$site_args->domain = $domain;
$site_args->default_language = $db_info->lang_type;
if($output->data && !$output->data->index_module_srl) {
$output = executeQuery('module.updateSite', $site_args);
} else {
$output = executeQuery('module.insertSite', $site_args);
if(!$output->toBool()) return $output;
}
}
return new Object(0, 'success_updated');
}

View file

@ -185,13 +185,6 @@
$oDB = &DB::getInstance();
$oDB->begin();
// is_default 의 값에 따라서 처리
if($args->site_srl!=0) $args->is_default = 'N';
else {
if($args->is_default!='Y') $args->is_default = 'N';
else $this->clearDefaultModule();
}
// 선택된 스킨정보에서 colorset을 구함
$module_path = ModuleHandler::getModulePath($args->module);
$skin_info = $oModuleModel->loadSkinInfo($module_path, $args->skin);
@ -240,13 +233,6 @@
return new Object(-1, 'msg_module_name_exists');
}
// is_default 의 값에 따라서 처리
if($args->site_srl!=0) $args->is_default = 'N';
else {
if($args->is_default!='Y') $args->is_default = 'N';
else $this->clearDefaultModule();
}
$output = executeQuery('module.updateModule', $args);
if(!$output->toBool()) {
$oDB->rollback();

View file

@ -93,16 +93,35 @@
}
}
// 가상 사이트가 아닐 경우 기본 사이트 정보를 구함
if(!$output->data) {
$args->site_srl = 0;
// site_srl이 modules에 생성되지 않은 이전 버전 사용자의 경우 관리자 페이지에 접속하지를 못하는 오류 수정
// Parker Falcon 님이 알려주심
$output = executeQuery('module.getDefaultMidInfo', $args);
if(!$output->toBool()) {
$output = executeQuery('module.getSiteInfo', $args);
// 기본 사이트 정보가 없으면 관련된 정보를 갱신
if(!$output->data) {
// sites 테이블이 없을 경우 생성
$oDB = &DB::getInstance();
$oDB->dropIndex("modules","unique_mid",true);
$oDB->addColumn('modules','site_srl','number',11,0,true);
$oDB->addIndex("modules","idx_site_mid", array("site_srl","mid"),true);
if(!$oDB->isTableExists('sites')) $oDB->createTableByXmlFile(_XE_PATH_.'modules/module/schemas/sites.xml');
if(!$oDB->isTableExists('sites')) return;
// 기본 mid, 언어 구함
$mid_output = $oDB->executeQuery('module.getDefaultMidInfo', $args);
$db_info = Context::getDBInfo();
$domain = Context::getDefaultUrl();
$url_info = parse_url($domain);
$domain = $url_info['host'].( (!empty($url_info['port'])&&$url_info['port']!=80)?':'.$url_info['port']:'').$url_info['path'];
$site_args->site_srl = 0;
$site_args->index_module_srl = $mid_output->data->module_srl;
$site_args->domain = $domain;
$site_args->default_language = $db_info->lang_type;
if($output->data && !$output->data->index_module_srl) {
$output = executeQuery('module.updateSite', $site_args);
} else {
$output = executeQuery('module.insertSite', $site_args);
if(!$output->toBool()) return $output;
}
$output = executeQuery('module.getSiteInfo', $args);
}
}

View file

@ -0,0 +1,11 @@
<query id="getSite" action="select">
<tables>
<table name="sites" />
</tables>
<columns>
<column name="*" />
</columns>
<conditions>
<condition operation="equal" column="site_srl" var="site_srl" notnull="notnull" />
</conditions>
</query>