public function delCourse($id_course) { if ((int) $id_course <= 0) { return false; } require_once _lms_ . '/lib/lib.course.php'; require_once _base_ . '/lib/lib.upload.php'; $course_man = new Man_Course(); //remove course subscribed------------------------------------------ $levels =& $course_man->getCourseIdstGroupLevel($id_course); foreach ($levels as $lv => $idst) { Docebo::aclm()->deleteGroup($idst); } $alluser = getIDGroupAlluser($id_course); Docebo::aclm()->deleteGroup($alluser); $course_man->removeCourseRole($id_course); $course_man->removeCourseMenu($id_course); $query = "DELETE FROM %lms_courseuser WHERE idCourse = '" . (int) $id_course . "'"; $qres = sql_query($query); if (!$qres) { return false; } //--- remove course data --------------------------------------------------- $query_course = "SELECT imgSponsor, img_course, img_material, img_othermaterial, course_demo, course_type, has_editions\n\t\t\tFROM %lms_course\n\t\t\tWHERE idCourse = '" . (int) $id_course . "'"; $qres = sql_query($query_course); list($file_sponsor, $file_logo, $file_material, $file_othermaterial, $file_demo, $course_type, $course_edition) = sql_fetch_row($qres); require_once _base_ . '/lib/lib.upload.php'; $path = '/appLms/' . Get::sett('pathcourse'); if (substr($path, -1) != '/' && substr($path, -1) != '\\') { $path .= '/'; } sl_open_fileoperations(); if ($file_sponsor != '') { sl_unlink($path . $file_sponsor); } if ($file_logo != '') { sl_unlink($path . $file_logo); } if ($file_material != '') { sl_unlink($path . $file_material); } if ($file_othermaterial != '') { sl_unlink($path . $file_othermaterial); } if ($file_demo != '') { sl_unlink($path . $file_demo); } sl_close_fileoperations(); //if the scs exist delete course rooms if ($GLOBALS['where_scs'] !== false) { require_once _scs_ . '/lib/lib.room.php'; $re = deleteRoom(false, 'course', $id_course); } //--- delete classroom or editions ----------------------------------------- if ($course_type == 'classroom') { require_once _lms_ . '/admin/model/ClassroomAlms.php'; $classroom_model = new ClassroomAlms($id_course); $classroom = $classroom_model->classroom_man->getDateIdForCourse($id_course); foreach ($classroom as $id_date) { if (!$classroom_model->classroom_man->delDate($id_date)) { return false; } } } elseif ($course_edition == 1) { require_once _lms_ . '/admin/model/EditionAlms.php'; $edition_model = new EditionAlms($id_course); $editions = $edition_model->classroom_man->getEditionIdFromCourse($id_course); foreach ($editions as $id_edition) { if (!$edition_model->edition_man->delEdition($id_edition)) { return false; } } } //--- end classrooms or editions ------------------------------------------- //--- clear LOs ------------------------------------------------------------ require_once _lms_ . '/lib/lib.module.php'; require_once _lms_ . '/lib/lib.param.php'; require_once _lms_ . '/class.module/track.object.php'; $arr_lo_param = array(); $arr_lo_track = array(); $arr_org_access = array(); $query = "SELECT * FROM %lms_organization WHERE idCourse = " . (int) $id_course; $ores = sql_query($query); while ($obj = sql_fetch_object($ores)) { $deleted = true; if ($obj->idResource != 0 && $obj->objectType != "") { $lo = createLO($obj->objectType); $deleted = $lo->del($obj->idResource); //delete learning object } if ($deleted) { $arr_lo_track[] = $obj->idOrg; $arr_org_access[] = $obj->idOrg; //collect org access ids $arr_lo_param[] = $obj->idParam; //collect idParams ids } } //delete all organizations references for the course $query = "DELETE FROM %lms_organization WHERE idCourse = " . (int) $id_course; $res = sql_query($query); //delete LOs trackings if (!empty($arr_lo_track)) { $track_object = new Track_Object(false, 'course_lo'); $track_object->delIdTrackFromCommon($arr_lo_track); } //delete org accesses if (!empty($arr_org_access)) { $query = "DELETE FROM %lms_organization_access\n\t\t\t\tWHERE idOrgAccess IN (" . implode(",", $arr_org_access) . ")"; $res = sql_query($query); } //delete lo params if (!empty($arr_lo_param)) { $query = "DELETE FROM %lms_lo_param\n\t\t\t\tWHERE idParam IN (" . implode(",", $arr_lo_param) . ")"; } //--- end LOs -------------------------------------------------------------- //--- clear coursepath references ------------------------------------------ require_once _lms_ . '/lib/lib.coursepath.php'; $cman = new CoursePath_Manager(); $cman->deleteCourseFromCoursePaths($id_course); //--- end coursepath references -------------------------------------------- //--- clear certificates assignments --------------------------------------- require_once _lms_ . '/lib/lib.certificate.php'; $cman = new Certificate(); $cman->deleteCourseCertificateAssignments($id_course); //--- end certificates assignments ----------------------------------------- //--- clear labels --------------------------------------------------------- $lmodel = new LabelAlms(); $lmodel->clearCourseLabel($id_course); //--- end labels ----------------------------------------------------------- //--- clear advices -------------------------------------------------------- require_once _lms_ . '/lib/lib.advice.php'; $aman = new Man_Advice(); $aman->deleteAllCourseAdvices($id_course); //--- end advices ---------------------------------------------------------- //--- clear coursereports -------------------------------------------------- require_once _lms_ . '/lib/lib.coursereport.php'; $cman = new CourseReportManager(); $cman->deleteAllReports($id_course); //--- end coursereports ---------------------------------------------------- //--- clear competences ---------------------------------------------------- $cmodel = new CompetencesAdm(); $cmodel->deleteAllCourseCompetences($id_course); //--- end competences ------------------------------------------------------ //--- finally delete course from courses table ----------------------------- if (!sql_query("DELETE FROM %lms_course WHERE idCourse = '" . $id_course . "'")) { return false; } return true; }
function assignMenu() { checkPerm('mod'); require_once _base_ . '/lib/lib.form.php'; require_once _lms_ . '/lib/lib.course.php'; if (isset($_POST['assign'])) { $id_course = importVar('id_course', true, 0); $id_custom = importVar('selected_menu', true, 0); $query_course = "SELECT course_type FROM " . $GLOBALS['prefix_lms'] . "_course WHERE idCourse = '" . $id_course . "'"; list($course_type) = sql_fetch_row(sql_query($query_course)); if ($course_type === 'classroom') { $url = 'index.php?r=alms/classroom/show&result='; } else { $url = 'index.php?modname=course&op=course_list&result='; } require_once $GLOBALS['where_lms'] . '/lib/lib.manmenu.php'; require_once $GLOBALS['where_lms'] . '/lib/lib.course.php'; $acl_man =& Docebo::user()->getAclManager(); $course_man = new Man_Course(); $levels =& $course_man->getCourseIdstGroupLevel($id_course); if (empty($levels) || implode('', $levels) == '') { $levels =& DoceboCourse::createCourseLevel($id_course); } $course_man->removeCourseRole($id_course); $course_man->removeCourseMenu($id_course); $course_idst =& $course_man->getCourseIdstGroupLevel($id_course); $result = cerateCourseMenuFromCustom($id_custom, $id_course, $course_idst); if ($_SESSION['idCourse'] == $id_course) { $query = "SELECT module.idModule, main.idMain\r\n\t\t\t\t\t\tFROM ( " . $GLOBALS['prefix_lms'] . "_menucourse_main AS main JOIN\r\n\t\t\t\t\t\t" . $GLOBALS['prefix_lms'] . "_menucourse_under AS un ) JOIN\r\n\t\t\t\t\t\t" . $GLOBALS['prefix_lms'] . "_module AS module\r\n\t\t\t\t\t\tWHERE main.idMain = un.idMain AND un.idModule = module.idModule\r\n\t\t\t\t\t\tAND main.idCourse = '" . (int) $_SESSION['idCourse'] . "'\r\n\t\t\t\t\t\tAND un.idCourse = '" . (int) $_SESSION['idCourse'] . "'\r\n\t\t\t\t\t\tORDER BY main.sequence, un.sequence\r\n\t\t\t\t\t\tLIMIT 0,1"; list($id_module, $id_main) = sql_fetch_row(sql_query($query)); $_SESSION['current_main_menu'] = $id_main; $_SESSION['sel_module_id'] = $id_module; //loading related ST Docebo::user()->loadUserSectionST('/lms/course/public/'); Docebo::user()->SaveInSession(); } Util::jump_to($url . ($result ? 'ok_course' : 'fail_course')); } else { $lang =& DoceboLanguage::CreateInstance('course', 'lms'); //list($id_course) = each($_POST['assign_menu_course']); $id_course = importVar('id_course', true, 0); require_once _base_ . '/lib/lib.form.php'; require_once $GLOBALS['where_lms'] . '/admin/modules/category/category.php'; require_once $GLOBALS['where_lms'] . '/admin/modules/category/tree.category.php'; require_once $GLOBALS['where_lms'] . '/lib/lib.manmenu.php'; require_once $GLOBALS['where_framework'] . '/lib/lib.sessionsave.php'; $form = new Form(); $menu_custom = getAllCustom(); $sel_custom = key($menu_custom); reset($menu_custom); $query_course = "SELECT course_type FROM " . $GLOBALS['prefix_lms'] . "_course WHERE idCourse = '" . $id_course . "'"; list($course_type) = sql_fetch_row(sql_query($query_course)); if ($course_type === 'classroom') { $url = 'index.php?r=alms/classroom/show'; } else { $url = 'index.php?modname=course&op=course_list'; } $title_area = array($url => $lang->def('_COURSE'), $lang->def('_ASSIGN_MENU')); $GLOBALS['page']->setWorkingZone('content'); $GLOBALS['page']->add(getTitleArea($title_area, 'course') . '<div class="std_block">' . $form->openForm('course_creation', 'index.php?modname=course&op=assignMenu') . $form->openElementSpace() . $form->getHidden('id_course', 'id_course', $id_course) . $form->getDropdown($lang->def('_COURSE_MENU_TO_ASSIGN'), 'selected_menu', 'selected_menu', $menu_custom, $sel_custom) . $form->closeElementSpace() . $form->openButtonSpace() . $form->getButton('assign', 'assign', $lang->def('_ASSIGN_USERS')) . $form->getButton('course_undo', 'course_undo', $lang->def('_UNDO')) . $form->closeButtonSpace() . $form->closeForm() . '</div>'); } }
public function menu() { if (!$this->permissions['mod']) { $this->render('invalid', array('message' => $this->_getErrorMessage('no permission'), 'back_url' => 'index.php?r=' . $this->base_link_course . '/show')); return; } if (isset($_POST['undo'])) { Util::jump_to('index.php?r=' . $this->base_link_course . '/show'); } $id_course = Get::req('id_course', DOTY_INT, 0); if (isset($_POST['assign'])) { $id_custom = Get::req('selected_menu', DOTY_INT, 0); require_once $GLOBALS['where_lms'] . '/lib/lib.manmenu.php'; require_once $GLOBALS['where_lms'] . '/lib/lib.course.php'; $acl_man =& Docebo::user()->getAclManager(); $course_man = new Man_Course(); $levels =& $course_man->getCourseIdstGroupLevel($id_course); if (empty($levels) || implode('', $levels) == '') { $levels =& DoceboCourse::createCourseLevel($id_course); } $course_man->removeCourseRole($id_course); $course_man->removeCourseMenu($id_course); $course_idst =& $course_man->getCourseIdstGroupLevel($id_course); $result = cerateCourseMenuFromCustom($id_custom, $id_course, $course_idst); if ($_SESSION['idCourse'] == $id_course) { $query = "SELECT module.idModule, main.idMain\n\t\t\t\t\t\t\tFROM ( " . $GLOBALS['prefix_lms'] . "_menucourse_main AS main JOIN\n\t\t\t\t\t\t\t" . $GLOBALS['prefix_lms'] . "_menucourse_under AS un ) JOIN\n\t\t\t\t\t\t\t" . $GLOBALS['prefix_lms'] . "_module AS module\n\t\t\t\t\t\t\tWHERE main.idMain = un.idMain AND un.idModule = module.idModule\n\t\t\t\t\t\t\tAND main.idCourse = '" . (int) $_SESSION['idCourse'] . "'\n\t\t\t\t\t\t\tAND un.idCourse = '" . (int) $_SESSION['idCourse'] . "'\n\t\t\t\t\t\t\tORDER BY main.sequence, un.sequence\n\t\t\t\t\t\t\tLIMIT 0,1"; list($id_module, $id_main) = sql_fetch_row(sql_query($query)); $_SESSION['current_main_menu'] = $id_main; $_SESSION['sel_module_id'] = $id_module; //loading related ST Docebo::user()->loadUserSectionST('/lms/course/public/'); Docebo::user()->SaveInSession(); } if ($result) { Util::jump_to('index.php?r=' . $this->base_link_course . '/show&res=_up_menu_ok'); } Util::jump_to('index.php?r=' . $this->base_link_course . '/show&res=_up_menu_err'); } else { require_once $GLOBALS['where_lms'] . '/lib/lib.manmenu.php'; $menu_custom = getAllCustom(); $menu_custom = array(0 => Lang::t('_SELECT', 'standard') . ' ...') + $menu_custom; reset($menu_custom); $course_info = $this->model->getInfo($id_course); $course_name = ($course_info['code'] !== '' ? '[' . $course_info['code'] . '] ' : '') . $course_info['name']; $this->render('menu', array('menu_custom' => $menu_custom, 'sel_custom' => 0, 'id_course' => $id_course, 'base_link_course' => $this->base_link_course, 'course_name' => $course_name)); } }