<?php
if(!defined('__XE__')) exit();
if($this->act=='procMemberLeave')
{
$oMemberModel = getModel('member');
$signoutMemberInfo = $oMemberModel->getMemberInfoByMemberSrl(질문1);
$group = array('정회원','정회원+','우수회원','특별회원','관리그룹');
foreach($group as $val)
{
if(in_array($val, $signoutMemberInfo->group_list))
{
$block_ok = true;
break;
}
}
질문2 : 금지닉네임에 넣는 코드 구현
$args->nick_name = $nick_name;
$args->description = '';
$qOut = executeQuery('member.insertDeniedNickName', $args);
}
준회원은 활동 이력이 아예 없는 회원이라 금지 닉네임에 넣지 않고 있습니다.
애드온으로 위와 같이 구현하고 싶은데요.
로그인 회원이 아닌 다른 관리자가 회원을 삭제하고 하는 경우가 많아서 실제 탈퇴(삭제) 되는 회원번호를 가져와서 처리하는 부분이 필요합니다. 모듈에서는 함수에 (obj) 가 있고 $obj->member_srl 이렇게 하던데 지금 애드온에서는..... (질문1)
그리고 여기서 구해진 회원의 닉네임을 시제 금지닉네임에 넣어주는 것이 필요한데 여기는 전혀 모르겠네요. (질문2)
(질문3)
지금 보니 procMemberLeave act 자체가 잘못되었을 수도 있다고 의심이 되는데요. 이 act가 혹시 회원이 실제 탈퇴할때만 사용되는 act 인가요? 그럼 관리자가 삭제하던 다른 모듈에서 삭제하던 회원이 삭제되는 것 까지 모두 적용되는 act는 따로 있나요?
회원 삭제만 해도 procMemberLeave(탈퇴), procMemberAdminDelete(관리자 단일회원 삭제), procMemberAdminSelectedMemberManage(관리자 다중회원 삭제) 3개의 act를 사용하는데요, 각각 member_srl를 가져오는 방법이 다르기에 애드온으로 처리시 복잡해질 수밖에 없습니다. 또한 코어 이외 서드파티 모듈에서 deleteMember를 직접 호출하는경우 대응할수 없게 됩니다.
결국 member.deleteMember before 트리거에서 작업하는것이 제일 편리한데요, 라이믹스는 addTriggerFunction 함수를 통해 애드온에서도 트리거 사용이 가능하지만 XE는 아직 불가능하므로 모듈로 작업하셔야 합니다.
시간이 난다면 작업해 보겠습니다만 큰 기대는 하지 말아주세요(요즘 본업으로 매우 바빠서 다른걸 건드릴 시간이 있을지 모르겠네요)