mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-04-21 03:12:55 +09:00
virtual site + homepage package 추가. 아직 미완성 버전이므로 서비스 반영하지 말아주세요. 테스트중
git-svn-id: http://xe-core.googlecode.com/svn/sandbox@4871 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
c5dbc3405c
commit
e745b70268
171 changed files with 5243 additions and 274 deletions
|
|
@ -24,23 +24,47 @@
|
|||
return $this->arrangeModuleInfo($output->data);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief domain에 따른 기본 mid를 구함
|
||||
**/
|
||||
function getDefaultMid() {
|
||||
// domain 으로 등록된 virtual site가 있는지 확인
|
||||
$url_info = parse_url(Context::getRequestUri());
|
||||
$hostname = $url_info['host'];
|
||||
$path = preg_replace('/\/$/','',$url_info['path']);
|
||||
$sites_args->domain = sprintf('%s%s', $hostname, $path);
|
||||
$output = executeQuery('module.getSiteDefaultInfo', $sites_args);
|
||||
if(!$output->toBool() || !$output->data) $output = executeQuery('module.getDefaultMidInfo');
|
||||
$module_info = $output->data;
|
||||
if(!$module_info->module_srl && $module_info->data[0]) $module_info = $module_info->data[0];
|
||||
return $this->arrangeModuleInfo($module_info);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief site 정보를 구함
|
||||
**/
|
||||
function getSiteInfo($site_srl) {
|
||||
$args->site_srl = $site_srl;
|
||||
$output = executeQuery('module.getSiteInfo', $args);
|
||||
return $output->data;
|
||||
}
|
||||
|
||||
function getSiteInfoByDomain($domain) {
|
||||
$args->domain= $domain;
|
||||
$output = executeQuery('module.getSiteInfoByDomain', $args);
|
||||
return $output->data;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief mid로 모듈의 정보를 구함
|
||||
**/
|
||||
function getModuleInfoByMid($mid='') {
|
||||
// $mid값이 인자로 주어질 경우 $mid로 모듈의 정보를 구함
|
||||
if($mid) {
|
||||
$args->mid = $mid;
|
||||
$output = executeQuery('module.getMidInfo', $args);
|
||||
}
|
||||
|
||||
// 모듈의 정보가 없다면($mid가 잘못이거나 없었을 경우) 기본 모듈을 가져옴
|
||||
if(!$output->data) $output = executeQuery('module.getDefaultMidInfo');
|
||||
|
||||
// 기본 모듈이 한 개 이상 지정되어 있을 때의 예외 처리
|
||||
if(!$output->data->module_srl && $output->data[0]) $output->data = $output->data[0];
|
||||
|
||||
return $this->arrangeModuleInfo($output->data);
|
||||
function getModuleInfoByMid($mid, $site_srl = 0) {
|
||||
$args->mid = $mid;
|
||||
$args->site_srl = $site_srl;
|
||||
$output = executeQuery('module.getMidInfo', $args);
|
||||
$module_info = $output->data;
|
||||
if(!$module_info->module_srl && $module_info->data[0]) $module_info = $module_info->data[0];
|
||||
return $this->arrangeModuleInfo($module_info);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -107,7 +131,10 @@
|
|||
function getModuleSrlByMid($mid) {
|
||||
if(is_array($mid)) $mid = "'".implode("','",$mid)."'";
|
||||
|
||||
$site_module_info = Context::get('site_module_info');
|
||||
|
||||
$args->mid = $mid;
|
||||
if($site_module_info) $args->site_srl = $site_module_info->site_srl;
|
||||
$output = executeQuery('module.getModuleSrlByMid', $args);
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
|
|
@ -144,7 +171,7 @@
|
|||
// extra_vars의 정리
|
||||
if($extra_vars) {
|
||||
$extra_vars = unserialize($extra_vars);
|
||||
foreach($extra_vars as $key => $val) if(!$module_info->{$key}) $module_info->{$key} = $val;
|
||||
if(is_array($extra_vars) || is_object($extra_vars)) foreach($extra_vars as $key => $val) if(!$module_info->{$key}) $module_info->{$key} = $val;
|
||||
}
|
||||
|
||||
// skin_vars의 정리
|
||||
|
|
@ -840,6 +867,39 @@
|
|||
return $list;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 특정 module srls를 sites의 domain과 결합
|
||||
* 아직 XE DBHandler에서 left outer join이 안되어서..
|
||||
* $output->data[]->module_srl 과 같은 구조여야 함
|
||||
**/
|
||||
function syncModuleToSite(&$data) {
|
||||
if(!$data) return;
|
||||
|
||||
if(is_array($data)) {
|
||||
foreach($data as $key => $val) {
|
||||
$module_srls[] = $val->module_srl;
|
||||
}
|
||||
if(!count($module_srls)) return;
|
||||
} else {
|
||||
$module_srls[] = $data->module_srl;
|
||||
}
|
||||
|
||||
$args->module_srls = implode(',',$module_srls);
|
||||
$output = executeQueryArray('module.getModuleSites', $args);
|
||||
if(!$output->data) return array();
|
||||
foreach($output->data as $key => $val) {
|
||||
$modules[$val->module_srl] = $val;
|
||||
}
|
||||
|
||||
if(is_array($data)) {
|
||||
foreach($data as $key => $val) {
|
||||
$data[$key]->domain = $modules[$val->module_srl]->domain;
|
||||
}
|
||||
} else {
|
||||
$data->domain = $modules[$data->module_srl]->domain;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 특정 모듈의 정보와 회원의 정보를 받아서 관리 권한 유무를 판단
|
||||
* 회원의 아이디가 해당 모듈의 admin_id에 있으면 true
|
||||
|
|
@ -859,5 +919,32 @@
|
|||
return count(array_intersect(array_keys($group_list), $manager_group));
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief site_module_info의 관리자 인지 체크
|
||||
**/
|
||||
function isSiteAdmin() {
|
||||
if(!Context::get('is_logged')) return false;
|
||||
$logged_info = Context::get('logged_info');
|
||||
if($logged_info->is_admin == 'Y') return true;
|
||||
|
||||
$site_module_info = Context::get('site_module_info');
|
||||
if(!$site_module_info) return;
|
||||
$args->site_srl = $site_module_info->site_srl;
|
||||
$args->member_srl = $logged_info->member_srl;
|
||||
$output = executeQuery('module.isSiteAdmin', $args);
|
||||
if($output->data->member_srl == $args->member_srl) return true;
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief site의 관리자 정보를 구함
|
||||
**/
|
||||
function getSiteAdmin($site_srl) {
|
||||
$args->site_srl = $site_srl;
|
||||
$output = executeQueryArray('module.getSiteAdmin', $args);
|
||||
return $output->data;
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue