웹마스터 팁
[전면수정]회원가입시 기본 정보공개 여부 체크하기(1) 모듈부분
2008.02.20 02:44
0.2.9 안정화 버전에 맞게 수정한다는 것이 잘못해서 지워졌습니다. 제가 오늘 수정하면서 보니 파일 경로를 잘못 입력한 것도 몇군데 있더군요. 맞게 수정은 했는데 또 틀린곳이 업는지 모르겠네요.
%%%%팁을 적용하신후 관리자 페이지>모듈에 가셔서 반드시 업데이트 해주세요.%%%%%
%%%%%기본적으로 비회원은 무조건 기본정보 비공개이고요. 자신의 정보를 비공개 설정을 하였더라도 본인과 최고 관리자에게는 무조건 공개 입니다..%%%%%%%%%%%%
1. zbxe/moudles/member/member.class.phpline 123 부근에 색 소스를 삽입한다.
/**
* @brief 설치가 이상이 없는지 체크하는 method
**/
function checkUpdate() {
$oDB = &DB::getInstance();
$oModuleModel = &getModel('module');
if(!$oDB->isColumnExists("member","allow_email")) return true;
if(!$oDB->isColumnExists("member","allow_homepage")) return true;
if(!$oDB->isColumnExists("member","allow_blog")) return true;
if(!$oDB->isColumnExists("member","allow_birthday")) return true;
<<부연설명>> 관리자 페이지에서 업데이트로 DB에 삽입하고자하는 필드가 있는지를 체크함.line 171 부근에 소스를 삽입한다.
/**
* @brief 업데이트 실행
**/
function moduleUpdate() {
$oDB = &DB::getInstance();
// $oModuleModel = &getModel('module');
//$oModuleController = &getController('module');
if(!$oDB->isColumnExists("member","allow_email")) $oDB->addColumn('member',"allow_email","char",1,"Y");
if(!$oDB->isColumnExists("member","allow_homepage")) $oDB->addColumn('member',"allow_homepage","char",1,"Y");
if(!$oDB->isColumnExists("member","allow_blog")) $oDB->addColumn('member',"allow_blog","char",1,"Y");
if(!$oDB->isColumnExists("member","allow_birthday")) $oDB->addColumn('member',"allow_birthday","char",1,"Y");
<<부연설명>> 관리자 페이지에서 업데이트로 DB에 필드를 삽입2. zbxe/moudles/member/member.admin.controller.php
line19부근에 소스를 삽입한다.
function procMemberAdminInsert() {
// 필수 정보들을 미리 추출
$args = Context::gets('member_srl','user_id','user_name','nick_name','homepage','blog','birthday','email_address','password','allow_mailing','allow_message',
'allow_email','allow_blog','allow_homepage','allow_birthday'+ '+ ','denied','is_admin','description','group_srl_list','limit_date');3. zbxe/moudles/member/member.controller.php
1) line685부근에 소스를 삽입한다.
/**
* @brief 회원 가입
**/
function procMemberInsert() {
$oModuleModel = &getModel('module');
$config = $oModuleModel->getModuleConfig('+ 'member');// 관리자가 회원가입을 허락하였는지 검사
if($config->enable_join != 'Y'+ ') return $this->stop('msg_signup_disabled');// 약관에 동의하였는지 검사 (약관이 있을 경우만)
if($config->agreement && Context::get('accept_agreement')!='Y') return $this->stop('msg_accept_agreement');
// 필수 정보들을 미리 추출
$args = Context::gets('user_id','+ 'user_name','nick_name','homepage','blog','birthday','email_address','password','allow_mailing','allow_message',
'allow_email','allow_blog','allow_homepage','allow_birthday'+ ');
$args->member_srl = getNextSequence();
2) line 729 부근에 소스를 삽입한다.
/**
* @brief 회원 정보 수정
**/
function procMemberModifyInfo() {
if(!Context::get('is_logged')) return $this->stop('msg_not_logged'+ ');
// 필수 정보들을 미리 추출
$args = Context::gets('user_name','nick_name','homepage'+ ','blog','birthday','email_address','allow_mailing','allow_message',
'allow_email','allow_blog','allow_homepage','allow_birthday');3) line1357 부근에 소스를 삽입한다.
/**
* @brief member 테이블에 사용자 추가
**/
function insertMember($args, $password_is_hashed = false) {
// trigger 호출 (before)
$output = ModuleHandler::triggerCall('member.insertMember', 'before', $args);
if(!$output->toBool()) return $output;// 멤버 설정 정보에서 가입약관 부분을 재확인
$oModuleModel = &getModel('module');
$config = $oModuleModel->getModuleConfig('member');$logged_info = Context::get('logged_info'+ ');
// 임시 제한 일자가 있을 경우 제한 일자에 내용 추가
if($config->limit_day) $args->limit_date = date("YmdHis", time()+$config->limit_day*60*60*24);// 입력할 사용자의 아이디를 소문자로 변경
$args->user_id = strtolower($args->user_id);
// 필수 변수들의 조절
if($args->allow_mailing!='Y') $args->allow_mailing = 'N';
if($args->allow_email!='Y') $args->allow_email = 'N';
if($args->allow_blog!='Y') $args->allow_blog = 'N';
if($args->allow_homepage!='Y') $args->allow_homepage = 'N';
if($args->allow_birthday!='Y') $args->allow_birthday = 'N';
if(!in_array($args->allow_message, array('Y','N','F'))) $args->allow_message = 'Y';4). line 1468 부근에 소스를 삽입한다.
/**
* @brief member 정보 수정
**/
function updateMember($args) {
// trigger 호출 (before)
$output = ModuleHandler::triggerCall('member.updateMember', 'before', $args);
if(!$output->toBool()) return $output;// 모델 객체 생성
$oMemberModel = &getModel('member');$logged_info = Context::get('logged_info');
// 수정하려는 대상의 원래 정보 가져오기
$member_info = $oMemberModel->getMemberInfoByMemberSrl($args->member_srl);
if(!$args->user_id) $args->user_id = $member_info->user_id;// 필수 변수들의 조절
if($args->allow_mailing!='Y') $args->allow_mailing = 'N';
if($args->allow_email!='Y') $args->allow_email = 'N';
if($args->allow_blog!='Y') $args->allow_blog = 'N';
if($args->allow_homepage!='Y') $args->allow_homepage = 'N';
if($args->allow_birthday!='Y') $args->allow_birthday = 'N';
if(!in_array($args->allow_message, array('Y','N','F'))) $args->allow_message = 'Y';4. zbxe/moudles/member/member.model.php
line65 부근에 소스를 삽입한다.
// 다른 사람의 아이디를 클릭한 경우
if($member_srl != $logged_info->member_srl) {if($member_info->allow_email!='N' || $logged_info->is_admin == 'Y'){// 메일 보내기
$menu_str = Context::getLang('cmd_send_email');
//$menu_url = sprintf('%s <%s>', $email_address, $user_name);
$menu_url = sprintf('%s', $email_address);
$menu_list[] = sprintf('%s,%s,sendMailTo(\'%s\')', Context::getRequestUri().'/modules/member/tpl/images/icon_sendmail.gif', $menu_str, $menu_url);
}}// 홈페이지 보기
if($member_info->homepage){if($member_info->allow_homepage!='N' || $member_srl == $logged_info->member_srl || $logged_info->is_admin == 'Y'){ $menu_list[] = sprintf("%s,%s,winopen('%s')", Context::getRequestUri().'/modules/member/tpl/images/icon_homepage.gif',Context::getLang('homepage'), $member_info->homepage);}}// 블로그 보기
if($member_info->blog){if($member_info->allow_blog!='N' || $member_srl == $logged_info->member_srl || $logged_info->is_admin == 'Y'){ $menu_list[] = sprintf("%s,%s,winopen('%s')", Context::getRequestUri().'/modules/member/tpl/images/icon_blog.gif', Context::getLang('blog'), $member_info->blog);}}5. zbxe/moudles/member/queries/updateMember.xml
line 15 아래에 다음을 삽입한다.
<column name="allow_email" var="allow_email" default="Y" />
<column name="allow_homepage" var="allow_homepage" default="Y" />
<column name="allow_blog" var="allow_blog" default="Y" />
<column name="allow_birthday" var="allow_birthday" default="Y" />6.zbxe/moudles/member/quries/insertMember.xml
line 17아래에 다음을 삽입한다
<column name="allow_email" var="allow_email" default="Y" />
<column name="allow_homepage" var="allow_homepage" default="Y" />
<column name="allow_blog" var="allow_blog" default="Y" />
<column name="allow_birthday" var="allow_birthday" default="Y" />
<column name="allow_message" var="allow_message" default="Y" />7. 이 이외의 바뀌는 것은 "SKIN"이 바뀐 부분으로 스킨으로 올리 겠습니다.
- [2008/02/17] 웹마스터 팁 [전면수정]회원가입시 기본 정보공개 여부 체크하기(2) 스킨부분
댓글 5
-
gnee
2008.02.20 10:34
-
대암지기
2008.02.20 15:18
2월 19일 이전에 올린 파일은 경로가 잘못적힌 파일이 몇개 있는걸 0.2.9 안정화 버전에 수정하는 과정에서 발견을 해서 아차 싶었는데 잘 적용 되었다니 다행이네요.
-
안형진
2008.02.21 20:26
소스 공개해 주셔서 감사합니다.
근데 오타가 있는듯 합니다.
1. zbxe/moudle/member/member.class.php line 파일에서..
----------------------------------------------------------
/**
* @brief 업데이트 실행
**/
function moduleUpdate() {
$oDB = &DB::getInstance();
$oModuleModel = &getModel('module');
/$oModuleController = &getController('module');
-----------------------------------------------------
위에 카피한 코드 맨 아랫줄요..
"/$oModuleController = &getController('module');" 에서
맨앞에 '/' 가 오타 인듯 싶어서요..
잘모르지만 이것 때문에 페이지가 안뜬것 같아서 지웠더니 페이지는 보이긴 하는데요.
'/' 이거 지워서 문제가 생기지는 않겠지요?
암튼 잘 사용하겠습니다. ^^ -
대암지기
2008.02.21 22:54
$oModuleModel = &getModel('module');
$oModuleController = &getController('module');
위의 두함수의 답변을 제로님의 답변 인용으로 대신 하겠습니다,
%%%%% 질의 내용 %%%%%
2. member.class.php 파일에서 아래와 같이 적용해서 사용해도 문제가 없는지 궁금합니다.
function checkUpdate(){
$oDB = &DB::getInstance();
$oModuleModel = &getModel('module');
$oModuleController = &getController('module');
내용
}
function moduleUpdate() {
$oDB = &DB::getInstance();
$oModuleModel = &getModel('module');
$oModuleController = &getController('module');
내용}
%%%%%% 제로님의 답변 내용 %%%%
현재로서는 checkUpdate에서는 module Controller가, moduleUpdate에서는 module model가 사용되지 않지만 선언하는 것은 문제가 없습니다. -
대암지기
2008.02.27 15:55
항목 6번 기존의<column name="allow_message" var="allow_message" default="Y" />칼럼과 중복되어 수정 했습니다.
칼럼이 중복되면 회원 가입시 에러가 발생합니다.
제목 | 글쓴이 | 날짜 |
---|---|---|
LI UL OL 이 페이지에서 적용이 안될경우 [1] | 찐빵아저씨 | 2008.01.30 |
file 업로드 않될때, 메뉴생성및수정이 않될때 [2] | plruto | 2008.01.31 |
각 OS별 브라우저별 자신의 웹사이트 보기??? [12] | 세바스챤_™ | 2008.01.31 |
리눅스 호환 호스팅에서 zbxe 전체 업로드 후 디렉토리 이동시키기... [4] | 소마세월 | 2008.02.02 |
flash <=> xe menu 연동 [7] | tsana | 2008.02.03 |
본인외 회원정보 제어 [1] | edgarkim | 2008.02.03 |
로그인후 보여줄 페이지 설정 [4] | 권인해 | 2008.02.11 |
드림위버 등에서 레이아웃 편집시에.. [3] | 은진아빠 | 2008.02.12 |
전에 누군가 찾았던 것인데..새로고침시 현재페이지로 [2] | 강영곤 | 2008.02.14 |
zbXE User Guide - 3차수정 [3] | 캬캬캬캬캬캬 | 2008.02.16 |
[전면수정]회원가입시 기본 정보공개 여부 체크하기(2) 스킨부분 | 대암지기 | 2008.02.17 |
웹표준체크 [4] | tsana | 2008.02.19 |
제로보드 XE 0.2.9버젼 업그레이드후 글보기할때 레이아웃 약간깨짐현상이 일어날때... [2] | 카니엘 | 2008.02.19 |
[전면수정]회원가입시 기본 정보공개 여부 체크하기(1) 모듈부분 [5] | 대암지기 | 2008.02.20 |
글을 읽을때 마다 조회수 증가시키기 (0.2.9수정#3) [1] | SKYMARU | 2008.02.20 |
잡다한 2차 사용하시는분들 중에 페이지 수정버튼이 클릭안될때.. [6] | 수아기 | 2008.02.22 |
외부 페이지에서 변수와 값 사용하기(초보) [2] | 기범현지아빠 | 2008.02.22 |
게시물 목록의 번호를 순서대로 출력 [6] | 지연아빠 | 2008.02.23 |
[정식 버전 1.0.0][완결편]회원가입시 기본 정보공개 여부 체크하기(안내) [2] | 대암지기 | 2008.02.24 |
[정식 버전 1.0.0][완결편]회원가입시 기본 정보공개 여부 체크하기(1) 모듈부분 [4] | 대암지기 | 2008.02.24 |
대암지기님 감사합니다.^^ 잘 적용되었습니다