示例#1
0
 /**
  * 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);
 }
示例#2
0
 /**
  * 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);
 }