웹마스터 팁
프로필이미지, 이미지마크, 이미지이름 수정, 추가시 포인트 삭감
2009.11.02 17:52
이걸 팁이라고 올려도 될런지 모르겠군요 -ㅅ-;
다른 모듈의 model, controller 사용하는 법을 아예 모르시는 초보분들을 위해 일단 올려봅니다.
※주의 - 본 게시물 내용은 향후 해당 모듈이 업데이트 될시엔 문제가 발생할 수 있으니 적당히 알아서들 쓰시길 ^^;; (무책임 ㅎㄷㄷ)
module/member/member.controller.php 파일을 수정합니다.
/**
* @brief 프로필 이미지 추가
**/
function procMemberInsertProfileImage() {
// 정상적으로 업로드 된 파일인지 검사
$file = $_FILES['profile_image'];
if(!is_uploaded_file($file['tmp_name'])) return $this->stop('+
'+
'msg_not_uploaded_profile_image');
// 회원 정보를 검사해서 회원번호가 없거나 관리자가 아니고 회원번호가 틀리면 무시
$member_srl = Context::get('member_srl');
if(!$member_srl) return $this->stop('msg_not_uploaded_profile_image');
$logged_info = Context::get('logged_info');
if($logged_info->is_admin != 'Y' && $logged_info->member_srl != $member_srl) return $this->stop('msg_not_uploaded_profile_image');
// 회원 모듈 설정에서 이미지 이름 사용 금지를 하였을 경우 관리자가 아니면 return;
$oModuleModel = &getModel('module');
$config = $oModuleModel->getModuleConfig('member');
if($logged_info->is_admin != 'Y' && $config->profile_image != '+
'Y') return $this->stop('msg_not_uploaded_profile_image');
$this->insertProfileImage($member_srl, $file['tmp_name']);
// 포인트 삭감 추가
$oPointController=&getController('point');
$oPointController->setPoint($member_srl,2000,'minus');
// 페이지 리프레쉬
$this->setRefreshPage();
}
/**
* @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');
$this->insertImageName($member_srl, $file['tmp_name']);
// 포인트 삭감 추가
$oPointController=&getController('point'+
');
$oPointController->setPoint($member_srl,1000,'minus');
// 페이지 리프레쉬
$this->setRefreshPage();
}
/**
* @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');
$this->insertImageMark($member_srl, $file['tmp_name']);
// 포인트 삭감 추가
$oPointController=&getController('point');
$oPointController->setPoint($member_srl,500,'minus');
// 페이지 리프레쉬
$this->setRefreshPage();
}
위와 같이 3개의 function을 찾으셔서 리프레쉬 바로 위에 아래의 두줄을 추가해주시면 됩니다. $member_srl 다음에 오는 숫자가
차감하길 원하는 포인트 입니다. 이 두줄 응용하시면 다른곳에서 포인트를 추가하실 수 도, 삭감하실 수 도 있습니다.
// 포인트 삭감 추가
$pValue='500';
$oPointController=&getController('point');
$oPointModel=&getModel('point');
$point=$oPointModel->getPoint($member_srl);
if($point<$pValue){
$oPointController->setPoint($member_srl,$point,'minus');
}else{
$oPointController->setPoint($member_srl,$pValue,'minus');
}
----------------------------------------------------------------------------------------------------------
내용추가합니다. 젤 위의 예제 코드대로라면 차감 포인트 이하의 포인트를 가진 회원들은 -가 되버리거나 에러나겠죠-
바로 위 코드처럼 수정해주세요- 포인트가 모지라면 있는거 다 깍고 0됩니다.
이상 끝입니다.
XE는 각 모듈마다 조금씩은 틀릴 수 있지만,
만약 '아- 저모듈에 있는 저 기능을 쓰고 싶다' 할때는 필요에 따라 getModel('모듈명'), getController('모듈명') 이런식으로
가져다 쓸 수 있습니다. 저처럼 프로그래머라고는 부를 수 없는 허접한 코더들에겐 유용한 정보가 되길 바랍니다. ㅎㅎ
클래스 목록이 정리되어있는 페이지입니다. http://doc.xpressengine.com/annotated.html
열심히들 공부합시다- 아싸-
| 제목 | 글쓴이 | 날짜 |
|---|---|---|
| 하나의 게시물을 각각 다르게 보이도록 만드는 방법 2 [5] | 된장맛껌 | 2009.11.16 |
|
관리자에서 회원리스트(남성,여성리스트 분류해서 보기)
[5]
| 늘푸른이 | 2010.08.13 |
| 왕초보용 xe 1.2.0 버전 사용 기본 레이아웃 좌측에 배너 삽입 방법. [7] | 『june™』 | 2009.03.20 |
| 주소끝에 /zbxe 안적어도 홈페이지에 바로 들어오게 하는법?? [10] | 박태훈922 | 2008.02.07 |
| 게시판 글쓸때 에디터에 기본값(기본내용) 넣는방법 | 놋네눨느. | 2010.09.21 |
| 티스토리 블로그에 댓글 작성시 프로필 이미지 나오게 하기 | 도라란 | 2010.09.17 |
| 어느날 로그인이 안된신다면..? 이걸 점검을.. | 청개굴이 | 2010.09.13 |
| 게시판 가로조절(width) 및 가운데로 이동 태그 [4] | 박상욱860 | 2008.07.12 |
| 회원과 비회원 구분하여 출력하기 [6] | NEARSTORY | 2009.12.26 |
|
언어선택옆에 언어별국기 출력하기
[6]
| 팔공산 | 2010.09.17 |
| 받은쪽지에서 아이디 출력을 제거하고 닉네임만 뜨게하기. [4] | XEMALL | 2010.09.25 |
| 홈페이지에 BGM달기 [1] | SHIN군 | 2010.01.18 |
| IE9 작업표시줄 웹 어플리케이션 속성 만들기 [1] | SeoSeungHyun | 2010.09.17 |
|
제로보드의 아이콘을 내 맘대로 변경하기...(2)
[2]
| winter548 | 2009.03.23 |
| XE 전체를 백업 / 복원하기 (계정 백업 및 복원 방법) [7] | Gekkou | 2010.02.16 |
|
레이아웃설정에 언어팩추가하기
[8]
| 팔공산 | 2010.09.16 |
| layout skin 제작시 info.xml도 잘 보세요 [1] | 바람처럼.. | 2007.08.21 |
| 프로필이미지, 이미지마크, 이미지이름 수정, 추가시 포인트 삭감 [1] | lattente | 2009.11.02 |
|
게시판 링크 무조건 새창으로 뜨게 하기
[5]
| 그분 | 2009.08.29 |
| 아무 에러 없이 로그인이 되지 않을 시 해결법 [1] | SMaker | 2010.09.13 |
감사합니다.. 도움이 되었습니다...