function subscriberemove() { checkPerm('subscribe', false, 'course'); require_once $GLOBALS['where_lms'] . '/lib/lib.course.php'; $id_course = importVar('id_course', true, 0); $course_info = Man_Course::getCourseInfo($id_course); $edition_id = getCourseEditionId(); if ($edition_id > 0) { $edition_info = Man_Course::getEditionInfo($edition_id, $id_course); $course_info = $edition_info + $course_info; } $lang =& DoceboLanguage::CreateInstance('subscribe', 'lms'); $out =& $GLOBALS['page']; $acl_man =& Docebo::user()->getAclManager(); if (!isset($_POST['user_to_remove'])) { //the user selection is empty, return to course selection backcourse('err_selempty'); } $group_levels = getCourseLevel($id_course); $user_levels = getSubscribedLevel($id_course, false, false, $edition_id); // Subscirbing user $re = true; $user_del = array(); while (list($id_user, $v) = each($_POST['user_to_remove'])) { $date_begin = $course_info["date_begin"]; $date_end = $course_info["date_end"]; $re_sing = removeSubscription($id_course, $id_user, $group_levels[$user_levels[$id_user]], $edition_id, $date_begin, $date_end); if ($re_sing) { $user_del[] = $id_user; } $re &= $re_sing; } require_once _base_ . '/lib/lib.eventmanager.php'; $array_subst = array('[url]' => Get::sett('url'), '[course]' => $course_info['name']); if (!empty($user_del)) { // message to user that is waiting $msg_composer = new EventMessageComposer(); $msg_composer->setSubjectLangText('email', '_DEL_USER_SUBSCRIPTION_SUBJECT', false); $msg_composer->setBodyLangText('email', '_DEL_USER_SUBSCRIPTION_TEXT', $array_subst); $msg_composer->setBodyLangText('sms', '_DEL_USER_SUBSCRIPTION_TEXT_SMS', $array_subst); // send message to the user subscribed createNewAlert('UserCourseRemoved', 'subscribe', 'remove', '1', 'User removed form a course', $user_del, $msg_composer); } backcourse($re ? 'ok_subs' : 'err_subs'); }
/** * Unsubscribe a group of users to a course * @param array $arr_user the id of the users * @param int $id_course the id of the course * * @return bool true if success, false otherwise */ function unsubscribeUsersEd($arr_users, $id_edition, $id_course = false) { if (empty($arr_users)) { return true; } if ($id_course == false) { require_once $GLOBALS['where_lms'] . '/lib/lib.course.php'; $man = new Man_Course(); $info = $man->getEditionInfo($id_edition); $id_course = $info['idCourse']; } $group_levels =& $this->course_man->getCourseIdstGroupLevel($id_course); $user_level = $this->course_man->getLevelsOfUsers($id_course, $arr_users); $re = $this->_query("\r\n\t\tDELETE FROM " . $GLOBALS['prefix_lms'] . "_courseuser\r\n\t\tWHERE idUser IN ( " . implode(',', $arr_users) . " ) AND idCourse = '" . $id_course . "' AND editon_id = '" . $id_edition . "'"); $survivor = array(); $query = "\r\n\t\tSELECT idUser\r\n\t\tFROM " . $GLOBALS['prefix_lms'] . "_courseuser\r\n\t\tWHERE idUser IN ( " . implode(',', $arr_users) . " ) AND idCourse = '" . $id_course . "'"; $re_query = sql_query($query); while (list($idu) = sql_fetch_row($re_query)) { $survivor[$idu] = $idu; } while (list(, $id_user) = each($arr_users)) { if (isset($user_level[$id_user]) && !isset($survivor[$id_user])) { $lv = $user_level[$id_user]; $this->acl_man->removeFromGroup($group_levels[$lv], $id_user); } } return $re; }