コード例 #1
0
ファイル: subscribe.php プロジェクト: abhinay100/forma_app
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');
}
コード例 #2
0
 /**
  * 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;
 }