function subscribeFromCourse() { require_once _base_ . '/lib/lib.form.php'; require_once $GLOBALS['where_framework'] . '/lib/lib.directory.php'; require_once _base_ . '/lib/lib.userselector.php'; require_once $GLOBALS['where_lms'] . '/lib/lib.course.php'; require_once $GLOBALS['where_lms'] . '/lib/lib.course_managment.php'; $lang =& DoceboLanguage::CreateInstance('subscribe', 'lms'); $back_url = 'index.php?modname=course&op=course_list'; $acl_man =& Docebo::user()->getAclManager(); $out =& $GLOBALS['page']; $out->setWorkingZone('content'); $id_course = Get::req('id_course', DOTY_INT, 0); $edition_id = Get::req('edition_id', DOTY_INT, 0); $alert = Get::req('alert', DOTY_INT, 0); $delete_prev = Get::req('delete_from_prev', DOTY_INT, 0); $sel = new Course_Manager(); if (isset($_POST['subscribe_import'])) { $course_info = Man_Course::getCourseInfo($id_course); $level_idst =& getCourseLevel($id_course); if (count($level_idst) == 0) { $level_idst =& DoceboCourse::createCourseLevel($id_course); } $course_selected = $sel->getCourseSelection($_POST); if (empty($course_selected)) { Util::jump_to('index.php?modname=course&op=course_list&result=err'); } $id_course = Get::req('id_course', DOTY_INT, 0); $level = Get::req('level', DOTY_INT, 0); $status = Get::req('status', DOTY_INT, 0); $gsel = array(); foreach ($course_selected as $trash => $id) { $gsel[$id] = getCourseLevel($id); } $query = "SELECT idUser, idCourse, level" . " FROM " . $GLOBALS['prefix_lms'] . "_courseuser" . " WHERE idCourse IN (" . implode(',', $course_selected) . ")"; if ($level) { $query .= " AND level = '" . $level . "'"; } if ($status != '-2') { $query .= " AND status = '" . $status . "'"; } $result = sql_query($query); $array_user = array(); $user_subscribed = array(); while (list($id_user, $id_prev_course, $lv_sel) = sql_fetch_row($result)) { if ($delete_prev) { removeSubscription($id_prev_course, $id_user, $gsel[$id_prev_course][$lv_sel]); } // Add in group for permission $acl_man->addToGroup($level_idst[$lv_sel], $id_user); // Add in table $re = sql_query("\r\n\t\t\tINSERT INTO " . $GLOBALS['prefix_lms'] . "_courseuser\r\n\t\t\t( idUser, idCourse, edition_id, level, waiting, subscribed_by, date_inscr )\r\n\t\t\tVALUES\r\n\t\t\t( '" . $id_user . "', '" . $id_course . "', '" . $edition_id . "', '" . $lv_sel . "', '0', '" . getLogUserId() . "', '" . date("Y-m-d H:i:s") . "' )\t"); if ($re) { $user_subscribed[] = $id_user; addUserToTimeTable($id_user, $id_course, $edition_id); } } Docebo::user()->loadUserSectionST('/lms/course/private/'); Docebo::user()->SaveInSession(); require_once _base_ . '/lib/lib.eventmanager.php'; $array_subst = array('[url]' => Get::sett('url'), '[course]' => $course_info['name'], '[medium_time]' => $course_info['mediumTime'], '[course_name]' => $course_info['name'], '[course_code]' => $course['code']); if (!empty($user_subscribed) && $alert) { // message to user that is subscribed $msg_composer = new EventMessageComposer(); $msg_composer->setSubjectLangText('email', '_NEW_USER_SUBSCRIBED_SUBJECT', false); $msg_composer->setBodyLangText('email', '_NEW_USER_SUBSCRIBED_TEXT', $array_subst); $msg_composer->setBodyLangText('sms', '_NEW_USER_SUBSCRIBED_TEXT_SMS', $array_subst); // send message to the user subscribed createNewAlert('UserCourseInserted', 'subscribe', 'insert', '1', 'User subscribed', $user_subscribed, $msg_composer); } Util::jump_to('index.php?modname=course&op=course_list&result=ok'); } $sel->setLink('index.php?modname=meta_certificate&op=new_assign'); $sel->show_coursepath_selector = false; $sel->show_catalogue_selector = false; $array_level = CourseLevel::getLevels(); $array_level['0'] = $lang->def('_ALL'); $arr_status = array('-2' => $lang->def('_ALL'), _CUS_CONFIRMED => $lang->def('_USER_STATUS_CONFIRMED'), _CUS_SUBSCRIBED => $lang->def('_USER_STATUS_SUBS'), _CUS_BEGIN => $lang->def('_USER_STATUS_BEGIN'), _CUS_END => $lang->def('_USER_STATUS_END'), _CUS_SUSPEND => $lang->def('_SUSPENDED'), _CUS_CANCELLED => $lang->def('_USER_STATUS_CANCELLED')); $out->add(getTitleArea($lang->def('_IMPORT_FROM_COURSE')) . '<div class="std_block">' . Form::openForm('course_selection', 'index.php?modname=subscribe&op=subscribe_from_course') . Form::openElementSpace() . Form::getDropdown($lang->def('_LEVEL_TO_IMPORT'), 'level', 'level', $array_level, isset($_POST['level']) ? $_POST['level'] : '0') . Form::getDropdown($lang->def('_STATUS_TO_IMPORT'), 'status', 'status', $arr_status, isset($_POST['status']) ? $_POST['status'] : '-2') . Form::getCheckbox($lang->def('_SEND_ALERT'), 'alert', 'alert', '1', $delete_prev) . Form::getCheckbox($lang->def('_DELETE'), 'delete_from_prev', 'delete_from_prev', '1', $delete_prev) . Form::closeElementSpace()); $sel->loadSelector(false); $out->add(Form::getHidden('id_course', 'id_course', $id_course) . Form::getHidden('edition_id', 'edition_id', $edition_id) . Form::openButtonSpace() . Form::getBreakRow() . Form::getButton('subscribe_import', 'subscribe_import', $lang->def('_SUBSCRIBE')) . Form::getButton('undo_course', 'undo_course', $lang->def('_UNDO')) . Form::closeButtonSpace() . Form::closeForm() . '</div>'); }
function subscribeToCourse($id_user, $id_course, $id_date = 0) { require_once _lms_ . '/admin/modules/subscribe/subscribe.php'; require_once _lms_ . '/lib/lib.date.php'; require_once _lms_ . '/lib/lib.course.php'; $date_man = new DateManager(); $acl_man =& Docebo::user()->getAclManager(); $query = "SELECT idCourse" . " FROM " . $GLOBALS['prefix_lms'] . "_courseuser" . " WHERE idUser = "******"SELECT subscribe_method FROM " . $GLOBALS['prefix_lms'] . "_course WHERE idCourse = " . $id_course)); $waiting = 0; if ($subscribe_method == '1') { $waiting = 1; } if ($id_date != 0) { if (array_search($id_course, $courses) !== false) { if (array_search($id_date, $dates) === false) { if (!$date_man->addUserToDate($id_date, $id_user, getLogUserId())) { return false; } } } else { $acl_man->addToGroup($level_idst[3], $id_user); $re = sql_query("INSERT INTO " . $GLOBALS['prefix_lms'] . "_courseuser\r\n\t\t\t\t\t\t\t\t\t(idUser, idCourse, edition_id, level, waiting, subscribed_by, date_inscr)\r\n\t\t\t\t\t\t\t\t\tVALUES ('" . $id_user . "', '" . $id_course . "', '0', '3', '" . $waiting . "', '" . getLogUserId() . "', '" . date("Y-m-d H:i:s") . "')"); if ($re) { addUserToTimeTable($id_user, $id_course, 0); if (!$date_man->addUserToDate($id_date, $id_user, getLogUserId())) { return false; } } } } else { if (array_search($id_course, $courses) === false) { $acl_man->addToGroup($level_idst[3], $id_user); $re = sql_query("INSERT INTO " . $GLOBALS['prefix_lms'] . "_courseuser\r\n\t\t\t\t\t\t\t\t\t(idUser, idCourse, edition_id, level, waiting, subscribed_by, date_inscr)\r\n\t\t\t\t\t\t\t\t\tVALUES ('" . $id_user . "', '" . $id_course . "', '0', '3', '" . $waiting . "', '" . getLogUserId() . "', '" . date("Y-m-d H:i:s") . "')"); if ($re) { addUserToTimeTable($id_user, $id_course, 0); } else { return false; } } } return true; }