로그인후 회원그룹에 따른 페이지 이동
본문
G5로 만든 사이트에서 첫 화면을 로그인 창이 뜨게하고, 로그인을 하면
회원그룹에 따라 자신이 속한 그룹의 게시판으로 이동하게 하고 싶습니다.
즉, 로그인했을때 그룹에 따라 이동할 주소를 다르게 하고 싶은데요.
즉, 각 그룹에 그룹아이디로 된 게시판을 만들어 놓고,
로그인시 회원의 그룹을 체크해서 회원이 로그인하면
"http://그누도메인/bbs/board.php?bo_table=그룹아이디" 로 이동되게
하고 싶습니다.
소속된 그룹이 없는 경우엔 그냥 사이트메인 (또는 이용안내 페이지)로 이동하게 하고요.
이렇게 적용하려면 로그인 페이지에서 어느 부분을 어떻게 수정해야 할까요?
답변 2
* /extend/user.config.php 에 추가
add_event('member_login_check', 'create_link_group', 10, 3);
function create_link_group($mb, $link, $is_social_login) {
global $is_admin;
if ($is_admin) return;
$sql = "
select *
from {$g5['group_member_table']}
where mb_id = '{$mb['mb_id']}'
";
$row = sql_fetch($sql);
if ($row['gr_id']) {
$link = G5_BBS_URL . '/board.php?bo_table=' . $row['gr_id'];
//$link = G5_BBS_URL . '/group.php?gr_id=' . $row['gr_id'];
} else {
$link = G5_URL;
}
goto_url($link);
}
로그인 체크를 하고 페이지 이동시키는건
/bbs/login_check.php 파일에서 이뤄집니다.
해당 파일 하단부에 goto_url($link); 가 로그인후 이동하는 페이지인데 이 $link 부분을
컨트롤 해서 그룹별로 이동 주소를 다르게 해도 되구요.
근데 해당 파일에 직접 작업을 하게 되면 추후 업데이트 할때 직접 작업한 소스를 업데이트 후
다시 적용해주고 해야하기때문에 제일 좋은 방법은
login_check.php 파일 하단에 실행되는
run_event('member_login_check', $mb, $link, $is_social_login);
이 훅을 이용해서 처리해 주시는게 제일 깔끔하게 처리할수 있을것 같습니다.
훅을 모르신다면 조금 공부해서 적용하시면 되구요. 귀찮으시면 업데이트는 나중에 생각하고
해당파일에서 조건줘서 그룹별로 이동페이지 다르게 설정해 주시면 될것 같습니다.