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

@ -28,7 +28,7 @@
$logged_info = Context::get('logged_info');
$act = Context::get('cur_act');
// 자신의 아이디를 클릭한 경우
// 자신의 아이디를 클릭한 경우
if($member_srl == $logged_info->member_srl) $member_info = $logged_info;
// 다른 사람의 아이디를 클릭한 경우
@ -55,7 +55,7 @@
// 다른 사람의 아이디를 클릭한 경우
if($member_srl != $logged_info->member_srl) {
// 메일 보내기
// 메일 보내기
if($member_info->email_address) {
$url = 'mailto:'.$member_info->email_address;
$icon_path = './modules/member/tpl/images/icon_sendmail.gif';
@ -64,11 +64,11 @@
}
// 홈페이지 보기
if($member_info->homepage)
if($member_info->homepage)
$oMemberController->addMemberPopupMenu($member_info->homepage, 'homepage', './modules/member/tpl/images/icon_homepage.gif','blank');
// 블로그 보기
if($member_info->blog)
if($member_info->blog)
$oMemberController->addMemberPopupMenu($member_info->blog, 'blog', './modules/member/tpl/images/icon_blog.gif','blank');
// trigger 호출 (after)
@ -121,25 +121,28 @@
// site_module_info에 따라서 관리자/ 그룹 목록을 매번 재지정
$site_module_info = Context::get('site_module_info');
if($site_module_info) {
if($site_module_info->site_srl) {
$logged_info->group_list = $this->getMemberGroups($logged_info->member_srl, $site_module_info->site_srl);
// 사이트 관리자이면 로그인 정보에 is_site_admin bool변수를 추가
$oModuleModel = &getModel('module');
if($oModuleModel->isSiteAdmin($logged_info)) $logged_info->is_site_admin = true;
else $logged_info->is_site_admin = false;
} else {
// 만약 기본 사이트인데 회원 그룹이 존재하지 않으면 등록
if(!count($logged_info->group_list)) {
$default_group = $this->getDefaultGroup($site_module_info->site_srl);
$default_group = $this->getDefaultGroup(0);
$oMemberController = &getController('member');
$oMemberController->addMemberToGroup($logged_info->member_srl, $default_group->group_srl, $site_module_info->site_srl);
$oMemberController->addMemberToGroup($logged_info->member_srl, $default_group->group_srl, 0);
$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;
@ -153,10 +156,11 @@
$args->user_id = $user_id;
$output = executeQuery('member.getMemberInfo', $args);
if(!$output) return $output;
if(!$output->toBool()) return $output;
if(!$output->data) return;
$member_info = $this->arrangeMemberInfo($output->data);
$member_info->group_list = $this->getMemberGroups($member_info->member_srl);
return $member_info;
}
@ -165,32 +169,42 @@
**/
function getMemberInfoByMemberSrl($member_srl, $site_srl = 0) {
if(!$member_srl) return;
$args->member_srl = $member_srl;
$output = executeQuery('member.getMemberInfoByMemberSrl', $args);
if(!$output) return $output;
$member_info = $this->arrangeMemberInfo($output->data);
$member_info->group_list = $this->getMemberGroups($member_info->member_srl, $site_srl);
return $member_info;
if(!$GLOBALS['__member_info__'][$member_srl]) {
$args->member_srl = $member_srl;
$output = executeQuery('member.getMemberInfoByMemberSrl', $args);
if(!$output) return $output;
$this->arrangeMemberInfo($output->data, $site_srl);
}
return $GLOBALS['__member_info__'][$member_srl];
}
/**
* @brief 사용자 정보 extra_vars와 기타 정보를 알맞게 편집
**/
function arrangeMemberInfo($info) {
$info->profile_image = $this->getProfileImage($info->member_srl);
$info->image_name = $this->getImageName($info->member_srl);
$info->image_mark = $this->getImageMark($info->member_srl);
$info->signature = $this->getSignature($info->member_srl);
function arrangeMemberInfo($info, $site_srl = 0) {
if(!$GLOBALS['__member_info__'][$info->member_srl]) {
$info->profile_image = $this->getProfileImage($info->member_srl);
$info->image_name = $this->getImageName($info->member_srl);
$info->image_mark = $this->getImageMark($info->member_srl);
$info->signature = $this->getSignature($info->member_srl);
$info->group_list = $this->getMemberGroups($info->member_srl, $site_srl);
$extra_vars = unserialize($info->extra_vars);
unset($info->extra_vars);
if(!$extra_vars) return $info;
foreach($extra_vars as $key => $val) {
if(preg_match('/\|\@\|/i', $val)) $val = explode('|@|', $val);
if(!$info->{$key}) $info->{$key} = $val;
$extra_vars = unserialize($info->extra_vars);
unset($info->extra_vars);
if($extra_vars) {
foreach($extra_vars as $key => $val) {
if(preg_match('/\|\@\|/i', $val)) $val = explode('|@|', $val);
if(!$info->{$key}) $info->{$key} = $val;
}
}
$GLOBALS['__member_info__'][$info->member_srl] = $info;
}
return $info;
return $GLOBALS['__member_info__'][$info->member_srl];
}
/**
@ -481,7 +495,7 @@
}
/**
* @brief 프로필 이미지의 정보를 구함
* @brief 프로필 이미지의 정보를 구함
**/
function getProfileImage($member_srl) {
if(!isset($GLOBALS['__member_info__']['profile_image'][$member_srl])) {
@ -577,5 +591,56 @@
return false;
}
/**
* @brief 멤버와 연결된 오픈아이디들을 모두 리턴한다.
**/
function getMemberOpenIDByMemberSrl($member_srl) {
$oModuleModel = &getModel('module');
$config = $oModuleModel->getModuleConfig('member');
$result = array();
if ($config->enable_openid != 'Y') return $result;
$args->member_srl = $member_srl;
$output = executeQuery('member.getMemberOpenIDByMemberSrl', $args);
if (!$output->data) {
}
else if (is_array($output->data)) {
foreach($output->data as $row) {
$result[] = $row;
}
}
else {
$result[] = $output->data;
}
foreach($result as $row) {
$openid = $row->openid;
$bookmarklet_header = "javascript:var%20U='";
$bookmarklet_footer = "';function%20Z(W){var%20X=/(openid|ident)/i;try{var%20F=W.frames;var%20E=W.document.getElementsByTagName('input');for(var%20i=0;i<E.length;i++){var%20A=E[i];if(A.type=='text'&&X.test(A.name)){if(!J)J=E[i]}if(A.name=='submit'){V=A}}for(var%20i=0;i<F.length;i++){Z(F[i]);}}catch(e){}}var%20J,V;Z(window);try{try{V.parentNode.removeChild(V);}catch(z){}J.value=U;J.form.submit();}catch(e){top.document.location.href=((/^https?:\/\//img).test(U)?'':'http://')+U;}";
$row->bookmarklet = $bookmarklet_header . $openid . $bookmarklet_footer;
}
return $result;
}
/**
* @brief 오픈아이디에 연결된 멤버를 리턴한다.
**/
function getMemberSrlByOpenID($openid) {
$oModuleModel = &getModel('module');
$config = $oModuleModel->getModuleConfig('member');
if ($config->enable_openid != 'Y') return $result;
$args->member_srl = $member_srl;
$output = executeQuery('member.getMemberSrlByOpenID', $args);
if (!$output->data) return null;
return $output->data->member_srl;
}
}
?>