묻고답하기
특정 페이지에 가면 바로 그룹 추가?
2012.05.26 16:43
특정 페이지에 가면 회원이고 그룹이 [정회원]에 속하지 않는다면 바로 [정회원] 이라는 그룹 추가가 가능한가요?
현재 XE에서 test라는 페이지를 생성하고 이 페이지 설정에서 외부페이지로 /test.php 를 불러왔다고 가정하고
한 회원이 로그인을 한 상태로 http://사이트주소/xe/test 로 접속하면 이 때 바로
특정 그룹을 추가해주려면 어떻게 해야 할까요? (기존의 그룹을 삭제하고 추가할 필요 없이 그냥 추가만요.. ㅜ)
소스와 곁들여주시면 정말 고맙겠습니다..!!!!
혹시 몰라서 그룹 변경하는 애드온에서 아래 부분도 잘라왔습니다.
참고로 저는 그룹 변경이 아니라 추가입니다..
그리고 해당 페이지에 여러번 접속해도 그룹이 중복되면 안됩니다.. (즉 계속 그룹이 추가되면 안된다는 뜻입니다..ㅜ)
//글을 default group 회원이 글을 쓸때...
if(in_array($act,$act_write) && !in_array($args->with_group,$group_list))
{
$mid_list=$addon_info->mid_list;
$args->module_srls = null;
if(count($mid_list)) {
$oModuleModel= &getModel('module');
$module_srls = $oModuleModel->getModuleSrlByMid($mid_list);
if(count($module_srls)) $args->module_srls = implode(',',$module_srls);
else $args->module_srls = null;
}
$hello = executeQueryArray('addons.hello_member.getMyHello', $args);
$hello_count = $hello->data[0]->count;
if($args->documents <= $hello_count)
{
//default group을 정회원그룹으로 변경
$obj->target_group_srl = $args->with_group;
$obj->present_group_srl = $args->default_group;
$obj->site_srl = $args->site_srl;
$obj->member_srl = $args->member_srl;
if($addon_info->update_group !='N' && $args->site_srl ==0) $query_id='addons.hello_member.updateGroup';
else $query_id='addons.hello_member.insertGroup';
$output = executeQuery($query_id, $obj);
if($addon_info->give_point) {
$oPointController = &getController('point');
$oPointModel = &getModel('point');
$owner_point = $oPointModel->getPoint($obj->member_srl, true);
$oPointController->setPoint($obj->member_srl, $owner_point+$addon_info->give_point);
}
if($addon_info->send_message =='Y') {
if($addon_info->title) $title = cut_str(strip_tags($addon_info->title), 40);
if($addon_info->msg_content) $msg_content = $addon_info->msg_content;
$oCommunicationController = &getController('communication');
$oCommunicationController->sendMessage($obj->member_srl, $obj->member_srl, $title, $msg_content, false);
}
}
}
<block cond="$is_logged&&!$logged_info->group_list[3]">
{@
$date = date("YmdHis");
$oDB = &DB::getInstance();
$query = $oDB->_query('insert into xe_member_group_member values(0,3,'.$logged_info->member_srl.',"'.$date.'")');
}
</block>
여기서 붉은 색 숫자 3은 회원그룹번호......(특별히 손대지 않았다면 정회원 그룹번호는 3)
처음 db를 설치할 때, prefix를 xe로 하지 않았다면 파란 글씨 xe를 설정한 prefix로 수정