Exemple #1
0
 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;
 }
Exemple #2
0
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&amp;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));
     }
 }