위젯 설정에서 회원그룹을 지정한 뒤 그걸 받아와서 $target_groups라는 변수에 회원그룹 정보를 받아내는 코드입니다.
하다보니 두 가지 방식이 생각 나서 여쭤봅니다.
하나는 지정된 그룹별로 member 모듈의 함수를 실행하는 것이구요.
다른 하나는 아예 사이트에 존재하는 모든 회원그룹을 가져와서 위젯 설정에 포함되지 않은 그룹은 걸러내는 방식입니다.
1. 지정된 그룹별로 member 모듈의 함수를 실행해서 회원그룹 정보를 담기
$target_groups = array(); $oMemberModel = getModel('member'); $_groups = explode(',', $args->target_group); if ( count($_groups) ) { for ( $i = 0; $i < count($_groups); $i++ ) { $group_srl = trim($_groups[$i]); if ( !$group_srl ) continue; $target_groups[$group_srl] = $oMemberModel->getGroup($group_srl); } } else { $target_groups = $oMemberModel->getGroups(0); if ( !$target_groups ) return; }
2, 모든 회원그룹을 가져온 뒤, 지정되지 않은 회원그룹은 걸러내기
$oMemberModel = getModel('member'); $target_groups = $oMemberModel->getGroups(0); if ( count($args->target_group) ) { for ( $i = 0; $i < count($args->target_group); $i++ ) { if ( !in_array($i, $args->target_group) ) { unset($target_groups[$i]); } } }
... 어느 것이 더 효율적일지 판단이 잘 안 섭니다;;;