예제 #1
0
 public function __construct()
 {
     $this->db = DbConn::getInstance();
     $this->users_filter = false;
     $this->courses_filter = false;
     $this->user_level = Docebo::user()->getUserLevelId();
     if ($this->user_level != ADMIN_GROUP_GODADMIN) {
         require_once _base_ . '/lib/lib.preference.php';
         $adminManager = new AdminPreference();
         $this->users_filter = $adminManager->getAdminUsers(Docebo::user()->getIdST());
         $all_courses = false;
         $array_courses = array();
         $admin_courses = $adminManager->getAdminCourse(Docebo::user()->getIdST());
         foreach ($admin_courses['course'] as $key => $id_course) {
             if ($key > 0) {
                 $array_courses[$key] = $id_course;
             }
         }
         if (isset($admin_courses['course'][0])) {
             $all_courses = true;
         } elseif (isset($admin_courses['course'][-1])) {
             require_once _lms_ . '/lib/lib.catalogue.php';
             $cat_man = new Catalogue_Manager();
             $user_catalogue = $cat_man->getUserAllCatalogueId(Docebo::user()->getIdSt());
             if (count($user_catalogue) > 0) {
                 $courses = array();
                 foreach ($user_catalogue as $id_cat) {
                     $catalogue_course =& $cat_man->getCatalogueCourse($id_cat, true);
                     if (empty($courses)) {
                         $courses = $catalogue_course;
                     } else {
                         $courses = array_merge($courses, $catalogue_course);
                     }
                 }
                 foreach ($courses as $id_course) {
                     if ($id_course != 0) {
                         $array_courses[$id_course] = $id_course;
                     }
                 }
             } elseif (Get::sett('on_catalogue_empty', 'off') == 'on') {
                 $all_courses = true;
             }
         } else {
             if (!empty($admin_courses['coursepath'])) {
                 require_once _lms_ . '/lib/lib.coursepath.php';
                 $path_man = new CoursePath_Manager();
                 $coursepath_course =& $path_man->getAllCourses($admin_courses['coursepath']);
                 $array_courses = array_merge($array_courses, $coursepath_course);
             }
             if (!empty($admin_courses['catalogue'])) {
                 require_once _lms_ . '/lib/lib.catalogue.php';
                 $cat_man = new Catalogue_Manager();
                 foreach ($admin_courses['catalogue'] as $id_cat) {
                     $catalogue_course =& $cat_man->getCatalogueCourse($id_cat, true);
                     $array_courses = array_merge($array_courses, $catalogue_course);
                 }
             }
         }
         if (!$all_courses) {
             $this->courses_filter = array_values($array_courses);
         }
         //if "$all_courses" is true, than leave "$this->courses_filter" as false
     }
 }
예제 #2
0
 function getCatalogueCourse($id_cat, $for_admin = false)
 {
     require_once _lms_ . '/lib/lib.coursepath.php';
     $path_man = new CoursePath_Manager();
     $query = "SELECT idEntry, type_of_entry" . " FROM %lms_catalogue_entry" . " WHERE idCatalogue = '" . $id_cat . "'";
     $result = sql_query($query);
     $res = array();
     while (list($id_entry, $type) = sql_fetch_row($result)) {
         if ($type == 'course') {
             $res[$id_entry] = $id_entry;
         } elseif ($for_admin) {
             $coursepath_course =& $path_man->getAllCourses(array($id_entry));
             foreach ($coursepath_course as $id_course) {
                 $res[$id_course] = $id_course;
             }
         }
     }
     return $res;
 }
예제 #3
0
 function loadCourseSelector($noprint = false, $with_assesment = false)
 {
     require_once _base_ . '/lib/lib.table.php';
     require_once _base_ . '/lib/lib.form.php';
     $lang =& DoceboLanguage::createInstance('course', 'lms');
     $output = '';
     $output .= $this->treeview->load();
     // Filter
     $this->filter['course_flat'] = isset($_POST['c_flatview']);
     //$this->filter['course_code'] = ( isset($_POST['c_filter_code']) ? $_POST['c_filter_code'] : '' );
     $this->filter['course_name'] = isset($_POST['c_filter_name']) ? $_POST['c_filter_name'] : '';
     if ($this->show_filter === true) {
         $output .= '<div class="quick_search_form">' . '<div class="common_options">' . Form::getInputCheckbox('c_flatview', 'c_flatview', '1', Get::req('c_flatview', DOTY_INT, '0') == '1' ? true : false, ' onclick="submit();" ') . ' <label class="label_normal" for="c_flatview">' . Lang::t('_DIRECTORY_FILTER_FLATMODE', 'admin_directory') . '</label>' . '&nbsp;&nbsp;&nbsp;&nbsp;' . '</div>' . '<div>' . Form::getInputTextfield("search_t", "c_filter_name", "c_filter_name", Get::req('c_filter_name', DOTY_ALPHANUM, ''), '', 255, '') . Form::getButton("c_filter_set", "c_filter_set", Lang::t('_SEARCH', 'standard'), "search_b") . '</div>' . '</div>';
     }
     // End Filter
     $tb = new Table(Get::sett('visu_course'), $lang->def('_COURSE_LIST'), $lang->def('_COURSE_LIST_SUMMARY'));
     $tb->initNavBar('ini', 'button');
     $ini = $tb->getSelectedElement();
     $category_selected = $this->treeview->getSelectedFolderId();
     if ($this->filter['course_flat']) {
         $id_categories = $this->treeDB->getDescendantsId($this->treeDB->getFolderById($category_selected));
         $id_categories[] = $category_selected;
     }
     $select = "\r\n\t\tSELECT c.idCourse, c.code, c.name, c.description, c.status, c.difficult,\r\n\t\t\tc.subscribe_method, c.permCloseLo, c.show_rules, c.max_num_subscribe ";
     $query_course = "\r\n\t\tFROM " . $GLOBALS['prefix_lms'] . "_course AS c\r\n\t\tWHERE " . ($with_assesment ? '1' : "c.course_type <> 'assessment'") . " AND c.idCategory IN ( " . (!$this->filter['course_flat'] ? $category_selected : implode(",", $id_categories)) . " )";
     if (Docebo::user()->getUserLevelId() != ADMIN_GROUP_GODADMIN) {
         $all_courses = false;
         require_once _base_ . '/lib/lib.preference.php';
         $adminManager = new AdminPreference();
         $admin_courses = $adminManager->getAdminCourse(Docebo::user()->getIdST());
         $all_courses = false;
         if (isset($admin_courses['course'][0])) {
             $all_courses = true;
         } elseif (isset($admin_courses['course'][-1])) {
             require_once _lms_ . '/lib/lib.catalogue.php';
             $cat_man = new Catalogue_Manager();
             $user_catalogue = $cat_man->getUserAllCatalogueId(Docebo::user()->getIdSt());
             if (count($user_catalogue) > 0) {
                 $courses = array(0);
                 foreach ($user_catalogue as $id_cat) {
                     $catalogue_course =& $cat_man->getCatalogueCourse($id_cat, true);
                     $courses = array_merge($courses, $catalogue_course);
                 }
                 foreach ($courses as $id_course) {
                     if ($id_course != 0) {
                         $admin_courses['course'][$id_course] = $id_course;
                     }
                 }
             } elseif (Get::sett('on_catalogue_empty', 'off') == 'on') {
                 $all_courses = true;
             }
         } else {
             $array_courses = array();
             $array_courses = array_merge($array_courses, $admin_courses['course']);
             if (!empty($admin_courses['coursepath'])) {
                 require_once _lms_ . '/lib/lib.coursepath.php';
                 $path_man = new CoursePath_Manager();
                 $coursepath_course =& $path_man->getAllCourses($admin_courses['coursepath']);
                 $array_courses = array_merge($array_courses, $coursepath_course);
             }
             if (!empty($admin_courses['catalogue'])) {
                 require_once _lms_ . '/lib/lib.catalogue.php';
                 $cat_man = new Catalogue_Manager();
                 foreach ($admin_courses['catalogue'] as $id_cat) {
                     $catalogue_course =& $cat_man->getCatalogueCourse($id_cat, true);
                     $array_courses = array_merge($array_courses, $catalogue_course);
                 }
             }
             $admin_courses['course'] = array_merge($admin_courses['course'], $array_courses);
         }
         if (!$all_courses) {
             if (empty($admin_courses['course'])) {
                 $query_course .= " AND 0 ";
             } else {
                 $query_course .= " AND c.idCourse IN (" . implode(',', $admin_courses['course']) . ") ";
             }
         }
     }
     /*
     		if($this->filter['course_code'] != '') {
     			$query_course .= " AND c.code LIKE '%".$this->filter['course_code']."%'";
     		}*/
     if ($this->filter['course_name'] != '') {
         $query_course .= " AND ( c.code LIKE '%" . $this->filter['course_name'] . "%' OR c.name LIKE '%" . $this->filter['course_name'] . "%' ) ";
     }
     list($tot_course) = sql_fetch_row(sql_query("SELECT COUNT(*) " . $query_course));
     $query_course .= " ORDER BY c.name\r\n\t\t\t\t\t\t\tLIMIT " . $ini . "," . (int) Get::sett('visuItem', 25);
     $re_course = sql_query($select . $query_course);
     $type_h = array('image', '', '', '');
     $cont_h = array('<span class="access-only">' . $lang->def('_COURSE_SELECTION') . '</span>', $lang->def('_CODE'), $lang->def('_COURSE_NAME'), $lang->def('_STATUS'));
     $tb->setColsStyle($type_h);
     $tb->addHead($cont_h);
     $status_array = array(CST_PREPARATION => Lang::t('_CST_PREPARATION', 'course'), CST_AVAILABLE => Lang::t('_CST_AVAILABLE', 'course'), CST_EFFECTIVE => Lang::t('_CST_CONFIRMED', 'course'), CST_CONCLUDED => Lang::t('_CST_CONCLUDED', 'course'), CST_CANCELLED => Lang::t('_CST_CANCELLED', 'course'));
     while (list($id_course, $code, $name, $desc, $status, $difficult, $auto_sub, $end_mode, $show_rules, $max_user_sub) = sql_fetch_row($re_course)) {
         $tb_content = array(Form::getInputCheckbox('new_course_selected_' . $id_course, 'new_course_selected[' . $id_course . ']', $id_course, isset($this->current_selection[$id_course]), ''), '<label for="new_course_selected_' . $id_course . '">' . $code . '</label>', '<label for="new_course_selected_' . $id_course . '">' . $name . '</label>');
         $tb_content[] = $status_array[$status];
         $tb->addBody($tb_content);
         if (isset($this->current_selection[$id_course])) {
             unset($this->current_selection[$id_course]);
         }
     }
     $output .= $tb->getTable() . $tb->getNavBar($ini, $tot_course) . $this->stateSelection();
     //, 'content');
     if ($noprint) {
         return $output;
     } else {
         cout($output);
     }
 }
예제 #4
0
 function &getUserAllCourses($id_user)
 {
     require_once $GLOBALS['where_lms'] . '/lib/lib.catalogue.php';
     require_once $GLOBALS['where_lms'] . '/lib/lib.coursepath.php';
     $courses = $this->getUserCourses($id_user);
     $coursepath = $this->getUserPathCourses($id_user);
     $catalogues = $this->getUserCatalogues($id_user);
     $man_cataloge = new AdminCatalogue();
     $course_from_catalogue = $man_cataloge->getAllCourses($catalogues);
     $coursepath_from_catalogue = $man_cataloge->getAllCoursePaths($catalogues);
     $coursepath = array_merge($coursepath, $coursepath_from_catalogue);
     $man_coursepath = new CoursePath_Manager();
     $course_from_coursepath = $man_coursepath->getAllCourses($coursepath);
     $courses = array_merge($courses, $course_from_catalogue, $course_from_coursepath);
     return $courses;
 }
예제 #5
0
 public function loadCourse($start_index, $results, $sort, $dir, $filter = false)
 {
     $userlevelid = Docebo::user()->getUserLevelId();
     if ($userlevelid != ADMIN_GROUP_GODADMIN) {
         require_once _base_ . '/lib/lib.preference.php';
         $adminManager = new AdminPreference();
         $acl_man =& Docebo::user()->getAclManager();
         $admin_courses = $adminManager->getAdminCourse(Docebo::user()->getIdST());
         $admin_tree = $adminManager->getAdminTree(Docebo::user()->getIdST());
         $admin_users = $acl_man->getAllUsersFromIdst($admin_tree);
     }
     $query = "SELECT c.*, COUNT(cu.idUser) as subscriptions, SUM(cu.waiting) as pending" . " FROM %lms_course AS c" . " LEFT JOIN %lms_courseuser AS cu ON c.idCourse = cu.idCourse" . ($userlevelid != ADMIN_GROUP_GODADMIN ? !empty($admin_users) ? " AND cu.idUser IN (" . implode(',', $admin_users) . ")" : " AND cu.idUser IN (0)" : '') . " WHERE c.course_type <> 'assessment'";
     if ($filter) {
         if (isset($filter['id_category'])) {
             if (isset($filter['descendants']) && $filter['descendants']) {
                 $query .= " AND c.idCategory IN (" . implode(',', $this->getCategoryDescendants($filter['id_category'])) . ")";
             } else {
                 $query .= " AND c.idCategory = " . (int) $filter['id_category'];
             }
         }
         if (isset($filter['text']) && $filter['text'] !== '') {
             $query .= " AND( c.name LIKE '%" . $filter['text'] . "%'" . " OR c.code LIKE '%" . $filter['text'] . "%')";
         }
         if (isset($filter['waiting']) && $filter['waiting']) {
             $query_course = "SELECT idCourse" . " FROM %lms_courseuser" . " WHERE waiting = 1";
             $result = sql_query($query_course);
             $id_course_filter = array(0 => 0);
             while (list($id_course_tmp) = sql_fetch_row($result)) {
                 $id_course_filter[$id_course_tmp] = $id_course_tmp;
             }
             $query .= " AND c.idCourse IN (" . implode(',', $id_course_filter) . ")";
         }
         if (isset($filter['classroom']) && $filter['classroom']) {
             $query .= " AND course_type = 'classroom'";
         }
     }
     if ($userlevelid != ADMIN_GROUP_GODADMIN) {
         $all_courses = false;
         if (isset($admin_courses['course'][0])) {
             $all_courses = true;
         } elseif (isset($admin_courses['course'][-1])) {
             require_once _lms_ . '/lib/lib.catalogue.php';
             $cat_man = new Catalogue_Manager();
             $user_catalogue = $cat_man->getUserAllCatalogueId(Docebo::user()->getIdSt());
             if (count($user_catalogue) > 0) {
                 $courses = array(0);
                 foreach ($user_catalogue as $id_cat) {
                     $catalogue_course =& $cat_man->getCatalogueCourse($id_cat, true);
                     $courses = array_merge($courses, $catalogue_course);
                 }
                 foreach ($courses as $id_course) {
                     if ($id_course != 0) {
                         $admin_courses['course'][$id_course] = $id_course;
                     }
                 }
             } elseif (Get::sett('on_catalogue_empty', 'off') == 'on') {
                 $all_courses = true;
             }
         } else {
             $array_courses = array();
             $array_courses = array_merge($array_courses, $admin_courses['course']);
             if (!empty($admin_courses['coursepath'])) {
                 require_once _lms_ . '/lib/lib.coursepath.php';
                 $path_man = new CoursePath_Manager();
                 $coursepath_course =& $path_man->getAllCourses($admin_courses['coursepath']);
                 $array_courses = array_merge($array_courses, $coursepath_course);
             }
             if (!empty($admin_courses['catalogue'])) {
                 require_once _lms_ . '/lib/lib.catalogue.php';
                 $cat_man = new Catalogue_Manager();
                 foreach ($admin_courses['catalogue'] as $id_cat) {
                     $catalogue_course =& $cat_man->getCatalogueCourse($id_cat, true);
                     $array_courses = array_merge($array_courses, $catalogue_course);
                 }
             }
             $admin_courses['course'] = array_merge($admin_courses['course'], $array_courses);
         }
         if (!$all_courses) {
             if (empty($admin_courses['course'])) {
                 $query .= " AND 0 ";
             } else {
                 $query .= " AND c.idCourse IN (" . implode(',', $admin_courses['course']) . ") ";
             }
         }
     }
     $query .= " GROUP BY c.idCourse" . " ORDER BY " . $sort . " " . $dir;
     if ((int) $results > 0) {
         $query .= " LIMIT " . (int) $start_index . ", " . (int) $results;
     }
     return sql_query($query);
 }
예제 #6
0
 public function resetCoursepathValidityDates($id_path, $id_user)
 {
     if ($id_path <= 0 || $id_user <= 0) {
         return false;
     }
     require_once _lms_ . '/lib/lib.coursepath.php';
     $cman = new CoursePath_Manager();
     $courses = $cman->getAllCourses(array($id_path));
     if (empty($courses)) {
         return true;
     }
     $query = "UPDATE %lms_courseuser SET date_begin_validity = NULL, date_expire_validity = NULL " . " WHERE idCourse IN (" . implode(",", $courses) . ") AND idUser="******"";
     $res = sql_query($query);
     return $res ? true : false;
 }
 public function sel_users_coursepath_actionTask()
 {
     $id_path = Get::Req('id_path', DOTY_INT, 0);
     if ($id_path <= 0) {
         //...
         return;
     }
     $selection = Get::req('userselector_input', DOTY_MIXED, true);
     $new_selection = $selection['coursepath_subscriptions'];
     $old_selection = $this->model->getCoursePathSubscriptionsList($id_path);
     $new_selection = explode(",", $new_selection);
     $new_selection = $this->acl_man->getAllUsersFromSelection($new_selection);
     $_common = array_intersect($new_selection, $old_selection);
     $_to_add = array_diff($new_selection, $_common);
     $_to_del = array_diff($old_selection, $_common);
     $res = true;
     if (!$res) {
         $result = 'err_subscribe';
     } else {
         $result = 'ok_subcribe';
     }
     require_once _lms_ . '/lib/lib.coursepath.php';
     $path_man = new CoursePath_Manager();
     //1 - get list of the courses of the coursepath
     $base_url = 'index.php?r=' . $this->link . '/show_coursepath&id_path=' . (int) $id_path;
     $courses = $path_man->getAllCourses(array($id_path));
     if (empty($courses)) {
         Util::jump_to($base_url);
     }
     //2 - check if there are any editions or classrooms
     require_once $GLOBALS['where_lms'] . '/lib/lib.course.php';
     $course_man = new Man_Course();
     $classroom = $course_man->getAllCourses(false, 'classroom', $courses);
     $edition = $course_man->getAllCourses(false, 'edition', $courses);
     //3 - if yes, then make a second step in order to choose editions and classrooms
     if (!empty($classroom) || !empty($edition)) {
         $classroom_list = array();
         if (!empty($classroom)) {
             require_once _lms_ . '/lib/lib.date.php';
             $date_man = new DateManager();
             foreach ($classroom as $id_course => $info) {
                 $classrooms = $date_man->getCourseDate($id_course, true);
                 $classrooms_for_dropdown = array();
                 $classrooms_for_dropdown[0] = Lang::t('_NO_CLASSROOM_SUBSCRIPTION', 'coursepath');
                 foreach ($classrooms as $classroom_info) {
                     $classrooms_for_dropdown[$classroom_info['id_date']] = $classroom_info['code'] . ' - ' . $classroom_info['name'] . ' - ' . Format::date($classroom_info['date_begin'], 'date') . ' - ' . Format::date($classroom_info['date_end'], 'date');
                 }
                 $classroom_list[] = array('id_course' => $id_course, 'label' => $info['name'], 'list' => $classrooms_for_dropdown);
                 //cout(Form::getDropdown(Lang::t('_EDITION_SELECTION', 'coursepath').' : '.$info['code'].' - '.$info['name'], 'classroom_'.$id_course, 'classroom_'.$id_course, $edition_for_dropdown));
             }
         }
         $edition_list = array();
         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);
                 $editions_for_dropdown = array();
                 $editions_for_dropdown[0] = Lang::t('_NONE', 'coursepath');
                 foreach ($editions[$id_course] as $edition_info) {
                     $editions_for_dropdown[$edition_info['id_edition']] = $edition_info['code'] . ' - ' . $edition_info['name'] . ' - ' . Format::date($edition_info['date_begin'], 'date') . ' - ' . Format::date($edition_info['date_end'], 'date');
                 }
                 $edition_list[] = array('id_course' => $id_course, 'label' => $info['name'], 'list' => $edition_for_dropdown);
                 //cout(Form::getDropdown(Lang::t('_EDITION_SELECTION', 'coursepath').' : '.$info['code'].' - '.$info['name'], 'edition_'.$id_course, 'edition_'.$id_course, $edition_for_dropdown));
             }
         }
         $this->render('choose_editions_coursepath', array('id_path' => $id_path, 'courses_list' => $courses, 'editions_list' => $edition_list, 'classrooms_list' => $classroom_list, 'users_to_add' => $_to_add, 'users_to_del' => $_to_del, 'path_name' => $this->model->getCoursepathNameForSubscription($id_path)));
     } else {
         $path_man->subscribeUserToCoursePath($id_path, $_to_add);
         require_once _lms_ . '/lib/lib.course.php';
         foreach ($courses as $id_course) {
             $docebo_course = new DoceboCourse($id_course);
             $level_idst =& $docebo_course->getCourseLevel($id_course);
             if (count($level_idst) == 0 || $level_idst[1] == '') {
                 $level_idst =& $docebo_course->createCourseLevel($id_course);
             }
             foreach ($_to_add as $id_user) {
                 $level = 3;
                 //student
                 $waiting = false;
                 //$this->acl_man->addToGroup($level_idst[$level], $id_user);
                 $this->_addToCourseGroup($level_idst[$level], $id_user);
                 $this->model->id_course = $id_course;
                 $this->model->subscribeUser($id_user, $level, $waiting);
             }
         }
         Util::jump_to('index.php?r=' . $this->link . '/show_coursepath&id_path=' . (int) $id_path . '&res=' . $result);
     }
 }
예제 #8
0
 function addsubscriptionedition()
 {
     require_once _lms_ . '/lib/lib.subscribe.php';
     require_once _lms_ . '/lib/lib.coursepath.php';
     $cpath_man = new CoursePath_Manager();
     $subs_man = new CourseSubscribe_Management();
     $id_path = Get::req('id_path', DOTY_INT, 0);
     $user_selected = unserialize(urldecode(Get::req('users', DOTY_MIXED, array())));
     $courses = $cpath_man->getAllCourses(array($id_path));
     if (isset($_POST['undo']) || !isset($_POST['save'])) {
         Util::jump_to('index.php?modname=coursepath&amp;op=addsubscription&amp;id_path=' . $id_path);
     }
     $re = true;
     $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 ($subscribe_method != 1 && !checkPerm('moderate', true)) {
         $waiting = 1;
     } else {
         $waiting = 0;
     }
     $users_subsc = array();
     $course_man = new Man_Course();
     $assessment = $course_man->getAllCourses(false, 'assessment', $courses);
     $classroom = $course_man->getAllCourses(false, 'classroom', $courses);
     $edition = $course_man->getAllCourses(false, 'edition', $courses);
     $array_id_date = array();
     $array_id_edition = array();
     if (!empty($classroom)) {
         foreach ($classroom as $id_course => $info) {
             if (Get::req('classroom_' . $id_course, DOTY_INT, 0) != 0) {
                 $array_id_date[Get::req('classroom_' . $id_course, DOTY_INT, 0)] = Get::req('classroom_' . $id_course, DOTY_INT, 0);
             }
         }
     }
     if (!empty($edition)) {
         foreach ($edition as $id_course => $info) {
             if (Get::req('edition_' . $id_course, DOTY_INT, 0) != 0) {
                 $array_id_edition[Get::req('edition_' . $id_course, DOTY_INT, 0)] = Get::req('edition_' . $id_course, DOTY_INT, 0);
             }
         }
     }
     require_once _lms_ . '/lib/lib.date.php';
     $date_man = new DateManager();
     require_once _lms_ . '/lib/lib.edition.php';
     $edition_man = new EditionManager();
     while (list(, $id_user) = each($user_selected)) {
         $text_query = "\r\n\t\tINSERT INTO " . $GLOBALS['prefix_lms'] . "_coursepath_user\r\n\t\t( id_path, idUser, waiting, subscribed_by ) VALUES\r\n\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;
         if (!empty($assessment)) {
             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')");
             }
             reset($assessment);
         }
         if (!empty($array_id_date)) {
             foreach ($array_id_date as $id_date) {
                 $date_man->addUserToDate($id_date, $id_user, Docebo::user()->getIdSt());
             }
             reset($array_id_date);
         }
         if (!empty($array_id_edition)) {
             foreach ($array_id_edition as $id_edition) {
                 $edition_man->addUserToEdition($id_edition, $id_user, Docebo::user()->getIdSt());
             }
             reset($array_id_edition);
         }
     }
     // 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&amp;op=pathlist&result=' . ($re ? 'ok' : 'err'));
 }
예제 #9
0
 public function subscribeToCoursePath()
 {
     $id_path = Get::req('id_path', DOTY_INT, 0);
     $id_user = Docebo::user()->getIdSt();
     $query_pathlist = "\n\t\tSELECT path_name, subscribe_method\n\t\tFROM " . $GLOBALS['prefix_lms'] . "_coursepath\n\t\tWHERE id_path = '" . $id_path . "'\n\t\tORDER BY path_name ";
     list($path_name, $subscribe_method) = sql_fetch_row(sql_query($query_pathlist));
     if ($subscribe_method == 1) {
         $waiting = 1;
     } else {
         $waiting = 0;
     }
     $text_query = "\n\t\t\tINSERT INTO " . $GLOBALS['prefix_lms'] . "_coursepath_user\n\t\t\t( id_path, idUser, waiting, subscribed_by ) VALUES\n\t\t\t( '" . $id_path . "', '" . $id_user . "', '" . $waiting . "', '" . getLogUserId() . "' )";
     $re_s = sql_query($text_query);
     /////////////////////////
     if ($waiting == 0) {
         require_once _lms_ . '/lib/lib.subscribe.php';
         require_once _lms_ . '/lib/lib.coursepath.php';
         $cpath_man = new CoursePath_Manager();
         $subs_man = new CourseSubscribe_Management();
         $id_path = Get::req('id_path', DOTY_INT, 0);
         $user_selected = unserialize(urldecode(Get::req('users', DOTY_MIXED, array())));
         $courses = $cpath_man->getAllCourses(array($id_path));
         $users_subsc = array($id_user);
         $re &= $subs_man->multipleSubscribe($users_subsc, $courses, 3);
     }
     /*
     		qui non posso intervenire, si devono scegliere gli assesment e le edizioni... da admin ci sono form
     		$course_man = new Man_Course();
     		$assessment = $course_man->getAllCourses(false, 'assessment', $courses);
     		$classroom = $course_man->getAllCourses(false, 'classroom', $courses);
     		$edition = $course_man->getAllCourses(false, 'edition', $courses);
     		if(!empty($assessment))
     		{
     			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')");
     			reset($assessment);
     		}
     		if(!empty($array_id_date))
     		{
     			foreach($array_id_date as $id_date)
     				$date_man->addUserToDate($id_date, $id_user, Docebo::user()->getIdSt());
     			reset($array_id_date);
     		}
     		if(!empty($array_id_edition))
     		{
     			foreach($array_id_edition as $id_edition)
     				$edition_man->addUserToEdition($id_edition, $id_user, Docebo::user()->getIdSt());
     			reset($array_id_edition);
     		}
     */
     $res['success'] = true;
     if ($waiting == 1) {
         $res['new_status'] = '<p class="cannot_subscribe">' . Lang::t('_WAITING', 'catalogue') . '</p>';
     } else {
         $res['new_status'] = '<p class="cannot_subscribe">' . Lang::t('_USER_STATUS_SUBS', 'catalogue') . '</p>';
     }
     $res['message'] = $res['message'] = UIFeedback::info(Lang::t('_SUBSCRIPTION_CORRECT', 'catalogue'), true);
     echo $this->json->encode($res);
 }