mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-07 18:51:41 +09:00
css 및 js 호출순서 조정기능 추가
git-svn-id: http://xe-core.googlecode.com/svn/sandbox@5785 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
4f380d9c48
commit
61851f1dfe
2149 changed files with 109090 additions and 18689 deletions
|
|
@ -129,11 +129,46 @@
|
|||
return executeQuery('module.updateSite', $args);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 모듈 정보 정리
|
||||
**/
|
||||
function arrangeModuleInfo(&$args, &$extra_vars) {
|
||||
// 불필요한 내용 제거
|
||||
unset($args->body);
|
||||
unset($args->act);
|
||||
unset($args->page);
|
||||
|
||||
// mid값 검사
|
||||
if(!ereg("^[a-zA-Z][a-zA-Z0-9_]+", $args->mid)) return new Object(-1, 'msg_limit_mid');
|
||||
|
||||
// 변수를 검사 (modules의 기본 변수와 그렇지 않은 변수로 분리)
|
||||
$extra_vars = clone($args);
|
||||
unset($extra_vars->module_srl);
|
||||
unset($extra_vars->module);
|
||||
unset($extra_vars->module_category_srl);
|
||||
unset($extra_vars->layout_srl);
|
||||
unset($extra_vars->menu_srl);
|
||||
unset($extra_vars->site_srl);
|
||||
unset($extra_vars->mid);
|
||||
unset($extra_vars->skin);
|
||||
unset($extra_vars->browser_title);
|
||||
unset($extra_vars->description);
|
||||
unset($extra_vars->is_default);
|
||||
unset($extra_vars->content);
|
||||
unset($extra_vars->open_rss);
|
||||
unset($extra_vars->header_text);
|
||||
unset($extra_vars->footer_text);
|
||||
$args = delObjectVars($args, $extra_vars);
|
||||
|
||||
return new Object();
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 모듈 입력
|
||||
**/
|
||||
function insertModule($args) {
|
||||
if(!ereg("^[a-zA-Z][a-zA-Z0-9_]+", $args->mid)) return new Object(-1, 'msg_limit_mid');
|
||||
$output = $this->arrangeModuleInfo($args, $extra_vars);
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
// begin transaction
|
||||
$oDB = &DB::getInstance();
|
||||
|
|
@ -147,23 +182,32 @@
|
|||
return new Object(-1, 'msg_module_name_exists');
|
||||
}
|
||||
|
||||
// module model 객체 생성
|
||||
$oModuleModel = &getModel('module');
|
||||
// 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을 구함
|
||||
$oModuleModel = &getModel('module');
|
||||
$module_path = ModuleHandler::getModulePath($args->module);
|
||||
$skin_info = $oModuleModel->loadSkinInfo($module_path, $args->skin);
|
||||
$skin_vars->colorset = $skin_info->colorset[0]->name;
|
||||
|
||||
// 변수 정리후 query 실행
|
||||
if(!$args->module_srl) $args->module_srl = getNextSequence();
|
||||
$args->skin_vars = serialize($skin_vars);
|
||||
|
||||
// 모듈 등록
|
||||
$output = executeQuery('module.insertModule', $args);
|
||||
if(!$output->toBool()) {
|
||||
$oDB->rollback();
|
||||
return $output;
|
||||
}
|
||||
|
||||
// 모듈 추가 변수 등록
|
||||
$this->insertModuleExtraVars($args->module_srl, $extra_vars);
|
||||
|
||||
// commit
|
||||
$oDB->commit();
|
||||
|
||||
|
|
@ -175,6 +219,9 @@
|
|||
* @brief 모듈의 정보를 수정
|
||||
**/
|
||||
function updateModule($args) {
|
||||
$output = $this->arrangeModuleInfo($args, $extra_vars);
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
// begin transaction
|
||||
$oDB = &DB::getInstance();
|
||||
$oDB->begin();
|
||||
|
|
@ -182,7 +229,7 @@
|
|||
$oModuleModel = &getModel('module');
|
||||
$module_info = $oModuleModel->getModuleInfoByModuleSrl($args->module_srl);
|
||||
|
||||
if(!$args->site_srl) $args->site_srl = (int)$module_info->site_srl;
|
||||
$args->site_srl = (int)$module_info->site_srl;
|
||||
if(!$args->browser_title) $args->browser_title = $module_info->browser_title;
|
||||
|
||||
$output = executeQuery('module.isExistsModuleName', $args);
|
||||
|
|
@ -191,20 +238,25 @@
|
|||
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();
|
||||
return $output;
|
||||
}
|
||||
|
||||
$output->add('module_srl',$args->module_srl);
|
||||
if(!$output->toBool()) {
|
||||
$oDB->rollback();
|
||||
return $output;
|
||||
}
|
||||
// 모듈 추가 변수 등록
|
||||
$this->insertModuleExtraVars($args->module_srl, $extra_vars);
|
||||
|
||||
$oDB->commit();
|
||||
|
||||
$output->add('module_srl',$args->module_srl);
|
||||
return $output;
|
||||
}
|
||||
|
||||
|
|
@ -233,6 +285,18 @@
|
|||
return $output;
|
||||
}
|
||||
|
||||
// 권한 정보 삭제
|
||||
$this->deleteModuleGrants($module_srl);
|
||||
|
||||
// 스킨 정보 삭제
|
||||
$this->deleteModuleSkinVars($module_srl);
|
||||
|
||||
// 모듈 추가 변수 삭제
|
||||
$this->deleteModuleExtraVars($module_srl);
|
||||
|
||||
// 모듈 관리자 제거
|
||||
$this->deleteAdminId($module_srl);
|
||||
|
||||
// trigger 호출 (after)
|
||||
if($output->toBool()) {
|
||||
$trigger_output = ModuleHandler::triggerCall('module.deleteModule', 'after', $trigger_obj);
|
||||
|
|
@ -261,18 +325,6 @@
|
|||
return $output;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 모듈의 권한 정보 변경
|
||||
**/
|
||||
function updateModuleGrant($module_srl, $grants) {
|
||||
$args->module_srl = $module_srl;
|
||||
$args->grants = $grants;
|
||||
$output = executeQuery('module.updateModuleGrant', $args);
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
return $output;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 모든 모듈의 is_default값을 N 으로 세팅 (기본 모듈 해제)
|
||||
**/
|
||||
|
|
@ -284,14 +336,14 @@
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief 지정된 menu_srl에 속한 mid 의 menu_srl 을 변경
|
||||
* @brief 지정된 menu_srl에 속한 mid 의 menu_srl 을 변경
|
||||
**/
|
||||
function updateModuleMenu($args) {
|
||||
return executeQuery('module.updateModuleMenu', $args);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 지정된 menu_srl에 속한 mid 의 layout_srl을 변경
|
||||
* @brief 지정된 menu_srl에 속한 mid 의 layout_srl을 변경
|
||||
**/
|
||||
function updateModuleLayout($layout_srl, $menu_srl_list) {
|
||||
if(!count($menu_srl_list)) return;
|
||||
|
|
@ -332,5 +384,267 @@
|
|||
}
|
||||
return new Object();
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 특정 모듈에 관리자 아이디 지정
|
||||
**/
|
||||
function insertAdminId($module_srl, $admin_id) {
|
||||
$oMemberModel = &getModel('member');
|
||||
$member_info = $oMemberModel->getMemberInfoByUserID($admin_id);
|
||||
if(!$member_info->member_srl) return;
|
||||
$args->module_srl = $module_srl;
|
||||
$args->member_srl = $member_info->member_srl;
|
||||
return executeQuery('module.insertAdminId', $args);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 특정 모듈의 관리자 아이디 제거
|
||||
**/
|
||||
function deleteAdminId($module_srl, $admin_id = '') {
|
||||
$args->module_srl = $module_srl;
|
||||
|
||||
if($admin_id) {
|
||||
$oMemberModel = &getModel('member');
|
||||
$member_info = $oMemberModel->getMemberInfoByUserID($admin_id);
|
||||
if($member_info->member_srl) $args->member_srl = $member_info->member_srl;
|
||||
}
|
||||
return executeQuery('module.deleteAdminId', $args);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 특정 모듈에 스킨 변수 등록
|
||||
**/
|
||||
function insertModuleSkinVars($module_srl, $obj) {
|
||||
$this->deleteModuleSkinVars($module_srl);
|
||||
if(!$obj || !count($obj)) return;
|
||||
|
||||
$args->module_srl = $module_srl;
|
||||
foreach($obj as $key => $val) {
|
||||
$args->name = trim($key);
|
||||
$args->value = trim($val);
|
||||
if(!$args->name || !$args->value) continue;
|
||||
executeQuery('module.insertModuleSkinVars', $args);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 특정 모듈의 스킨 변수 제거
|
||||
**/
|
||||
function deleteModuleSkinVars($module_srl) {
|
||||
$args->module_srl = $module_srl;
|
||||
return executeQuery('module.deleteModuleSkinVars', $args);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 특정 모듈에 확장 변수 등록
|
||||
**/
|
||||
function insertModuleExtraVars($module_srl, $obj) {
|
||||
$this->deleteModuleExtraVars($module_srl);
|
||||
if(!$obj || !count($obj)) return;
|
||||
|
||||
foreach($obj as $key => $val) {
|
||||
$args = null;
|
||||
$args->module_srl = $module_srl;
|
||||
$args->name = trim($key);
|
||||
$args->value = trim($val);
|
||||
if(!$args->name || !$args->value) continue;
|
||||
executeQuery('module.insertModuleExtraVars', $args);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 특정 모듈의 확장 변수 제거
|
||||
**/
|
||||
function deleteModuleExtraVars($module_srl) {
|
||||
$args->module_srl = $module_srl;
|
||||
return executeQuery('module.deleteModuleExtraVars', $args);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 특정 모듈에 권한 등록
|
||||
**/
|
||||
function insertModuleGrants($module_srl, $obj) {
|
||||
$this->deleteModuleGrants($module_srl);
|
||||
if(!$obj || !count($obj)) return;
|
||||
|
||||
foreach($obj as $name => $val) {
|
||||
if(!$val || !count($val)) continue;
|
||||
|
||||
foreach($val as $group_srl) {
|
||||
$args = null;
|
||||
$args->module_srl = $module_srl;
|
||||
$args->name = $name;
|
||||
$args->group_srl = trim($group_srl);
|
||||
if(!$args->name || !$args->group_srl) continue;
|
||||
executeQuery('module.insertModuleGrant', $args);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 특정 모듈의 권한 제거
|
||||
**/
|
||||
function deleteModuleGrants($module_srl) {
|
||||
$args->module_srl = $module_srl;
|
||||
return executeQuery('module.deleteModuleGrants', $args);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 사용자 정의 언어 변경
|
||||
**/
|
||||
function replaceDefinedLangCode(&$output) {
|
||||
$output = preg_replace_callback('!\$user_lang->([a-z0-9\_]+)!is', array($this,'_replaceLangCode'), $output);
|
||||
}
|
||||
function _replaceLangCode($matches) {
|
||||
static $lang = null;
|
||||
if(is_null($lang)) {
|
||||
$site_module_info = Context::get('site_module_info');
|
||||
$cache_file = sprintf('%sfiles/cache/lang_defined/%d.%s.php', _XE_PATH_, $site_module_info->site_srl, Context::getLangType());
|
||||
if(!file_exists($cache_file)) {
|
||||
$lang = array();
|
||||
return;
|
||||
}
|
||||
require_once($cache_file);
|
||||
}
|
||||
if(!Context::get($matches[1]) && $lang[$matches[1]]) return $lang[$matches[1]];
|
||||
|
||||
return $matches[0];
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @brief 파일박스에 파일 추가 및 업데이트
|
||||
**/
|
||||
function procModuleFileBoxAdd(){
|
||||
|
||||
$logged_info = Context::get('logged_info');
|
||||
if($logged_info->is_admin !='Y' && !$logged_info->is_site_admin) return new Object(-1, 'msg_not_permitted');
|
||||
|
||||
$vars = Context::gets('comment','addfile','filter');
|
||||
$module_filebox_srl = Context::get('module_filebox_srl');
|
||||
|
||||
$ext = strtolower(substr(strrchr($vars->addfile['name'],'.'),1));
|
||||
$vars->ext = $ext;
|
||||
if($vars->filter) $filter = explode(',',$vars->filter);
|
||||
if(!in_array($ext,$filter)) return new Object(-1, 'msg_error_occured');
|
||||
|
||||
$vars->member_srl = $logged_info->member_srl;
|
||||
|
||||
// update
|
||||
if($module_filebox_srl > 0){
|
||||
$vars->module_filebox_srl = $module_filebox_srl;
|
||||
$output = $this->updateModuleFileBox($vars);
|
||||
|
||||
// insert
|
||||
}else{
|
||||
if(!Context::isUploaded()) return new Object(-1, 'msg_error_occured');
|
||||
$addfile = Context::get('addfile');
|
||||
if(!is_uploaded_file($addfile['tmp_name'])) return new Object(-1, 'msg_error_occured');
|
||||
if($vars->addfile['error'] != 0) return new Object(-1, 'msg_error_occured');
|
||||
$output = $this->insertModuleFileBox($vars);
|
||||
}
|
||||
|
||||
$url = getUrl('','module','module','act','dispModuleFileBox','input',Context::get('input'),'filter',$vars->filter);
|
||||
$url = html_entity_decode($url);
|
||||
$vars = Context::set('url',$url);
|
||||
$this->setTemplatePath($this->module_path.'tpl');
|
||||
$this->setTemplateFile('move_filebox_list');
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief 파일박스에 파일 업데이트
|
||||
**/
|
||||
function updateModuleFileBox($vars){
|
||||
|
||||
// have file
|
||||
if($vars->addfile['tmp_name'] && is_uploaded_file($vars->addfile['tmp_name'])){
|
||||
$oModuleModel = &getModel('module');
|
||||
$output = $oModuleModel->getModuleFileBox($vars->module_filebox_srl);
|
||||
FileHandler::removeFile($output->data->filename);
|
||||
|
||||
$path = $oModuleModel->getModuleFileBoxPath($vars->module_filebox_srl);
|
||||
FileHandler::makeDir($path);
|
||||
|
||||
$save_filename = sprintf('%s%s.%s',$path, $vars->module_filebox_srl, $ext);
|
||||
$tmp = $vars->addfile['tmp_name'];
|
||||
|
||||
if(!@move_uploaded_file($tmp, $save_filename)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$args->fileextension = strtolower(substr(strrchr($vars->addfile['name'],'.'),1));
|
||||
$args->filename = $save_filename;
|
||||
$args->filesize = $vars->addfile['size'];
|
||||
|
||||
}
|
||||
|
||||
$args->module_filebox_srl = $vars->module_filebox_srl;
|
||||
$args->comment = $vars->comment;
|
||||
|
||||
return executeQuery('module.updateModuleFileBox', $vars);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief 파일박스에 파일 추가
|
||||
**/
|
||||
function insertModuleFileBox($vars){
|
||||
// set module_filebox_srl
|
||||
$vars->module_filebox_srl = getNextSequence();
|
||||
|
||||
// get file path
|
||||
$oModuleModel = &getModel('module');
|
||||
$path = $oModuleModel->getModuleFileBoxPath($vars->module_filebox_srl);
|
||||
FileHandler::makeDir($path);
|
||||
$save_filename = sprintf('%s%s.%s',$path, $vars->module_filebox_srl, $vars->ext);
|
||||
$tmp = $vars->addfile['tmp_name'];
|
||||
|
||||
// upload
|
||||
if(!@move_uploaded_file($tmp, $save_filename)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
// insert
|
||||
$args->module_filebox_srl = $vars->module_filebox_srl;
|
||||
$args->member_srl = $vars->member_srl;
|
||||
$args->comment = $vars->comment;
|
||||
$args->filename = $save_filename;
|
||||
$args->fileextension = strtolower(substr(strrchr($vars->addfile['name'],'.'),1));
|
||||
$args->filesize = $vars->addfile['size'];
|
||||
|
||||
$output = executeQuery('module.insertModuleFileBox', $args);
|
||||
return $output;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief 파일박스에 파일 삭제
|
||||
**/
|
||||
|
||||
function procModuleFileBoxDelete(){
|
||||
$logged_info = Context::get('logged_info');
|
||||
if($logged_info->is_admin !='Y' && !$logged_info->is_site_admin) return new Object(-1, 'msg_not_permitted');
|
||||
|
||||
$module_filebox_srl = Context::get('module_filebox_srl');
|
||||
if(!$module_filebox_srl) return new Object(-1, 'msg_invalid_request');
|
||||
$vars->module_filebox_srl = $module_filebox_srl;
|
||||
$output = $this->deleteModuleFileBox($vars);
|
||||
if(!$output->toBool()) return $output;
|
||||
}
|
||||
|
||||
function deleteModuleFileBox($vars){
|
||||
|
||||
// delete real file
|
||||
$oModuleModel = &getModel('module');
|
||||
$output = $oModuleModel->getModuleFileBox($vars->module_filebox_srl);
|
||||
FileHandler::removeFile($output->data->filename);
|
||||
|
||||
$args->module_filebox_srl = $vars->module_filebox_srl;
|
||||
return executeQuery('module.deleteModuleFileBox', $args);
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue