git-svn-id: http://xe-core.googlecode.com/svn/trunk@811 201d5d3c-b55e-5fd7-737f-ddc643e51545

This commit is contained in:
zero 2007-03-30 06:48:43 +00:00
parent 22c70bff60
commit 13901b88c8
32 changed files with 888 additions and 862 deletions

View file

@ -11,9 +11,34 @@
* @brief 설치시 추가 작업이 필요할시 구현 * @brief 설치시 추가 작업이 필요할시 구현
**/ **/
function moduleInstall() { function moduleInstall() {
// member 에서 사용할 cache디렉토리 생성 // action forward에 등록 (관리자 모드에서 사용하기 위함)
FileHandler::makeDir('./files/attach/image_name'); $oModuleController = &getController('module');
FileHandler::makeDir('./files/attach/image_mark'); $oModuleController->insertActionFoward('member', 'view', 'dispMemberInfo');
$oModuleController->insertActionFoward('member', 'view', 'dispMemberAdminList');
$oModuleController->insertActionFoward('member', 'view', 'dispMemberAdminConfig');
$oModuleController->insertActionFoward('member', 'view', 'dispMemberAdminInsert');
$oModuleController->insertActionFoward('member', 'view', 'dispMemberAdminDeleteForm');
$oModuleController->insertActionFoward('member', 'view', 'dispMemberAdminGroupList');
$oModuleController->insertActionFoward('member', 'view', 'dispMemberAdminJoinFormList');
$oModuleController->insertActionFoward('member', 'view', 'dispMemberAdminInfo');
$oModuleController->insertActionFoward('member', 'view', 'dispMemberAdminInsertJoinForm');
$oModuleController->insertActionFoward('member', 'view', 'dispMemberAdminDeniedIDList');
$oModuleController->insertActionFoward('member', 'model', 'getmemberMenu');
$oModuleController->insertActionFoward('member', 'controller', 'procMemberLogin');
$oModuleController->insertActionFoward('member', 'controller', 'procMemberLogout');
$oModuleController->insertActionFoward('member', 'controller', 'procMemberInsertImageName');
$oModuleController->insertActionFoward('member', 'controller', 'procMemberInsertImageMark');
$oModuleController->insertActionFoward('member', 'controller', 'procMemberDeleteImageName');
$oModuleController->insertActionFoward('member', 'controller', 'procMemberDeleteImageMark');
$oModuleController->insertActionFoward('member', 'controller', 'procMemberAdminInsert');
$oModuleController->insertActionFoward('member', 'controller', 'procMemberAdminDelete');
$oModuleController->insertActionFoward('member', 'controller', 'procMemberAdminInsertConfig');
$oModuleController->insertActionFoward('member', 'controller', 'procMemberAdminInsertGroup');
$oModuleController->insertActionFoward('member', 'controller', 'procMemberAdminUpdateGroup');
$oModuleController->insertActionFoward('member', 'controller', 'procMemberAdminInsertJoinForm');
$oModuleController->insertActionFoward('member', 'controller', 'procMemberAdminUpdateJoinForm');
$oModuleController->insertActionFoward('member', 'controller', 'procMemberAdminInsertDeniedID');
$oModuleController->insertActionFoward('member', 'controller', 'procMemberAdminUpdateDeniedID');
// 멤버 컨트롤러 객체 생성 // 멤버 컨트롤러 객체 생성
$oMemberController = &getController('member'); $oMemberController = &getController('member');
@ -47,9 +72,13 @@
$oMemberController->insertDeniedID('http',''); $oMemberController->insertDeniedID('http','');
// 로그인 처리시킴 // 로그인 처리시킴
$output = $oMemberController->procLogin($admin_info->user_id, $admin_info->password); $output = $oMemberController->procMemberLogin($admin_info->user_id, $admin_info->password);
if(!$output) return $output; if(!$output) return $output;
// member 에서 사용할 cache디렉토리 생성
FileHandler::makeDir('./files/attach/image_name');
FileHandler::makeDir('./files/attach/image_mark');
return new Object(); return new Object();
} }

View file

@ -16,7 +16,7 @@
/** /**
* @brief user_id, password를 체크하여 로그인 시킴 * @brief user_id, password를 체크하여 로그인 시킴
**/ **/
function procLogin($user_id, $password) { function procMemberLogin($user_id, $password) {
// 변수 정리 // 변수 정리
if(!$user_id) $user_id = Context::get('user_id'); if(!$user_id) $user_id = Context::get('user_id');
$user_id = trim($user_id); $user_id = trim($user_id);
@ -63,7 +63,7 @@
/** /**
* @brief 로그아웃 * @brief 로그아웃
**/ **/
function procLogout() { function procMemberLogout() {
$_SESSION['is_logged'] = false; $_SESSION['is_logged'] = false;
$_SESSION['ipaddress'] = $_SERVER['REMOTE_ADDR']; $_SESSION['ipaddress'] = $_SERVER['REMOTE_ADDR'];
$_SESSION['logged_info'] = NULL; $_SESSION['logged_info'] = NULL;
@ -76,7 +76,7 @@
/** /**
* @brief 사용자 추가 (관리자용) * @brief 사용자 추가 (관리자용)
**/ **/
function procInsert() { function procMemberAdminInsert() {
// 필수 정보들을 미리 추출 // 필수 정보들을 미리 추출
$args = Context::gets('member_srl','user_id','user_name','nick_name','email_address','password','allow_mailing','denied','is_admin','signature','profile_image','image_nick','image_mark','description','group_srl_list'); $args = Context::gets('member_srl','user_id','user_name','nick_name','email_address','password','allow_mailing','denied','is_admin','signature','profile_image','image_nick','image_mark','description','group_srl_list');
@ -119,7 +119,7 @@
/** /**
* @brief 사용자 삭제 (관리자용) * @brief 사용자 삭제 (관리자용)
**/ **/
function procDelete() { function procMemberAdminDelete() {
// 일단 입력된 값들을 모두 받아서 db 입력항목과 그외 것으로 분리 // 일단 입력된 값들을 모두 받아서 db 입력항목과 그외 것으로 분리
$member_srl = Context::get('member_srl'); $member_srl = Context::get('member_srl');
@ -133,7 +133,7 @@
/** /**
* @brief 회원 관리용 기본 정보의 추가 * @brief 회원 관리용 기본 정보의 추가
**/ **/
function procInsertConfig() { function procMemberAdminInsertConfig() {
// 기본 정보를 받음 // 기본 정보를 받음
$args = Context::gets('enable_join','redirect_url','agreement','image_name','image_mark', 'image_name_max_width', 'image_name_max_height','image_mark_max_width','image_mark_max_height'); $args = Context::gets('enable_join','redirect_url','agreement','image_name','image_mark', 'image_name_max_width', 'image_name_max_height','image_mark_max_width','image_mark_max_height');
if($args->enable_join!='Y') $args->enable_join = 'N'; if($args->enable_join!='Y') $args->enable_join = 'N';
@ -149,7 +149,7 @@
/** /**
* @brief 사용자 그룹 추가 * @brief 사용자 그룹 추가
**/ **/
function procInsertGroup() { function procMemberAdminInsertGroup() {
$args = Context::gets('title','description','is_default'); $args = Context::gets('title','description','is_default');
$output = $this->insertGroup($args); $output = $this->insertGroup($args);
if(!$output->toBool()) return $output; if(!$output->toBool()) return $output;
@ -162,7 +162,7 @@
/** /**
* @brief 사용자 그룹 정보 수정 * @brief 사용자 그룹 정보 수정
**/ **/
function procUpdateGroup() { function procMemberAdminUpdateGroup() {
$group_srl = Context::get('group_srl'); $group_srl = Context::get('group_srl');
$mode = Context::get('mode'); $mode = Context::get('mode');
@ -188,7 +188,7 @@
/** /**
* @brief 가입 항목 추가 * @brief 가입 항목 추가
**/ **/
function procInsertJoinForm() { function procMemberAdminInsertJoinForm() {
$oDB = &DB::getInstance(); $oDB = &DB::getInstance();
$args->member_join_form_srl = Context::get('member_join_form_srl'); $args->member_join_form_srl = Context::get('member_join_form_srl');
@ -224,7 +224,7 @@
/** /**
* @brief 가입 항목의 / 이동 내용 수정 * @brief 가입 항목의 / 이동 내용 수정
**/ **/
function procUpdateJoinForm() { function procMemberAdminUpdateJoinForm() {
$member_join_form_srl = Context::get('member_join_form_srl'); $member_join_form_srl = Context::get('member_join_form_srl');
$mode = Context::get('mode'); $mode = Context::get('mode');
@ -252,7 +252,7 @@
/** /**
* @brief 금지 아이디 추가 * @brief 금지 아이디 추가
**/ **/
function procInsertDeniedID() { function procMemberAdminInsertDeniedID() {
$user_id = Context::get('user_id'); $user_id = Context::get('user_id');
$description = Context::get('description'); $description = Context::get('description');
@ -268,7 +268,7 @@
/** /**
* @brief 금지 아이디 업데이트 * @brief 금지 아이디 업데이트
**/ **/
function procUpdateDeniedID() { function procMemberAdminUpdateDeniedID() {
$user_id = Context::get('user_id'); $user_id = Context::get('user_id');
$mode = Context::get('mode'); $mode = Context::get('mode');
@ -286,6 +286,181 @@
$this->setMessage($msg_code); $this->setMessage($msg_code);
} }
/**
* @brief 이미지 이름을 추가
**/
function procMemberInsertImageName() {
// 정상적으로 업로드 된 파일인지 검사
$file = $_FILES['image_name'];
if(!is_uploaded_file($file['tmp_name'])) return $this->stop('msg_not_uploaded_image_name');
// 회원 정보를 검사해서 회원번호가 없거나 관리자가 아니고 회원번호가 틀리면 무시
$member_srl = Context::get('member_srl');
if(!$member_srl) return $this->stop('msg_not_uploaded_image_name');
$logged_info = Context::get('logged_info');
if($logged_info->is_admin != 'Y' && $logged_info->member_srl != $member_srl) return $this->stop('msg_not_uploaded_image_name');
// 회원 모듈 설정에서 이미지 이름 사용 금지를 하였을 경우 관리자가 아니면 return;
$oModuleModel = &getModel('module');
$config = $oModuleModel->getModuleConfig('member');
if($logged_info->is_admin != 'Y' && $config->image_name != 'Y') return $this->stop('msg_not_uploaded_image_name');
// 정해진 사이즈를 구함
$max_width = $config->image_name_max_width;
if(!$max_width) $max_width = "80";
$max_height = $config->image_name_max_height;
if(!$max_height) $max_height = "20";
// 이미지 정보를 구함
list($width, $height, $type, $attrs) = getimagesize($file['tmp_name']);
// 이미지 정보가 정해진 크기보다 크면 크기를 바꿈
if($width>$max_width) $new_width = $max_width;
else $new_width = $width;
if($height>$max_height) $new_height = $max_height;
else $new_height = $height;
// 업로드한 파일을 옮기지 않고 gd를 이용해서 gif 이미지를 만듬 (gif, jpg, png, bmp가 아니면 역시 무시)
$thumb = imagecreatetruecolor($new_width, $new_height);
switch($type) {
// gif
case 1 :
$source = imagecreatefromgif($file['tmp_name']);
break;
// jpg
case 2 :
$source = imagecreatefromjpeg($file['tmp_name']);
break;
// png
case 3 :
$source = imagecreatefrompng($file['tmp_name']);
break;
// bmp
case 6 :
$source = imagecreatefromwbmp($file['tmp_name']);
break;
}
if(!$source) return $this->stop('msg_not_uploaded_image_name');
if(function_exists('imagecopyresampled')) imagecopyresampled($thumb, $source, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
else imagecopyresized($thumb, $source, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
// 파일을 쓰고 끝냄
$target_filename = sprintf('files/attach/image_name/%s%d.gif', getNumberingPath($member_srl), $member_srl);
imagegif($thumb, $target_filename, 100);
@unlink($file['tmp_name']);
// 페이지 리프레쉬
$this->setRefreshPage();
}
/**
* @brief 이미지 이름을 삭제
**/
function procMemberDeleteImageName() {
$member_srl = Context::get('member_srl');
if(!$member_srl) return new Object(0,'success');
$oModuleModel = &getModel('module');
$config = $oModuleModel->getModuleConfig('member');
if($config->image_mark == 'N') return new Object(0,'success');
$logged_info = Context::get('logged_info');
if($logged_info->is_admin == 'Y' || $logged_info->member_srl == $member_srl) {
$oMemberModel = &getModel('member');
$image_name = $oMemberModel->getImageName($member_srl);
@unlink($image_name->file);
}
return new Object(0,'success');
}
/**
* @brief 이미지 마크를 추가
**/
function procMemberInsertImageMark() {
// 정상적으로 업로드 된 파일인지 검사
$file = $_FILES['image_mark'];
if(!is_uploaded_file($file['tmp_name'])) return $this->stop('msg_not_uploaded_image_mark');
// 회원 정보를 검사해서 회원번호가 없거나 관리자가 아니고 회원번호가 틀리면 무시
$member_srl = Context::get('member_srl');
if(!$member_srl) return $this->stop('msg_not_uploaded_image_mark');
$logged_info = Context::get('logged_info');
if($logged_info->is_admin != 'Y' && $logged_info->member_srl != $member_srl) return $this->stop('msg_not_uploaded_image_mark');
// 회원 모듈 설정에서 이미지 마크 사용 금지를 하였을 경우 관리자가 아니면 return;
$oModuleModel = &getModel('module');
$config = $oModuleModel->getModuleConfig('member');
if($logged_info->is_admin != 'Y' && $config->image_mark != 'Y') return $this->stop('msg_not_uploaded_image_mark');
// 정해진 사이즈를 구함
$max_width = $config->image_mark_max_width;
if(!$max_width) $max_width = "80";
$max_height = $config->image_mark_max_height;
if(!$max_height) $max_height = "20";
// 이미지 정보를 구함
list($width, $height, $type, $attrs) = getimagesize($file['tmp_name']);
// 이미지 정보가 정해진 크기보다 크면 크기를 바꿈
if($width>$max_width) $new_width = $max_width;
else $new_width = $width;
if($height>$max_height) $new_height = $max_height;
else $new_height = $height;
// 업로드한 파일을 옮기지 않고 gd를 이용해서 gif 이미지를 만듬 (gif, jpg, png, bmp가 아니면 역시 무시)
$thumb = imagecreatetruecolor($new_width, $new_height);
switch($type) {
// gif
case 1 :
$source = imagecreatefromgif($file['tmp_name']);
break;
// jpg
case 2 :
$source = imagecreatefromjpeg($file['tmp_name']);
break;
// png
case 3 :
$source = imagecreatefrompng($file['tmp_name']);
break;
// bmp
case 6 :
$source = imagecreatefromwbmp($file['tmp_name']);
break;
}
if(!$source) return $this->stop('msg_not_uploaded_image_mark');
if(function_exists('imagecopyresampled')) imagecopyresampled($thumb, $source, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
else imagecopyresized($thumb, $source, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
// 파일을 쓰고 끝냄
$target_filename = sprintf('files/attach/image_mark/%s%d.gif', getNumberingPath($member_srl), $member_srl);
imagegif($thumb, $target_filename, 100);
// 페이지 리프레쉬
$this->setRefreshPage();
}
/**
* @brief 이미지 마크를 삭제
**/
function procMemberDeleteImageMark() {
$member_srl = Context::get('member_srl');
if(!$member_srl) return new Object(0,'success');
$logged_info = Context::get('logged_info');
if($logged_info->is_admin == 'Y' || $logged_info->member_srl == $member_srl) {
$oMemberModel = &getModel('member');
$image_mark = $oMemberModel->getImageMark($member_srl);
@unlink($image_mark->file);
}
return new Object(0,'success');
}
/** /**
* @brief 관리자를 추가한다 * @brief 관리자를 추가한다
**/ **/
@ -657,181 +832,6 @@
return new Object(); return new Object();
} }
/**
* @brief 이미지 이름을 추가
**/
function procInsertImageName() {
// 정상적으로 업로드 된 파일인지 검사
$file = $_FILES['image_name'];
if(!is_uploaded_file($file['tmp_name'])) return $this->stop('msg_not_uploaded_image_name');
// 회원 정보를 검사해서 회원번호가 없거나 관리자가 아니고 회원번호가 틀리면 무시
$member_srl = Context::get('member_srl');
if(!$member_srl) return $this->stop('msg_not_uploaded_image_name');
$logged_info = Context::get('logged_info');
if($logged_info->is_admin != 'Y' && $logged_info->member_srl != $member_srl) return $this->stop('msg_not_uploaded_image_name');
// 회원 모듈 설정에서 이미지 이름 사용 금지를 하였을 경우 관리자가 아니면 return;
$oModuleModel = &getModel('module');
$config = $oModuleModel->getModuleConfig('member');
if($logged_info->is_admin != 'Y' && $config->image_name != 'Y') return $this->stop('msg_not_uploaded_image_name');
// 정해진 사이즈를 구함
$max_width = $config->image_name_max_width;
if(!$max_width) $max_width = "80";
$max_height = $config->image_name_max_height;
if(!$max_height) $max_height = "20";
// 이미지 정보를 구함
list($width, $height, $type, $attrs) = getimagesize($file['tmp_name']);
// 이미지 정보가 정해진 크기보다 크면 크기를 바꿈
if($width>$max_width) $new_width = $max_width;
else $new_width = $width;
if($height>$max_height) $new_height = $max_height;
else $new_height = $height;
// 업로드한 파일을 옮기지 않고 gd를 이용해서 gif 이미지를 만듬 (gif, jpg, png, bmp가 아니면 역시 무시)
$thumb = imagecreatetruecolor($new_width, $new_height);
switch($type) {
// gif
case 1 :
$source = imagecreatefromgif($file['tmp_name']);
break;
// jpg
case 2 :
$source = imagecreatefromjpeg($file['tmp_name']);
break;
// png
case 3 :
$source = imagecreatefrompng($file['tmp_name']);
break;
// bmp
case 6 :
$source = imagecreatefromwbmp($file['tmp_name']);
break;
}
if(!$source) return $this->stop('msg_not_uploaded_image_name');
if(function_exists('imagecopyresampled')) imagecopyresampled($thumb, $source, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
else imagecopyresized($thumb, $source, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
// 파일을 쓰고 끝냄
$target_filename = sprintf('files/attach/image_name/%s%d.gif', getNumberingPath($member_srl), $member_srl);
imagegif($thumb, $target_filename, 100);
@unlink($file['tmp_name']);
// 페이지 리프레쉬
$this->setRefreshPage();
}
/**
* @brief 이미지 이름을 삭제
**/
function procDeleteImageName() {
$member_srl = Context::get('member_srl');
if(!$member_srl) return new Object(0,'success');
$oModuleModel = &getModel('module');
$config = $oModuleModel->getModuleConfig('member');
if($config->image_mark == 'N') return new Object(0,'success');
$logged_info = Context::get('logged_info');
if($logged_info->is_admin == 'Y' || $logged_info->member_srl == $member_srl) {
$oMemberModel = &getModel('member');
$image_name = $oMemberModel->getImageName($member_srl);
@unlink($image_name->file);
}
return new Object(0,'success');
}
/**
* @brief 이미지 마크를 추가
**/
function procInsertImageMark() {
// 정상적으로 업로드 된 파일인지 검사
$file = $_FILES['image_mark'];
if(!is_uploaded_file($file['tmp_name'])) return $this->stop('msg_not_uploaded_image_mark');
// 회원 정보를 검사해서 회원번호가 없거나 관리자가 아니고 회원번호가 틀리면 무시
$member_srl = Context::get('member_srl');
if(!$member_srl) return $this->stop('msg_not_uploaded_image_mark');
$logged_info = Context::get('logged_info');
if($logged_info->is_admin != 'Y' && $logged_info->member_srl != $member_srl) return $this->stop('msg_not_uploaded_image_mark');
// 회원 모듈 설정에서 이미지 마크 사용 금지를 하였을 경우 관리자가 아니면 return;
$oModuleModel = &getModel('module');
$config = $oModuleModel->getModuleConfig('member');
if($logged_info->is_admin != 'Y' && $config->image_mark != 'Y') return $this->stop('msg_not_uploaded_image_mark');
// 정해진 사이즈를 구함
$max_width = $config->image_mark_max_width;
if(!$max_width) $max_width = "80";
$max_height = $config->image_mark_max_height;
if(!$max_height) $max_height = "20";
// 이미지 정보를 구함
list($width, $height, $type, $attrs) = getimagesize($file['tmp_name']);
// 이미지 정보가 정해진 크기보다 크면 크기를 바꿈
if($width>$max_width) $new_width = $max_width;
else $new_width = $width;
if($height>$max_height) $new_height = $max_height;
else $new_height = $height;
// 업로드한 파일을 옮기지 않고 gd를 이용해서 gif 이미지를 만듬 (gif, jpg, png, bmp가 아니면 역시 무시)
$thumb = imagecreatetruecolor($new_width, $new_height);
switch($type) {
// gif
case 1 :
$source = imagecreatefromgif($file['tmp_name']);
break;
// jpg
case 2 :
$source = imagecreatefromjpeg($file['tmp_name']);
break;
// png
case 3 :
$source = imagecreatefrompng($file['tmp_name']);
break;
// bmp
case 6 :
$source = imagecreatefromwbmp($file['tmp_name']);
break;
}
if(!$source) return $this->stop('msg_not_uploaded_image_mark');
if(function_exists('imagecopyresampled')) imagecopyresampled($thumb, $source, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
else imagecopyresized($thumb, $source, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
// 파일을 쓰고 끝냄
$target_filename = sprintf('files/attach/image_mark/%s%d.gif', getNumberingPath($member_srl), $member_srl);
imagegif($thumb, $target_filename, 100);
// 페이지 리프레쉬
$this->setRefreshPage();
}
/**
* @brief 이미지 마크를 삭제
**/
function procDeleteImageMark() {
$member_srl = Context::get('member_srl');
if(!$member_srl) return new Object(0,'success');
$logged_info = Context::get('logged_info');
if($logged_info->is_admin == 'Y' || $logged_info->member_srl == $member_srl) {
$oMemberModel = &getModel('member');
$image_mark = $oMemberModel->getImageMark($member_srl);
@unlink($image_mark->file);
}
return new Object(0,'success');
}
/** /**
* @brief 최종 출력물에서 이미지 이름을 변경 * @brief 최종 출력물에서 이미지 이름을 변경
* imgae_name 애드온에서 요청이 * imgae_name 애드온에서 요청이

View file

@ -20,6 +20,60 @@
function init() { function init() {
} }
/**
* @brief 선택된 회원의 간단한 메뉴를 표시
**/
function getMemberMenu() {
// 요청된 회원 번호와 현재 사용자의 로그인 정보 구함
$member_srl = Context::get('member_srl');
$mid = Context::get('cur_mid');
$module = Context::get('cur_module');
$logged_info = Context::get('logged_info');
// 자신의 아이디를 클릭한 경우
if($member_srl == $logged_info->member_srl) {
$member_info = $logged_info;
// 다른 사람의 아이디를 클릭한 경우
} else {
// 회원의 정보를 구함
$member_info = $this->getMemberInfoByMemberSrl($member_srl);
}
// 변수 정리
$user_id = $member_info->user_id;
$user_name = $member_info->user_name;
$email_address = $member_info->email_address;
// menu_list 에 "표시할글,target,url" 을 배열로 넣는다
$menu_list = array();
// 게시판이나 블로그등일 경우는 특별 옵션 지정
if($mid) {
// 회원 정보 보기
$menu_str = Context::getLang('cmd_view_member_info');
$menu_url = sprintf('./?mid=%s&act=dispSignUpForm&member_srl=%s', $mid, $member_srl);
$menu_list[] = sprintf('%s,move_url(\'%s\')', $menu_str, $menu_url);
// 아이디로 검색
$menu_str = Context::getLang('cmd_view_own_document');
$menu_url = sprintf('./?mid=%s&search_target=user_id&search_keyword=%s', $mid, $user_id);
$menu_list[] = sprintf('%s,move_url(\'%s\')', $menu_str, $menu_url);
}
// 다른 사람의 아이디를 클릭한 경우 (메일, 쪽지 보내기등은 다른 사람에게만 보내는거로 설정)
if($member_srl != $logged_info->member_srl) {
// 메일 보내기
$menu_str = Context::getLang('cmd_send_email');
$menu_url = sprintf('%s <%s>', $user_name, $email_address);
$menu_list[] = sprintf('%s,sendMailTo(\'%s\')', $menu_str, $menu_url);
}
// 정보를 저장
$this->add("menu_list", implode("\n",$menu_list));
}
/** /**
* @brief 로그인 되어 있는지에 대한 체크 * @brief 로그인 되어 있는지에 대한 체크
**/ **/
@ -454,59 +508,5 @@
$info->file = './'.$image_mark_file; $info->file = './'.$image_mark_file;
return $info; return $info;
} }
/**
* @brief 선택된 회원의 간단한 메뉴를 표시
**/
function getMemberMenu() {
// 요청된 회원 번호와 현재 사용자의 로그인 정보 구함
$member_srl = Context::get('member_srl');
$mid = Context::get('cur_mid');
$module = Context::get('cur_module');
$logged_info = Context::get('logged_info');
// 자신의 아이디를 클릭한 경우
if($member_srl == $logged_info->member_srl) {
$member_info = $logged_info;
// 다른 사람의 아이디를 클릭한 경우
} else {
// 회원의 정보를 구함
$member_info = $this->getMemberInfoByMemberSrl($member_srl);
}
// 변수 정리
$user_id = $member_info->user_id;
$user_name = $member_info->user_name;
$email_address = $member_info->email_address;
// menu_list 에 "표시할글,target,url" 을 배열로 넣는다
$menu_list = array();
// 게시판이나 블로그등일 경우는 특별 옵션 지정
if($mid) {
// 회원 정보 보기
$menu_str = Context::getLang('cmd_view_member_info');
$menu_url = sprintf('./?mid=%s&amp;act=dispSignUpForm&amp;member_srl=%s', $mid, $member_srl);
$menu_list[] = sprintf('%s,move_url(\'%s\')', $menu_str, $menu_url);
// 아이디로 검색
$menu_str = Context::getLang('cmd_view_own_document');
$menu_url = sprintf('./?mid=%s&amp;search_target=user_id&amp;search_keyword=%s', $mid, $user_id);
$menu_list[] = sprintf('%s,move_url(\'%s\')', $menu_str, $menu_url);
}
// 다른 사람의 아이디를 클릭한 경우 (메일, 쪽지 보내기등은 다른 사람에게만 보내는거로 설정)
if($member_srl != $logged_info->member_srl) {
// 메일 보내기
$menu_str = Context::getLang('cmd_send_email');
$menu_url = sprintf('%s <%s>', $user_name, $email_address);
$menu_list[] = sprintf('%s,sendMailTo(\'%s\')', $menu_str, $menu_url);
}
// 정보를 저장
$this->add("menu_list", implode("\n",$menu_list));
}
} }
?> ?>

View file

@ -61,7 +61,7 @@
/** /**
* @brief 회원 정보 출력 * @brief 회원 정보 출력
**/ **/
function dispMember() { function dispMemberInfo() {
$this->initNormal(); $this->initNormal();
$oMemberModel = &getModel('member'); $oMemberModel = &getModel('member');
@ -74,7 +74,7 @@
/** /**
* @brief 회원 가입 출력 * @brief 회원 가입 출력
**/ **/
function dispSignUpForm() { function dispMemberSignUpForm() {
$this->initNormal(); $this->initNormal();
$oMemberModel = &getModel('member'); $oMemberModel = &getModel('member');
@ -101,7 +101,7 @@
/** /**
* @brief 로그인 출력 * @brief 로그인 출력
**/ **/
function dispLoginForm() { function dispMemberLoginForm() {
$this->initNormal(); $this->initNormal();
// 템플릿 파일 지정 // 템플릿 파일 지정
@ -111,7 +111,7 @@
/** /**
* @brief 로그아웃 출력 * @brief 로그아웃 출력
**/ **/
function dispLogout() { function dispMemberLogout() {
$this->initNormal(); $this->initNormal();
// 템플릿 파일 지정 // 템플릿 파일 지정
@ -121,7 +121,7 @@
/** /**
* @brief 회원 목록 출력 * @brief 회원 목록 출력
**/ **/
function dispMemberList() { function dispMemberAdminList() {
// member model 객체 생성후 목록을 구해옴 // member model 객체 생성후 목록을 구해옴
$oMemberModel = &getModel('member'); $oMemberModel = &getModel('member');
@ -141,7 +141,7 @@
/** /**
* @brief 회원 관리에 필요한 기본 설정들 * @brief 회원 관리에 필요한 기본 설정들
**/ **/
function dispModuleConfig() { function dispMemberAdminConfig() {
// 설정 정보를 받아옴 (module model 객체를 이용) // 설정 정보를 받아옴 (module model 객체를 이용)
$oModuleModel = &getModel('module'); $oModuleModel = &getModel('module');
$config = $oModuleModel->getModuleConfig('member'); $config = $oModuleModel->getModuleConfig('member');
@ -162,7 +162,7 @@
/** /**
* @brief 회원 정보 출력 * @brief 회원 정보 출력
**/ **/
function dispMemberInfo() { function dispMemberAdminInfo() {
// 추가 가입폼 목록을 받음 // 추가 가입폼 목록을 받음
$oMemberModel = &getModel('member'); $oMemberModel = &getModel('member');
Context::set('extend_form_list', $oMemberModel->getCombineJoinForm($this->member_info)); Context::set('extend_form_list', $oMemberModel->getCombineJoinForm($this->member_info));
@ -173,7 +173,7 @@
/** /**
* @brief 회원 정보 입력 화면 출력 * @brief 회원 정보 입력 화면 출력
**/ **/
function dispMemberInsert() { function dispMemberAdminInsert() {
// 추가 가입폼 목록을 받음 // 추가 가입폼 목록을 받음
$oMemberModel = &getModel('member'); $oMemberModel = &getModel('member');
Context::set('extend_form_list', $oMemberModel->getCombineJoinForm($this->member_info)); Context::set('extend_form_list', $oMemberModel->getCombineJoinForm($this->member_info));
@ -185,7 +185,7 @@
/** /**
* @brief 회원 삭제 화면 출력 * @brief 회원 삭제 화면 출력
**/ **/
function dispDeleteForm() { function dispMemberAdminDeleteForm() {
if(!Context::get('member_srl')) return $this->dispContent(); if(!Context::get('member_srl')) return $this->dispContent();
$this->setTemplateFile('delete_form'); $this->setTemplateFile('delete_form');
} }
@ -193,7 +193,7 @@
/** /**
* @brief 그룹 목록 출력 * @brief 그룹 목록 출력
**/ **/
function dispGroupList() { function dispMemberAdminGroupList() {
$group_srl = Context::get('group_srl'); $group_srl = Context::get('group_srl');
if($group_srl && $this->group_list[$group_srl]) { if($group_srl && $this->group_list[$group_srl]) {
@ -207,7 +207,7 @@
/** /**
* @brief 회원 가입 목록 출력 * @brief 회원 가입 목록 출력
**/ **/
function dispJoinFormList() { function dispMemberAdminJoinFormList() {
// 멤버모델 객체 생성 // 멤버모델 객체 생성
$oMemberModel = &getModel('member'); $oMemberModel = &getModel('member');
@ -221,7 +221,7 @@
/** /**
* @brief 회원 가입 관리 화면 출력 * @brief 회원 가입 관리 화면 출력
**/ **/
function dispInsertJoinForm() { function dispMemberAdminInsertJoinForm() {
// 수정일 경우 대상 join_form의 값을 구함 // 수정일 경우 대상 join_form의 값을 구함
$member_join_form_srl = Context::get('member_join_form_srl'); $member_join_form_srl = Context::get('member_join_form_srl');
if($member_join_form_srl) { if($member_join_form_srl) {
@ -236,7 +236,7 @@
/** /**
* @brief 금지 목록 아이디 출력 * @brief 금지 목록 아이디 출력
**/ **/
function dispDeniedIDList() { function dispMemberAdminDeniedIDList() {
// 멤버모델 객체 생성 // 멤버모델 객체 생성
$oMemberModel = &getModel('member'); $oMemberModel = &getModel('member');

View file

@ -1,4 +1,4 @@
<filter name="insert" module="member" act="procInsert" extend_filter="member.getJoinFormList" confirm_msg_code="confirm_submit"> <filter name="insert" module="member" act="procMemberInsert" extend_filter="member.getJoinFormList" confirm_msg_code="confirm_submit">
<form> <form>
<node target="user_id" required="true" minlength="3" maxlength="20" filter="userid" /> <node target="user_id" required="true" minlength="3" maxlength="20" filter="userid" />
<node target="password1" required="true" minlength="6" maxlength="20" /> <node target="password1" required="true" minlength="6" maxlength="20" />

View file

@ -1,4 +1,4 @@
<filter name="login" module="board" act="procLogin"> <filter name="login" module="board" act="procMemberLogin">
<form> <form>
<node target="user_id" required="true" filter="user_id"/> <node target="user_id" required="true" filter="user_id"/>
<node target="password" required="true" /> <node target="password" required="true" />

View file

@ -1,4 +1,4 @@
<filter name="logout" module="board" act="procLogout"> <filter name="logout" module="board" act="procMemberLogout">
<form /> <form />
<response> <response>
<tag name="error" /> <tag name="error" />

View file

@ -21,7 +21,7 @@
</tr> </tr>
<tr> <tr>
<td colspan="2"> <td colspan="2">
<a href="#" onclick="location.href='{getUrl('act','dispSignUpForm')}'">{$lang->cmd_signup}</a> <a href="#" onclick="location.href='{getUrl('act','dispMemberAdminSignUpForm')}'">{$lang->cmd_signup}</a>
</td> </td>
</tr> </tr>
</table> </table>

View file

@ -1,21 +1,16 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<skin> <skin>
<title xml:lang="ko">회원 기본 스킨</title> <title xml:lang="ko">회원 기본 스킨</title>
<title xml:lang="en">Member default skin</title>
<maker email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28"> <maker email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
<name xml:lang="ko">제로</name> <name xml:lang="ko">제로</name>
<name xml:lang="en">zero</name>
<description xml:lang="ko">회원모듈의 default스킨</description> <description xml:lang="ko">회원모듈의 default스킨</description>
<description xml:lang="en">default skin of the member module</description>
</maker> </maker>
<colorset> <colorset>
<color name="normal" src="screenshot/normal.gif"> <color name="normal" src="screenshot/normal.gif">
<title xml:lang="ko">기본</title> <title xml:lang="ko">기본</title>
<title xml:lang="en">normal</title>
</color> </color>
<color name="deep" src="screenshot/blue.gif"> <color name="deep" src="screenshot/blue.gif">
<title xml:lang="ko">이상한거</title> <title xml:lang="ko">이상한거</title>
<title xml:lang="en">deep</title>
</color> </color>
</colorset> </colorset>
<skin> <skin>

View file

@ -1,2 +1,2 @@
<filter name="delete_image_mark" module="member" act="procDeleteImageMark" confirm_msg_code="confirm_delete" /> <filter name="delete_image_mark" module="member" act="procMemberDeleteImageMark" confirm_msg_code="confirm_delete" />

View file

@ -1,2 +1 @@
<filter name="delete_image_name" module="member" act="procDeleteImageName" confirm_msg_code="confirm_delete" /> <filter name="delete_image_name" module="member" act="procMemberDeleteImageName" confirm_msg_code="confirm_delete" />

View file

@ -1,4 +1,4 @@
<filter name="delete_member" module="member" act="procDelete" confirm_msg_code="confirm_delete"> <filter name="delete_member" module="member" act="procMemberAdminDelete" confirm_msg_code="confirm_delete">
<form> <form>
<node target="page" /> <node target="page" />
</form> </form>

View file

@ -1,4 +1,4 @@
<filter name="insert" module="member" act="procInsert" extend_filter="member.getJoinFormList" confirm_msg_code="confirm_submit"> <filter name="insert" module="member" act="procMemberAdminInsert" extend_filter="member.getJoinFormList" confirm_msg_code="confirm_submit">
<form> <form>
<node target="user_id" required="true" minlength="3" maxlength="20" filter="userid" /> <node target="user_id" required="true" minlength="3" maxlength="20" filter="userid" />
<node target="user_name" required="true" minlength="2" maxlength="20" /> <node target="user_name" required="true" minlength="2" maxlength="20" />

View file

@ -1,4 +1,4 @@
<filter name="insert_config" module="member" act="procInsertConfig" confirm_msg_code="confirm_submit"> <filter name="insert_config" module="member" act="procMemberAdminInsertConfig" confirm_msg_code="confirm_submit">
<form /> <form />
<response> <response>
<tag name="error" /> <tag name="error" />

View file

@ -1,4 +1,4 @@
<filter name="insert_denied_id" module="member" act="procInsertDeniedID" confirm_msg_code="confirm_submit"> <filter name="insert_denied_id" module="member" act="procMemberAdminInsertDeniedID" confirm_msg_code="confirm_submit">
<form> <form>
<node target="user_id" required="true" /> <node target="user_id" required="true" />
</form> </form>

View file

@ -1,4 +1,4 @@
<filter name="insert_group" module="member" act="procInsertGroup" confirm_msg_code="confirm_submit"> <filter name="insert_group" module="member" act="procMemberAdminInsertGroup" confirm_msg_code="confirm_submit">
<form> <form>
<node target="title" required="true" /> <node target="title" required="true" />
</form> </form>

View file

@ -1,4 +1,4 @@
<filter name="insert_join_form" module="member" act="procInsertJoinForm" confirm_msg_code="confirm_submit"> <filter name="insert_join_form" module="member" act="procMemberAdminInsertJoinForm" confirm_msg_code="confirm_submit">
<form> <form>
<node target="column_type" required="true" /> <node target="column_type" required="true" />
<node target="column_name" required="true" filter="alpha"/> <node target="column_name" required="true" filter="alpha"/>

View file

@ -1,4 +1,4 @@
<filter name="update_denied_id" module="member" act="procUpdateDeniedID"> <filter name="update_denied_id" module="member" act="procMemberAdminUpdateDeniedID">
<form> <form>
<node target="user_id" required="true" /> <node target="user_id" required="true" />
<node target="mode" required="true" /> <node target="mode" required="true" />

View file

@ -1,4 +1,4 @@
<filter name="update_group" module="member" act="procUpdateGroup"> <filter name="update_group" module="member" act="procMemberAdminUpdateGroup">
<form> <form>
<node target="group_srl" required="true" /> <node target="group_srl" required="true" />
</form> </form>

View file

@ -1,4 +1,4 @@
<filter name="update_member_join_form" module="member" act="procUpdateJoinForm"> <filter name="update_member_join_form" module="member" act="procMemberAdminUpdateJoinForm">
<form> <form>
<node target="member_join_form_srl" required="true" /> <node target="member_join_form_srl" required="true" />
<node target="mode" required="true" /> <node target="mode" required="true" />

View file

@ -1,11 +1,8 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<module version="0.1"> <module version="0.1">
<title xml:lang="ko">메세지</title> <title xml:lang="ko">메세지</title>
<title xml:lang="en">message</title>
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28"> <author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
<name xml:lang="ko">제로</name> <name xml:lang="ko">제로</name>
<name xml:lang="en">zero</name> <description xml:lang="ko">오류 메세지 관리 모듈</description>
<description xml:lang="ko">메세지 관리 모듈</description>
<description xml:lang="en">message</description>
</author> </author>
</module> </module>

View file

@ -3,7 +3,7 @@
<grants /> <grants />
<actions> <actions>
<action name="dispMessage" type="view" standalone="true" index="true"/> <action name="dispMessage" type="view" standalone="true" index="true"/>
<action name="dispConfig" type="view" standalone="true" admin_index="true"/> <action name="dispMessageAdminConfig" type="view" standalone="true" admin_index="true"/>
<action name="procInsertConfig" type="controller" standalone="true" /> <action name="procMessageAdminInsertConfig" type="controller" standalone="true" />
</actions> </actions>
</module> </module>

View file

@ -11,6 +11,12 @@
* @brief 설치시 추가 작업이 필요할시 구현 * @brief 설치시 추가 작업이 필요할시 구현
**/ **/
function moduleInstall() { function moduleInstall() {
// action forward에 등록 (관리자 모드에서 사용하기 위함)
$oModuleController = &getController('module');
$oModuleController->insertActionFoward('message', 'view', 'dispMessage');
$oModuleController->insertActionFoward('message', 'view', 'dispMessageAdminConfig');
$oModuleController->insertActionFoward('message', 'controller', 'procMessageAdminInsertConfig');
return new Object(); return new Object();
} }

View file

@ -16,7 +16,7 @@
/** /**
* @brief 설정 * @brief 설정
**/ **/
function procInsertConfig() { function procMessageAdminInsertConfig() {
// 기본 정보를 받음 // 기본 정보를 받음
$args->skin = Context::get('skin'); $args->skin = Context::get('skin');

View file

@ -16,7 +16,7 @@
/** /**
* @brief 메세지 출력 * @brief 메세지 출력
**/ **/
function dispContent() { function dispMessage() {
// 설정 정보를 받아옴 (module model 객체를 이용) // 설정 정보를 받아옴 (module model 객체를 이용)
$oModuleModel = &getModel('module'); $oModuleModel = &getModel('module');
$config = $oModuleModel->getModuleConfig('rss'); $config = $oModuleModel->getModuleConfig('rss');
@ -34,7 +34,7 @@
/** /**
* @brief 설정 * @brief 설정
**/ **/
function dispConfig() { function dispMessageAdminConfig() {
// 스킨 목록을 구해옴 // 스킨 목록을 구해옴
$oModuleModel = &getModel('module'); $oModuleModel = &getModel('module');
$skin_list = $oModuleModel->getskins($this->module_path); $skin_list = $oModuleModel->getskins($this->module_path);