웹마스터 팁

 이걸 팁이라고 올려도 될런지 모르겠군요 -ㅅ-;

다른 모듈의 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


열심히들 공부합시다- 아싸-

제목 글쓴이 날짜
갑자기 관리자 페이지가 안보이거나 330 오류가 날 때는 이렇게 해결! [2] file 세라오빠 2011.04.13
XE 홈피에 예쁜 음악BGM 넣는 방법(프레임 분리형 플래시BGM) 푸른커튼2 2011.04.18
모듈 선택기에서 선택이 안되는 문제해결. 모글리만세 2011.04.22
eAccelerator와의 호환성 문제 [2] 7시내고향 2011.04.22
관리자페이지 회원목록을 일반페이지에서 사용하기(수정) [4] file 늘푸른이 2011.04.27
페이지수정이 안될때 [2] gob4deng2 2011.04.30
회원 관리자 두기.. DaKi 2011.05.09
도와 주세요!!! Explorer 6에서는 제대로 보이는데 Explorer 7 이상에서는 사진이 안보여요 [2] 이영규616 2011.05.12
XE core 1.4.5.7 코드 오류,(상자 위젯 배경 안될때) [2] 홍성빈닌 2011.05.17
'왕' '왕초보'를 위한 ZB4-->XE버전으로 이전시 가장 간단한 순서 [1] 쭈영 2011.05.17
XE 프로젝트 호스팅 SVN 내용을 Google 프로젝트 호스팅으로 이전하기 file 난다날아 2011.05.17
XE 첨부파일 문제로 게시판이 백지화 될때... [1] 똑디 2011.05.20
웹폰트의 개념과 사용법 [2] hika1 2011.05.26
XE를 홈페이지 루트에 설치하여 BGM 설치가 불가능할 때... [6] Firstlove 2011.05.29
홈페이지 접속시 XE를 바로 실행하기(XE를 /xe/ 폴더에 설치한 경우) [5] Firstlove 2011.06.12
RefTagger (영어 성경 본문 출력기)를 설치하는 쉬운 방법 유샤인 2011.07.23
도라란님의 팁에 추가하여 MP3와 동영상 파일도 막고 싶을 경우.. [4] Canto 2011.07.23
모바일 메인에서 쓰는 기능을 삽입할려면 어떻게 해야 할까요?> 최상순480 2011.08.02
닉네임이나 이름의 뒷부분을 ** 처리로 숨기고픈 경우 [2] sejin7940 2011.08.06
게시글 주소 아주 짧게 줄이기 [11] 웹 엔진 2011.08.07