css 및 js 호출순서 조정기능 추가

git-svn-id: http://xe-core.googlecode.com/svn/sandbox@5785 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
ngleader 2009-03-06 05:33:56 +00:00
parent 4f380d9c48
commit 61851f1dfe
2149 changed files with 109090 additions and 18689 deletions

View file

@ -13,10 +13,6 @@
function moduleInstall() {
// action forward에 등록 (관리자 모드에서 사용하기 위함)
$oModuleController = &getController('module');
$oModuleController->insertActionForward('module', 'view', 'dispModuleAdminContent');
$oModuleController->insertActionForward('module', 'view', 'dispModuleAdminList');
$oModuleController->insertActionForward('module', 'view', 'dispModuleAdminCategory');
$oModuleController->insertActionForward('module', 'view', 'dispModuleAdminInfo');
$oDB = &DB::getInstance();
@ -41,6 +37,17 @@
// 2008. 11. 13 modules 의 mid를 unique를 없애고 site_srl을 추가 후에 site_srl + mid unique index
if(!$oDB->isIndexExists('modules',"idx_site_mid")) return true;
// 모든 모듈의 권한/스킨정보를 grants 테이블로 이전시키는 업데이트
if($oDB->isColumnExists('modules', 'grants')) return true;
// 모든 모듈의 권한/스킨정보를 grants 테이블로 이전시키는 업데이트
if(!$oDB->isColumnExists('sites', 'default_language')) return true;
// extra_vars* 컬럼 제거
for($i=1;$i<=20;$i++) {
if($oDB->isColumnExists("documents","extra_vars".$i)) return true;
}
return false;
}
@ -109,25 +116,127 @@
$oDB->addColumn('modules','site_srl','number',11,0,true);
$oDB->addIndex("modules","idx_site_mid", array("site_srl","mid"),true);
}
// document 확장변수의 확장을 위한 처리
if(!$oDB->isTableExists('document_extra_vars')) $oDB->createTableByXmlFile('./modules/document/schemas/document_extra_vars.xml');
if(!$oDB->isTableExists('document_extra_keys')) $oDB->createTableByXmlFile('./modules/document/schemas/document_extra_keys.xml');
// 모든 모듈의 권한, 스킨정보, 확장정보, 관리자 아이디를 grants 테이블로 이전시키는 업데이트
if($oDB->isColumnExists('modules', 'grants')) {
$oModuleController = &getController('module');
$oDocumentController = &getController('document');
// 현재 시스템 언어 코드값을 가져옴
$lang_code = Context::getLangType();
// 모든 모듈의 module_info를 가져옴
$output = executeQueryArray('module.getModuleInfos');
if(count($output->data)) {
foreach($output->data as $module_info) {
// 모듈들의 권한/ 확장변수(게시글 확장 포함)/ 스킨 변수/ 최고관리권한 정보 분리
$module_srl = trim($module_info->module_srl);
// 권한 등록
$grants = unserialize($module_info->grants);
if($grants) $oModuleController->insertModuleGrants($module_srl, $grants);
// 스킨 변수 등록
$skin_vars = unserialize($module_info->skin_vars);
if($skin_vars) $oModuleController->insertModuleSkinVars($module_srl, $skin_vars);
// 최고 관리자 아이디 등록
$admin_id = trim($module_info->admin_id);
if($admin_id && $admin_id != 'Array') {
$admin_ids = explode(',',$admin_id);
if(count($admin_id)) {
foreach($admin_ids as $admin_id) {
$oModuleController->insertAdminId($module_srl, $admin_id);
}
}
}
// 모듈별 추가 설정 저장 (기본 modules에 없던 컬럼 데이터)
$extra_vars = unserialize($module_info->extra_vars);
$document_extra_keys = null;
if($extra_vars->extra_vars && count($extra_vars->extra_vars)) {
$document_extra_keys = $extra_vars->extra_vars;
unset($extra_vars->extra_vars);
}
if($extra_vars) $oModuleController->insertModuleExtraVars($module_srl, $extra_vars);
/**
* 게시글 확장변수 이동 (documents모듈에서 해야 하지만 modules 테이블의 추가 변수들이 정리되기에 여기서 )
**/
// 플래닛모듈의 경우 직접 추가 변수 입력
if($module_info->module == 'planet') {
if(!$document_extra_keys || !is_array($document_extra_keys)) $document_extra_keys = array();
$planet_extra_keys->name = 'postscript';
$planet_extra_keys->type = 'text';
$planet_extra_keys->is_required = 'N';
$planet_extra_keys->search = 'N';
$planet_extra_keys->default = '';
$planet_extra_keys->desc = '';
$document_extra_keys[20] = $planet_extra_keys;
}
// 게시글 확장변수 키 등록
if(count($document_extra_keys)) {
foreach($document_extra_keys as $var_idx => $val) {
$oDocumentController->insertDocumentExtraKey($module_srl, $var_idx, $val->name, $val->type, $val->is_required, $val->search, $val->default, $val->desc);
}
// 확장변수가 존재하면 확장변수 가져오기
$doc_args = null;
$doc_args->module_srl = $module_srl;
$doc_args->list_count = 100;
$doc_args->sort_index = 'list_order';
$doc_args->order_type = 'asc';
$doc_args->page = 1;
$output = executeQueryArray('document.getDocumentList', $doc_args);
if($output->toBool() && $output->data && count($output->data)) {
foreach($output->data as $document) {
if(!$document) continue;
foreach($document as $key => $var) {
if(strpos($key,'extra_vars')!==0 || !trim($var) || $var== 'N;') continue;
$var_idx = str_replace('extra_vars','',$key);
$oDocumentController->insertDocumentExtraVar($module_srl, $document->document_srl, $var_idx, $var, $lang_code);
}
}
$doc_args->page++;
}
}
// 해당 모듈들의 추가 변수들 제거
$module_info->grant = null;
$module_info->extra_vars = null;
$module_info->skin_vars = null;
$module_info->admin_id = null;
executeQuery('module.updateModule', $module_info);
}
}
// 각종 column drop
$oDB->dropColumn('modules','grants');
$oDB->dropColumn('modules','admin_id');
$oDB->dropColumn('modules','skin_vars');
$oDB->dropColumn('modules','extra_vars');
}
// 모든 모듈의 권한/스킨정보를 grants 테이블로 이전시키는 업데이트
if(!$oDB->isColumnExists('sites', 'default_language')) {
$oDB->addColumn('sites','default_language','varchar',255,0,false);
}
// extra_vars* 컬럼 제거
for($i=1;$i<=20;$i++) {
if(!$oDB->isColumnExists("documents","extra_vars".$i)) continue;
$oDB->dropColumn('documents','extra_vars'.$i);
}
return new Object(0, 'success_updated');
}
/**
* @brief Action중 Admin이 들어갔을 경우 권한 체크
**/
function checkAdminActionGrant() {
if(!Context::get('is_logged')) return false;
$logged_info = Context::get('logged_info');
if($logged_info->is_admin=='Y') return true;
$oModuleModel = &getModel('module');
if($oModuleModel->isSiteAdmin()) return true;
return false;
}
/**
* @brief 캐시 파일 재생성
**/
@ -142,7 +251,7 @@
FileHandler::removeFilesInDir("./files/cache/db");
// 기타 캐시 삭제
FileHandler::removeFilesInDir("./files/cache/tmp");
FileHandler::removeDir("./files/cache/tmp");
}
}
?>