} $arNewMembers = array_unique($arNewMembers); $arAddedMembers = array_diff($arNewMembers, $arMembers); $arRemovedMembers = array_diff($arMembers, $arNewMembers); } if ($USER_FIELD_MANAGER->getRights('LEARNING_LGROUPS') >= 'W') { $USER_FIELD_MANAGER->EditFormAddFields('LEARNING_LGROUPS', $arFields); } $res = false; $oAccess = CLearnAccess::GetInstance($USER->GetID()); $isAccessible = $oAccess->IsBaseAccess(CLearnAccess::OP_LESSON_MANAGE_RIGHTS); $DB->StartTransaction(); if ($isAccessible) { $tr = new CLearningGroup(); if ($ID == 0) { $res = $tr->add($arFields); if ($res > 0) { $ID = (int) $res; } } else { $res = $tr->update($ID, $arFields); } if ($res) { foreach ($arAddedMembers as $memberId) { CLearningGroupMember::add(array('USER_ID' => $memberId, 'LEARNING_GROUP_ID' => $ID)); } foreach ($arRemovedMembers as $memberId) { CLearningGroupMember::delete($memberId, $ID); } } }