/** * Deletes the old member groups * @param array $selectedIDs The selected member ids */ private function DeleteOldMemberGroups(array $selectedIDs) { $sql = Access::SqlBuilder(); $tblPgGrp = PageMembergroup::Schema()->Table(); $where = $sql->Equals($tblPgGrp->Field('Page'), $sql->Value($this->page->GetID())); if (count($selectedIDs)) { $inSelected = $sql->InListFromValues($selectedIDs); $where = $where->And_($sql->NotIn($tblPgGrp->Field('MemberGroup'), $inSelected)); } PageMembergroup::Schema()->Delete($where); }
/** * Gets the page's member groups * @param Page $page * @return Membergroup[] Returns the member groups assigned to the page */ static function PageMembergroups(Page $page) { if (!$page->Exists()) { return array(); } $sql = Access::SqlBuilder(); $tblPmg = PageMembergroup::Schema()->Table(); $tblMg = Membergroup::Schema()->Table(); $join = $sql->Join($tblPmg); $joinCondition = $sql->Equals($tblPmg->Field('MemberGroup'), $tblMg->Field('ID')); $where = $sql->Equals($tblPmg->Field('Page'), $sql->Value($page->GetID())); $orderBy = $sql->OrderList($sql->OrderAsc($tblMg->Field('Name'))); return Membergroup::Schema()->Fetch(false, $where, $orderBy, null, 0, null, $join, JoinType::Inner(), $joinCondition); }