function addsubscription() { checkPerm('subscribe'); require_once _base_ . '/lib/lib.form.php'; require_once _adm_ . '/class.module/class.directory.php'; require_once _lms_ . '/lib/lib.subscribe.php'; require_once _lms_ . '/lib/lib.coursepath.php'; $id_path = importVar('id_path', true, 0); $lang =& DoceboLanguage::createInstance('coursepath', 'lms'); $out =& $GLOBALS['page']; $acl_man =& Docebo::user()->getAclManager(); if (isset($_POST['cancelselector'])) { Util::jump_to('index.php?modname=coursepath&op=pathlist'); } $user_select = new UserSelector(); $user_select->show_user_selector = TRUE; $user_select->show_group_selector = TRUE; $user_select->show_orgchart_selector = TRUE; $user_select->show_orgchart_simple_selector = TRUE; if (Docebo::user()->getUserLevelId() != ADMIN_GROUP_GODADMIN) { require_once _base_ . '/lib/lib.preference.php'; $adminManager = new AdminPreference(); $admin_tree = $adminManager->getAdminTree(Docebo::user()->getIdST()); $admin_users = $acl_man->getAllUsersFromIdst($admin_tree); $user_select->setUserFilter('user', $admin_users); $user_select->setUserFilter('group', $admin_tree); } $query_pathlist = "\r\n\tSELECT path_name, subscribe_method\r\n\tFROM " . $GLOBALS['prefix_lms'] . "_coursepath\r\n\tWHERE id_path = '" . $id_path . "'\r\n\tORDER BY path_name "; list($path_name, $subscribe_method) = sql_fetch_row(sql_query($query_pathlist)); if (isset($_GET['load'])) { $cp_man = new CoursePath_Manager(); $users = $cp_man->getSubscribed($id_path); $user_select->resetSelection($users); } if (isset($_POST['okselector'])) { $acl_manager = new DoceboACLManager(); $user_selected = $user_select->getSelection($_POST); $user_selected =& $acl_manager->getAllUsersFromIdst($user_selected); $user_selected = array_unique($user_selected); $cp_man = new CoursePath_Manager(); $users = $cp_man->getSubscribed($id_path); $user_selected = array_diff($user_selected, $users); if (Docebo::user()->getUserLevelId() != ADMIN_GROUP_GODADMIN) { require_once _base_ . '/lib/lib.preference.php'; $adminManager = new AdminPreference(); $admin_tree = $adminManager->getAdminTree(Docebo::user()->getIdST()); $admin_users = $acl_man->getAllUsersFromIdst($admin_tree); $user_selected = array_intersect($user_selected, $admin_users); } if (empty($user_selected)) { Util::jump_to('index.php?modname=coursepath&op=pathlist'); } $cpath_man = new CoursePath_Manager(); $subs_man = new CourseSubscribe_Management(); $courses = $cpath_man->getAllCourses(array($id_path)); require_once $GLOBALS['where_lms'] . '/lib/lib.coursepath.php'; $course_man = new Man_Course(); $classroom = $course_man->getAllCourses(false, 'classroom', $courses); $edition = $course_man->getAllCourses(false, 'edition', $courses); if (!empty($classroom) || !empty($edition)) { $user_selected_post = urlencode(serialize($user_selected)); cout(getTitleArea(array('index.php?modname=coursepath&op=pathlist' => $lang->def('_COURSEPATH'), $path_name), 'coursepath') . '<div class="std_block">' . Form::openForm('edition_selection_form', 'index.php?modname=coursepath&op=addsubscriptionedition&id_path=' . $id_path) . Form::getHidden('users', 'users', $user_selected_post)); if (!empty($classroom)) { require_once _lms_ . '/lib/lib.date.php'; $date_man = new DateManager(); foreach ($classroom as $id_course => $info) { $editions = $date_man->getCourseDate($id_course, true); $edition_for_dropdown = array(); $edition_for_dropdown[0] = Lang::t('_NONE', 'coursepath'); foreach ($editions as $editions_info) { $edition_for_dropdown[$editions_info['id_date']] = $editions_info['code'] . ' - ' . $editions_info['name'] . ' - ' . Format::date($editions_info['date_begin'], 'date') . ' - ' . Format::date($editions_info['date_end'], 'date'); } cout(Form::getDropdown(Lang::t('_EDITION_SELECTION', 'coursepath') . ' : ' . $info['code'] . ' - ' . $info['name'], 'classroom_' . $id_course, 'classroom_' . $id_course, $edition_for_dropdown)); } } if (!empty($edition)) { require_once _lms_ . '/lib/lib.edition.php'; $edition_man = new EditionManager(); foreach ($edition as $id_course => $info) { $editions = $edition_man->getEditionsInfoByCourses($id_course); $edition_for_dropdown = array(); $edition_for_dropdown[0] = Lang::t('_NONE', 'coursepath'); foreach ($editions[$id_course] as $editions_info) { $edition_for_dropdown[$editions_info['id_edition']] = $editions_info['code'] . ' - ' . $editions_info['name'] . ' - ' . Format::date($editions_info['date_begin'], 'date') . ' - ' . Format::date($editions_info['date_end'], 'date'); } cout(Form::getDropdown(Lang::t('_EDITION_SELECTION', 'coursepath') . ' : ' . $info['code'] . ' - ' . $info['name'], 'edition_' . $id_course, 'edition_' . $id_course, $edition_for_dropdown)); } } cout(Form::openButtonSpace() . Form::getButton('save', 'save', Lang::t('_SAVE', 'coursepath')) . Form::getButton('undo', 'undo', Lang::t('_UNDO', 'coursepath')) . Form::closeButtonSpace() . Form::closeForm() . '</div>'); } else { $re = true; if ($subscribe_method != 1 && !checkPerm('moderate', true)) { $waiting = 1; } else { $waiting = 0; } $users_subsc = array(); require_once $GLOBALS['where_lms'] . '/lib/lib.coursepath.php'; $course_man = new Man_Course(); $assessment = $course_man->getAllCourses(false, 'assessment', $courses); while (list(, $id_user) = each($user_selected)) { $text_query = "\r\n\t\t\t\tINSERT INTO " . $GLOBALS['prefix_lms'] . "_coursepath_user\r\n\t\t\t\t( id_path, idUser, waiting, subscribed_by ) VALUES\r\n\t\t\t\t( '" . $id_path . "', '" . $id_user . "', '" . $waiting . "', '" . getLogUserId() . "' )"; $re_s = sql_query($text_query); if ($re_s == true) { $users_subsc[] = $id_user; } $re &= $re_s; foreach ($assessment as $id_assessment => $assessment_info) { sql_query("INSERT INTO %lms_assessment_user (id_assessment, id_user, type_of) VALUES ('" . $id_assessment . "', '" . $id_user . "', 'user')"); } } // now subscribe user to all the course if ($waiting == 0) { $re &= $subs_man->multipleSubscribe($users_subsc, $courses, 3); } Util::jump_to('index.php?modname=coursepath&op=pathlist&result=' . ($re ? 'ok' : 'err')); } } else { $user_select->setPageTitle(getTitleArea(array('index.php?modname=coursepath&op=pathlist' => $lang->def('_COURSEPATH'), $path_name), 'coursepath')); $user_select->loadSelector('index.php?modname=coursepath&op=addsubscription&id_path=' . $id_path, $lang->def('_SUBSCRIBE'), false, true); } }