/** * Gets the member's member groups * @param Member $member * @return Membergroup[] Returns the member groups assigned to the user */ static function MemberMembergroups(Member $member) { if (!$member->Exists()) { return array(); } $sql = Access::SqlBuilder(); $tblMmg = MemberMembergroup::Schema()->Table(); $tblMg = Membergroup::Schema()->Table(); $join = $sql->Join($tblMmg); $joinCondition = $sql->Equals($tblMmg->Field('MemberGroup'), $tblMg->Field('ID')); $where = $sql->Equals($tblMmg->Field('Member'), $sql->Value($member->GetID())); $orderBy = $sql->OrderList($sql->OrderAsc($tblMg->Field('Name'))); return Membergroup::Schema()->Fetch(false, $where, $orderBy, null, 0, null, $join, JoinType::Inner(), $joinCondition); }
private function AddGroups($member) { //Clear groups (although none should exist...) $memMemGrps = MemberMembergroup::Schema()->FetchByMember(false, $member); foreach ($memMemGrps as $memMemGrp) { $memMemGrp->Delete(); } $confGroups = RegisterConfirmMembergroup::Schema()->FetchByConfirm(false, $this->confirm); foreach ($confGroups as $confGroup) { $memMemGrp = new MemberMembergroup(); $memMemGrp->SetMember($member); $memMemGrp->SetMemberGroup($confGroup->GetMemberGroup()); $memMemGrp->Save(); } }
/** * Deletes the unselected group ids * @param array $exGroupIDs Currently assigned group ids * @param array $selGroupIDs Selected group ids */ private function DeleteOldGroups(array $selGroupIDs) { $tblMmg = MemberMembergroup::Schema()->Table(); $sql = Access::SqlBuilder(); $where = $sql->Equals($tblMmg->Field('Member'), $sql->Value($this->member->GetID())); if (count($selGroupIDs) > 0) { $selectedList = $sql->InListFromValues($selGroupIDs); $where = $where->And_($sql->NotIn($tblMmg->Field('MemberGroup'), $selectedList)); } MemberMembergroup::Schema()->Delete($where); }