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:
zero 2008-11-17 10:45:57 +00:00
parent c5dbc3405c
commit e745b70268
171 changed files with 5243 additions and 274 deletions

View file

@ -10,7 +10,6 @@
/**
* @brief 자주 호출될거라 예상되는 데이터는 내부적으로 가지고 있자...
**/
var $member_groups = NULL;
var $join_form_list = NULL;
/**
@ -117,7 +116,37 @@
**/
function getLoggedInfo() {
// 로그인 되어 있고 세션 정보를 요청하면 세션 정보를 return
if($this->isLogged()) return $_SESSION['logged_info'];
if($this->isLogged()) {
$logged_info = $_SESSION['logged_info'];
// site_module_info에 따라서 관리자/ 그룹 목록을 매번 재지정
$site_module_info = Context::get('site_module_info');
if($site_module_info) {
unset($logged_info->group_list);
$site_srl = $site_module_info->site_srl;
$groups = $this->getMemberGroups($logged_info->member_srl, $site_srl);
// 만약 현재 접속된 사이트의 그룹이 없으면 기본 그룹을 지정
if(!count($groups)) {
$default_group = $this->getDefaultGroup($site_module_info->site_srl);
$oMemberController = &getController('member');
$oMemberController->addMemberToGroup($logged_info->member_srl, $default_group->group_srl, $site_srl);
$groups[$default_group->group_srl] = $default_group->title;
}
$logged_info->group_list = $groups;
$oModuleModel = &getModel('module');
if($oModuleModel->isSiteAdmin()) $logged_info->is_site_admin = true;
else $logged_info->is_site_admin = false;
} else {
$logged_info->is_site_admin = false;
}
$_SESSION['logged_info'] = $logged_info;
return $logged_info;
}
return NULL;
}
@ -216,9 +245,11 @@
/**
* @brief member_srl이 속한 group 목록을 가져옴
**/
function getMemberGroups($member_srl) {
if(!$this->member_groups[$member_srl]) {
function getMemberGroups($member_srl, $site_srl = 0) {
static $member_groups = array();
if(!$member_groups[$member_srl][$site_srl]) {
$args->member_srl = $member_srl;
$args->site_srl = $site_srl;
$output = executeQuery('member.getMemberGroups', $args);
if(!$output->data) return array();
@ -228,16 +259,33 @@
foreach($group_list as $group) {
$result[$group->group_srl] = $group->title;
}
$this->member_groups[$member_srl] = $result;
$member_groups[$member_srl][$site_srl] = $result;
}
return $this->member_groups[$member_srl];
return $member_groups[$member_srl][$site_srl];
}
/**
* @brief member_srl들이 속한 group 목록을 가져옴
**/
function getMembersGroups($member_srls, $site_srl = 0) {
$args->member_srls = implode(',',$member_srls);
$args->site_srl = $site_srl;
$output = executeQuery('member.getMembersGroups', $args);
if(!$output->data) return array();
$result = array();
foreach($output->data as $key=>$val) {
$result[$val->member_srl][] = $val->title;
}
return $result;
}
/**
* @brief 기본 그룹을 가져옴
**/
function getDefaultGroup() {
$output = executeQuery('member.getDefaultGroup');
function getDefaultGroup($site_srl = 0) {
$args->site_srl = $site_srl;
$output = executeQuery('member.getDefaultGroup', $args);
return $output->data;
}
@ -261,8 +309,9 @@
/**
* @brief 그룹 목록을 가져옴
**/
function getGroups() {
$output = executeQuery('member.getGroups');
function getGroups($site_srl = 0) {
$args->site_srl = $site_srl;
$output = executeQuery('member.getGroups', $args);
if(!$output->data) return;
$group_list = $output->data;