Beispiel #1
0
 function loadBody()
 {
     //EFFECTS: include module language and module main file
     switch ($GLOBALS['op']) {
         case "play":
             $id_poll = importVar('id_poll', true, 0);
             $id_param = importVar('id_param', true, 0);
             $back_url = importVar('back_url');
             $object_poll = createLO('poll', $id_poll);
             $object_poll->play($id_poll, $id_param, unserialize(urldecode($back_url)));
             break;
         default:
             parent::loadBody();
     }
 }
Beispiel #2
0
 function loadBody()
 {
     //EFFECTS: include module language and module main file
     switch ($GLOBALS['op']) {
         case "play":
             $idCategory = importVar('idCategory', true, 0);
             $id_param = importVar('id_param', true, 0);
             $back_url = importVar('back_url');
             $object_link = createLO('link', $idCategory);
             $object_link->play($idCategory, $id_param, urldecode($back_url));
             break;
         default:
             parent::loadBody();
     }
 }
Beispiel #3
0
 function homerepo(&$treeView)
 {
     // manage items addition
     if (isset($_POST['_repoproperties_save'])) {
         $treeView->tdb->modifyItem($_POST);
         $treeView->op = '';
     } else {
         if (isset($_POST['_repoproperties_cancel'])) {
             $treeView->op = '';
         }
     }
     switch ($treeView->op) {
         case 'newfolder':
         case 'renamefolder':
         case 'movefolder':
         case 'deletefolder':
             homerepo_opfolder($treeView, $treeView->op);
             break;
         case 'import':
             homerepo_import($treeView);
             break;
         case 'createLO':
             // Save state in session
             global $modname;
             $GLOBALS['page']->add($treeView->LOSelector($modname), 'content');
             break;
         case 'createLOSel':
             global $modname;
             $lo = createLO($_POST['radiolo']);
             $lo->create('index.php?modname' . $modname . '&op=created');
             break;
         case 'properties':
         case 'properties_accessgroups_remove':
         case 'properties_accessgroups_add':
         case 'properties_accessusers_remove':
         case 'properties_accessusers_add':
             homerepo_itemproperties($treeView, $_POST, $treeView->opContextId);
             break;
         case 'treeview_error':
             homerepo_showerror($treeView);
             break;
         case 'save':
             $treeView->tdb->modifyItem($_POST);
         default:
             homerepo_display($treeView);
             break;
     }
 }
 function extendedParsing($arrayState, $arrayExpand, $arrayCompress)
 {
     $this->selection_parseInput($arrayState);
     if (isset($arrayState[$this->_getOpCreateLO()])) {
         $this->op = 'createLO';
     } elseif (isset($arrayState[$this->_getOpCreateLOSel()])) {
         $this->op = 'createLOSel';
         $this->creatingObjectType = $_POST['radiolo'];
     } elseif (isset($_GET[$this->_getOpCreateLOEnd()])) {
         // get result and id resource
         $this->op = 'createLOEnd';
         if (isset($_GET['create_result'])) {
             if ($_GET['create_result'] == '1') {
                 $idResource = (int) $_GET['id_lo'];
                 $lo = createLO($this->creatingObjectType, $idResource);
                 $this->tdb->addItem($this->getSelectedFolderId(), $lo->getTitle(), $this->creatingObjectType, $idResource, 0, 0, getLogUserId(), '1.0', '_DIFFICULT_MEDIUM', '', '', '', '', date("Y-m-d H:i:s"));
                 $this->refresh = TRUE;
             } elseif ($_GET['create_result'] == '2') {
                 $idMultiResource = (int) $_GET['id_lo'];
                 $multiLo = createLO($this->creatingObjectType);
                 $arrIdResources = $multiLo->getMultipleResource($idMultiResource);
                 foreach ($arrIdResources as $idResource) {
                     $lo = createLO($this->creatingObjectType, $idResource);
                     $this->tdb->addItem($this->getSelectedFolderId(), $lo->getTitle(), $this->creatingObjectType, $idResource, 0, 0, getLogUserId(), '1.0', '_DIFFICULT_MEDIUM', '', '', '', '', date("Y-m-d H:i:s"));
                 }
                 $this->refresh = TRUE;
             }
         }
     } elseif (isset($arrayState[$this->_getOpEditLO()])) {
         $this->op = 'editLO';
     } elseif (isset($_GET[$this->_getOpEditLOEnd()])) {
         $this->op = 'editLOEnd';
     } elseif (isset($arrayState[$this->_getOpCopyLO()])) {
         $this->op = 'copyLO';
     } elseif (isset($_GET[$this->_getOpCopyLOSel()])) {
         $this->op = 'copyLOSel';
     } elseif (isset($_GET[$this->_getOpPlayEnd()])) {
         $this->op = 'itemdone';
     }
     if (isset($arrayState[$this->_getOpCopyLOEndOk()])) {
         // op now can be copyLOSel, but we override it
         require_once $GLOBALS['where_framework'] . '/lib/lib.sessionsave.php';
         $saveObj = new Session_Save();
         $saveName = $_GET['crepo'];
         if ($saveObj->nameExists($saveName)) {
             $saveData =& $saveObj->load($saveName);
             $lo = createLO($saveData['objectType']);
             $idResource = $lo->copy((int) $saveData['idResource']);
             if ($idResource != 0) {
                 $lo = createLO($saveData['objectType']);
                 $this->tdb->addItem($this->getSelectedFolderId(), $saveData['name'], $saveData['objectType'], $idResource, 0, 0, getLogUserId(), '1.0', '_DIFFICULT_MEDIUM', '', '', '', '', date("Y-m-d H:i:s"));
                 $this->refresh = TRUE;
             }
         }
         $this->op = 'copyLOEndOk';
     } elseif (isset($arrayState[$this->_getOpCopyLOEndCancel()])) {
         // op now can be copyLOSel, but we override it
         $this->op = 'copyLOEndCancel';
     }
     if (isset($arrayState[$this->id])) {
         foreach ($arrayState[$this->id] as $key => $action) {
             if ($key == $this->_getOpPropertiesId()) {
                 if (is_array($action)) {
                     $id = key($action);
                     $this->op = 'properties';
                     $this->opContextId = $id;
                 }
             } elseif ($key == $this->_getOpEditLOId()) {
                 if (is_array($action)) {
                     $id = key($action);
                     if ($id > 0) {
                         $this->op = 'editLO';
                         $this->selectedFolder = $id;
                     }
                 }
             } elseif ($key == $this->_getOpCopyLOId()) {
                 if (is_array($action)) {
                     $id = key($action);
                     if ($id > 0) {
                         $this->op = 'copyLO';
                         $this->selectedFolder = $id;
                     }
                 }
             }
         }
     }
     foreach ($arrayState as $nameField => $valueField) {
         if (strstr($nameField, $this->_getOpPropertiesId())) {
             $id = substr($nameField, strlen($this->_getOpPropertiesId()));
             $this->op = 'properties';
             $this->opContextId = $id;
         } else {
             if (strstr($nameField, $this->_getOpEditLOId())) {
                 $id = substr($nameField, strlen($this->_getOpEditLOId()));
                 if (strlen($id) > 0) {
                     $this->op = 'editLO';
                     $this->selectedFolder = $id;
                 }
             } else {
                 if (strstr($nameField, $this->_getOpCopyLOId())) {
                     $id = substr($nameField, strlen($this->_getOpCopyLOId()));
                     if (strlen($id) > 0) {
                         $this->op = 'copyLO';
                         $this->selectedFolder = $id;
                     }
                 }
             }
         }
     }
     if ($this->pathToExpand != NULL) {
         if (is_array($this->expandList)) {
             $this->expandList = $this->expandList + $this->pathToExpand;
         } else {
             $this->expandList = $this->pathToExpand;
         }
     }
 }
 function loadBody()
 {
     global $op, $modname;
     if ($this->treeView === NULL) {
         $this->initialize();
     }
     switch ($this->treeView->op) {
         case "import":
             import($this->treeView);
             break;
         case 'createLO':
             global $modname;
             // save state
             require_once $GLOBALS['where_framework'] . '/lib/lib.sessionsave.php';
             $saveObj = new Session_Save();
             $saveName = $saveObj->getName('homerepo' . getLogUserId(), true);
             $saveObj->save($saveName, $this->treeView->getState());
             $GLOBALS['page']->add($this->treeView->LOSelector($modname, 'index.php?modname=' . $modname . '&op=display&shr=' . $saveName . '&' . $this->treeView->_getOpCreateLOEnd() . '=1'), 'content');
             break;
         case 'createLOSel':
             global $modname;
             // save state
             require_once $GLOBALS['where_framework'] . '/lib/lib.sessionsave.php';
             $saveObj = new Session_Save();
             $saveName = $saveObj->getName('homerepo' . getLogUserId(), true);
             $saveObj->save($saveName, $this->treeView->getState());
             // start learning object creation
             $lo = createLO($_POST['radiolo']);
             $lo->create('index.php?modname=' . $modname . '&op=display&shr=' . $saveName . '&' . $this->treeView->_getOpCreateLOEnd() . '=1');
             break;
         case 'editLO':
             global $modname;
             // save state
             require_once $GLOBALS['where_framework'] . '/lib/lib.sessionsave.php';
             $saveObj = new Session_Save();
             $saveName = $saveObj->getName('homerepo' . getLogUserId(), true);
             $saveObj->save($saveName, $this->treeView->getState());
             $folder = $this->repoDb->getFolderById($this->treeView->getSelectedFolderId());
             $lo = createLO($folder->otherValues[REPOFIELDOBJECTTYPE]);
             $lo->edit($folder->otherValues[REPOFIELDIDRESOURCE], 'index.php?modname=' . $modname . '&op=display&shr=' . $saveName . '&' . $this->treeView->_getOpEditLOEnd() . '=1');
             break;
         case 'playitem':
             global $modname;
             // save state
             require_once $GLOBALS['where_framework'] . '/lib/lib.sessionsave.php';
             $saveObj = new Session_Save();
             $saveName = $saveObj->getName('homerepo' . getLogUserId(), true);
             $saveObj->save($saveName, $this->treeView->getState());
             $folder = $this->repoDb->getFolderById($this->treeView->getItemToPlay());
             $lo = createLO($folder->otherValues[REPOFIELDOBJECTTYPE]);
             $idItem = $folder->otherValues[REPOFIELDIDRESOURCE];
             $back_url = 'index.php?modname=' . $modname . '&op=homerepo&shr=' . $saveName . '&' . $this->treeView->_getOpPlayEnd() . '=' . $folder->id;
             $lo->play($idItem, NULL, $back_url);
             break;
         case 'copyLOSel':
             $GLOBALS['page']->add($this->treeView->load());
             break;
         case 'copyLOEndOk':
         case 'copyLOEndCancel':
             global $modname;
             require_once $GLOBALS['where_framework'] . '/lib/lib.sessionsave.php';
             $saveObj = new Session_Save();
             $saveName = $_GET['crepo'];
             if ($saveObj->nameExists($saveName)) {
                 $saveData =& $saveObj->load($saveName);
                 $saveObj->delete($saveName);
                 Util::jump_to(' index.php?modname=' . $modname . '&op=' . $saveData['repo']);
             }
             Util::jump_to(' index.php?modname=' . $modname . '&op=display');
             break;
         case 'copyLO':
             global $modname;
             // save state
             require_once $GLOBALS['where_framework'] . '/lib/lib.sessionsave.php';
             $saveObj = new Session_Save();
             $saveName = $saveObj->getName('crepo', true);
             $folder = $this->treeView->tdb->getFolderById($this->treeView->selectedFolder);
             $saveData = array('repo' => 'homerepo', 'id' => $this->treeView->getSelectedFolderId(), 'objectType' => $folder->otherValues[REPOFIELDOBJECTTYPE], 'name' => $folder->getFolderName(), 'idResource' => $folder->otherValues[REPOFIELDIDRESOURCE]);
             $saveObj->save($saveName, $saveData);
             Util::jump_to(' index.php?modname=' . $modname . '&op=display&crepo=' . $saveName . '&' . $this->treeView->_getOpCopyLOSel() . '=1');
         case 'createLOEnd':
             // insertion managed by extendParsing
         // insertion managed by extendParsing
         case "display":
         case "homerepo":
         default:
             /*$GLOBALS['page']->addStart(
             			getTitleArea(Lang::t('_HOMEREPO', 'homerepo', 'lms'), 'homerepo')
             			.'<div class="std_block">', 'content');
             		$GLOBALS['page']->addEnd('</div>', 'content');
             		if( isset($_SESSION['last_error']) )
             			if( $_SESSION['last_error'] != "" ) {
             				$GLOBALS['page']->add( $_SESSION['last_error'], 'content' );
             				unset( $_SESSION['last_error'] );
             			}*/
             homerepo($this->treeView);
             break;
     }
 }
Beispiel #6
0
 /**
  * function deleteAllTree()
  *	Delete all items in tree, all folders, all records!
  *	@return bool TRUE if success, FALSE otherwise
  **/
 function deleteAllTree()
 {
     // loop on all items
     require_once $GLOBALS['where_lms'] . '/lib/lib.param.php';
     require_once $GLOBALS['where_lms'] . '/class.module/track.object.php';
     $nullVal = NULL;
     $coll = $this->getFoldersCollection($nullVal);
     while ($folder = $coll->getNext()) {
         if ($folder->otherValues[REPOFIELDIDRESOURCE] != 0) {
             $lo = createLO($folder->otherValues[REPOFIELDOBJECTTYPE]);
             $this->deleteAllAccessUG($folder->id);
             delAllLOParam($folder->otherValues[ORGFIELDIDPARAM]);
             Track_Object::delIdTrackFromCommon($folder->id);
             if ($lo->del($folder->otherValues[REPOFIELDIDRESOURCE]) === FALSE) {
                 return FALSE;
             }
         }
     }
     // remove all records from repo
     TreeDb::deleteAllTree();
     return TRUE;
 }
Beispiel #7
0
function organization_play(&$treeView, $idItem)
{
    global $modname, $op;
    require_once $GLOBALS['where_lms'] . '/lib/lib.param.php';
    $tdb = $treeView->getTreeDb();
    $item = $tdb->getFolderById($idItem);
    $values = $item->otherValues;
    $objectType = $values[REPOFIELDOBJECTTYPE];
    $idResource = $values[REPOFIELDIDRESOURCE];
    $idParams = $values[ORGFIELDIDPARAM];
    $param = $treeView->printState(FALSE);
    $back_url = 'index.php?modname=' . $modname . '&op=organization&itemdone=' . $idItem;
    $lo = createLO($objectType, $idResource);
    $lo->play($idResource, $idParams, $back_url);
}
Beispiel #8
0
 case "uppoll":
     uppoll();
     break;
 case "modpollgui":
     if (isset($_GET['poll_saved']) || isset($_POST['poll_saved'])) {
         //other enter
         $var_save = importVar('poll_saved');
         $var_loaded = loadPollStatus($var_save);
         $id_poll = $var_loaded['id_poll'];
         $back_url = urlencode($var_loaded['back_url']);
         fixPageSequence($id_poll);
     } else {
         $id_poll = importVar('id_poll', true, 0);
         $back_url = importVar('back_url');
     }
     $object_poll = createLO('poll', $id_poll);
     $object_poll->edit($id_poll, urldecode($back_url));
     break;
 case "fixsequence":
     fixPollSequence();
     break;
 case "movequest":
     movequest();
     break;
 case "movedown":
     movequestion('down');
     break;
 case "moveup":
     movequestion('up');
     break;
 case "addquest":
 public function playTask()
 {
     $id_game = Get::req('id_game', DOTY_INT, 0);
     $model = new GamesAlms();
     $game = $model->findByPk($id_game, Docebo::user()->getArrSt());
     if ($game != false) {
         switch ($game['type_of']) {
             case "scorm":
                 $lo = createLO('scormorg', $game['id_resource'], 'games');
                 if ($game['id_resource'] != 0 && $lo) {
                     $lo->env_play($id_game, 'index.php?r=games/show');
                 }
                 break;
         }
     }
     //endif
     Util::jump_to('index.php?r=games/show');
 }
Beispiel #10
0
     uptest();
     break;
 case "modtestgui":
     Util::get_js(Get::rel_path('base') . '/lib/lib.elem_selector.js', true, true);
     if (isset($_GET['test_saved']) || isset($_POST['test_saved'])) {
         //other enter
         $var_save = importVar('test_saved');
         $var_loaded = loadTestStatus($var_save);
         $idTest = $var_loaded['idTest'];
         $back_url = urlencode($var_loaded['back_url']);
         fixPageSequence($idTest);
     } else {
         $idTest = importVar('idTest', true, 0);
         $back_url = importVar('back_url');
     }
     $object_test = createLO('test', $idTest);
     $object_test->edit($idTest, urldecode($back_url));
     break;
 case "movequest":
     movequest();
     break;
 case "movedown":
     movequestion('down');
     break;
 case "moveup":
     movequestion('up');
     break;
 case "fixsequence":
     fixQuestSequence();
     break;
 case "addquest":
Beispiel #11
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;
 }
 function loadBody()
 {
     global $op, $modname;
     if ($this->treeView === NULL) {
         $this->initialize();
     }
     // tree indipendent play lo -----------------------------------------------
     if ($GLOBALS['op'] == 'scorm_track') {
         require_once $GLOBALS['where_lms'] . '/modules/organization/orgresults.php';
         $user = Get::req('id_user', DOTY_INT, false);
         $org = Get::req('id_org', DOTY_INT, false);
         getTrackingTable($user, $org);
         return;
     }
     if ($GLOBALS['op'] == 'scorm_history') {
         require_once _lms_ . '/modules/organization/orgresults.php';
         $user = Get::req('id_user', DOTY_INT, false);
         $obj = Get::req('id_obj', DOTY_INT, false);
         getHistoryTable($user, $obj);
         return;
     }
     if ($GLOBALS['op'] == 'scorm_interactions') {
         require_once _lms_ . '/modules/organization/orgresults.php';
         //__FILE__.'/appLms/modules/organization/orgresults.php');
         $user = Get::req('id_user', DOTY_INT, false);
         $track = Get::req('id_track', DOTY_INT, false);
         getInteractionsTable($user, $track);
         return;
     }
     if ($GLOBALS['op'] === 'test_track') {
         require_once _lms_ . '/modules/organization/orgresults.php';
         $user = Get::req('id_user', DOTY_INT, false);
         $org = Get::req('id_org', DOTY_INT, false);
         getCompilationTable($user, $org);
         return;
     }
     if ($GLOBALS['op'] == 'custom_playitem') {
         require_once $GLOBALS['where_framework'] . '/lib/lib.sessionsave.php';
         $saveObj = new Session_Save();
         $saveName = $saveObj->getName('organization' . $_SESSION['idCourse'], true);
         $saveObj->save($saveName, $this->treeView->getState());
         $id_item = importVar('id_item');
         $folder = $this->repoDb->getFolderById($id_item);
         $lo = createLO($folder->otherValues[REPOFIELDOBJECTTYPE]);
         $idItem = $folder->otherValues[REPOFIELDIDRESOURCE];
         if (isset($_GET['edit']) && $_GET['edit']) {
             $back_url = 'index.php?modname=' . $modname . '&op=custom_enditem&edit=1&id_item=' . $id_item;
         } else {
             $back_url = 'index.php?modname=' . $modname . '&op=custom_enditem&id_item=' . $id_item;
         }
         $lo->play($idItem, $folder->otherValues[ORGFIELDIDPARAM], $back_url);
         return;
     }
     // tree indipendent play end --------------------------------------------
     if ($GLOBALS['op'] == 'custom_enditem') {
         $lang =& DoceboLanguage::createInstance('organization', 'lms');
         require_once $GLOBALS['where_lms'] . '/class.module/track.object.php';
         require_once $GLOBALS['where_lms'] . '/lib/lib.stats.php';
         $id_item = importVar('id_item');
         $folder = $this->repoDb->getFolderById($id_item);
         $objectType = $folder->otherValues[REPOFIELDOBJECTTYPE];
         $idResource = $folder->otherValues[REPOFIELDIDRESOURCE];
         $idParams = $folder->otherValues[ORGFIELDIDPARAM];
         $isTerminator = $folder->otherValues[ORGFIELDISTERMINATOR];
         /*With this direct_play courses was set as finished if is passed the object automatically without needing to set it as finish course object
         		$isTerminator = ( isset($_SESSION['direct_play']) ? true : $folder->otherValues[ORGFIELDISTERMINATOR] );*/
         $idCourse = $_SESSION['idCourse'];
         if ($isTerminator) {
             require_once $GLOBALS['where_lms'] . '/lib/lib.course.php';
             $idTrack = Track_Object::getIdTrackFromCommon($id_item, getLogUserId());
             $track = createLOTrack($idTrack, $objectType, $idResource, $idParams, "");
             if ($track->getStatus() == 'completed' || $track->getStatus() == 'passed') {
                 if (!saveTrackStatusChange((int) getLogUserId(), (int) $idCourse, _CUS_END)) {
                     errorCommunication($lang->def('_OPERATION_FAILURE'));
                     return;
                 }
             }
         }
         if (Get::req('edit', DOTY_INT, 0) > 0) {
             Util::jump_to('index.php?modname=storage&op=display');
         }
         if (isset($_SESSION['direct_play'])) {
             $from = Get::req('from', DOTY_ALPHANUM, '');
             //reset cache for the notication
             UpdatesLms::resetCache();
             // autoplay with more than an object and the first one is completed
             require_once _lms_ . '/lib/lib.orgchart.php';
             $orgman = new OrganizationManagement($_SESSION['idCourse']);
             $first_lo =& $orgman->getInfoWhereType(false, $_SESSION['idCourse']);
             if (count($first_lo) >= 2) {
                 // if we have more than an object we need to play the first one until it's completed
                 $obj = array_shift($first_lo);
                 $query = "SELECT status FROM %lms_commontrack WHERE idReference = " . (int) $obj['id_org'] . " AND idUser = "******"catalogue":
                     Util::jump_to('index.php?r=lms/catalog/show&sop=unregistercourse');
                     break;
                 case "lo_plan":
                     Util::jump_to('index.php?r=' . _after_login_ . '&sop=unregistercourse');
                     break;
                 case "lo_history":
                     Util::jump_to('index.php?r=' . _after_login_ . '&current_tab=lo_history&sop=unregistercourse');
                     break;
                 default:
                     Util::jump_to('index.php?r=' . _after_login_ . '&sop=unregistercourse');
                     break;
             }
         }
     }
     //--- direct edit item -----------------------------------------------------
     if ($GLOBALS['op'] == 'direct_edit_item') {
         $id_item = Get::req('id_item', DOTY_INT, 0);
         $this->treeView->op = 'editLO';
     }
     // normal tree function --------------------------------------------
     $this->treeView->playOnly = $modname == 'organization';
     switch ($this->treeView->op) {
         case 'import':
             import($this->treeView);
             break;
         case 'createLO':
             global $modname;
             // save state
             require_once $GLOBALS['where_framework'] . '/lib/lib.sessionsave.php';
             $saveObj = new Session_Save();
             $saveName = $saveObj->getName('organization' . $_SESSION['idCourse'], true);
             $saveObj->save($saveName, $this->treeView->getState());
             $GLOBALS['page']->add($this->treeView->LOSelector($modname, 'index.php?modname=' . $modname . '&op=display&sor=' . $saveName . '&' . $this->treeView->_getOpCreateLOEnd() . '=1'), 'content');
             break;
         case 'createLOSel':
             global $modname;
             // save state
             require_once $GLOBALS['where_framework'] . '/lib/lib.sessionsave.php';
             $saveObj = new Session_Save();
             $saveName = $saveObj->getName('organization' . $_SESSION['idCourse'], true);
             $saveObj->save($saveName, $this->treeView->getState());
             // start learning object creation
             $lo = createLO($_POST['radiolo']);
             if ($lo !== false) {
                 $lo->create('index.php?modname=' . $modname . '&op=display&sor=' . $saveName . '&' . $this->treeView->_getOpCreateLOEnd() . '=1');
             } else {
                 $GLOBALS['page']->addStart(getTitleArea(def('_ORGANIZATION', 'organization', 'lms'), 'organization') . '<div class="std_block">', 'content');
                 $GLOBALS['page']->addEnd('</div>', 'content');
                 if (isset($_SESSION['last_error'])) {
                     if ($_SESSION['last_error'] != "") {
                         //$GLOBALS['page']->add( $_SESSION['last_error'], 'content' );
                         UIFeedback::error($_SESSION['last_error']);
                         unset($_SESSION['last_error']);
                     }
                 }
                 organization($this->treeView);
             }
             break;
         case 'editLO':
             global $modname;
             // save state
             require_once $GLOBALS['where_framework'] . '/lib/lib.sessionsave.php';
             $saveObj = new Session_Save();
             $saveName = $saveObj->getName('organization' . $_SESSION['idCourse'], true);
             $saveObj->save($saveName, $this->treeView->getState());
             $folder = $this->repoDb->getFolderById($this->treeView->getSelectedFolderId());
             $lo = createLO($folder->otherValues[REPOFIELDOBJECTTYPE]);
             $lo->edit($folder->otherValues[REPOFIELDIDRESOURCE], 'index.php?modname=' . $modname . '&op=display&sor=' . $saveName . '&' . $this->treeView->_getOpEditLOEnd() . '=1');
             break;
         case 'playitem':
             global $modname;
             // save state
             require_once $GLOBALS['where_framework'] . '/lib/lib.sessionsave.php';
             $saveObj = new Session_Save();
             $saveName = $saveObj->getName('organization' . $_SESSION['idCourse'], true);
             $saveObj->save($saveName, $this->treeView->getState());
             $folder = $this->repoDb->getFolderById($this->treeView->getItemToPlay());
             $lo = createLO($folder->otherValues[REPOFIELDOBJECTTYPE]);
             $idItem = $folder->otherValues[REPOFIELDIDRESOURCE];
             $back_url = 'index.php?modname=' . $modname . '&op=organization&sor=' . $saveName . '&' . $this->treeView->_getOpPlayEnd() . '=' . $folder->id;
             $lo->play($idItem, $folder->otherValues[ORGFIELDIDPARAM], $back_url);
             break;
         case 'copyLOSel':
             $GLOBALS['page']->add($this->treeView->load());
             break;
         case 'copyLOEndOk':
         case 'copyLOEndCancel':
             global $modname;
             require_once $GLOBALS['where_framework'] . '/lib/lib.sessionsave.php';
             $saveObj = new Session_Save();
             $saveName = $_GET['crepo'];
             if ($saveObj->nameExists($saveName)) {
                 $saveData =& $saveObj->load($saveName);
                 $saveObj->delete($saveName);
                 Util::jump_to(' index.php?modname=' . $modname . '&op=' . $saveData['repo']);
             }
             Util::jump_to(' index.php?modname=' . $modname . '&op=display');
             break;
         case 'copyLO':
             global $modname;
             // save state
             require_once $GLOBALS['where_framework'] . '/lib/lib.sessionsave.php';
             $saveObj = new Session_Save();
             $saveName = $saveObj->getName('crepo', true);
             $folder = $this->treeView->tdb->getFolderById($this->treeView->selectedFolder);
             $saveData = array('repo' => 'organization', 'id' => $this->treeView->getSelectedFolderId(), 'objectType' => $folder->otherValues[REPOFIELDOBJECTTYPE], 'name' => $folder->otherValues[REPOFIELDTITLE], 'idResource' => $folder->otherValues[REPOFIELDIDRESOURCE]);
             $saveObj->save($saveName, $saveData);
             Util::jump_to(' index.php?modname=' . $modname . '&op=display&crepo=' . $saveName . '&' . $this->treeView->_getOpCopyLOSel() . '=1');
         case 'createLOEnd':
             // insertion managed by extendParsing
         // insertion managed by extendParsing
         case "display":
         case "organization":
         default:
             /*$GLOBALS['page']->addStart(
             			getTitleArea(def('_ORGANIZATION', 'organization', 'lms'), 'organization')
             			.'<div class="std_block">', 'content');
             		$GLOBALS['page']->addEnd('</div>', 'content');*/
             if (isset($_SESSION['last_error'])) {
                 if ($_SESSION['last_error'] != "") {
                     //$GLOBALS['page']->add( $_SESSION['last_error'], 'content' );
                     UIFeedback::error($_SESSION['last_error']);
                     unset($_SESSION['last_error']);
                 }
             }
             organization($this->treeView);
             break;
     }
 }
Beispiel #13
0
            // add a term
            case "addterm":
                addterm();
                break;
            case "insterm":
                insterm();
                break;
                // modify a term
            // modify a term
            case "modterm":
                modterm();
                break;
            case "upterm":
                upterm();
                break;
                // delete a term
            // delete a term
            case "delterm":
                delterm();
                break;
            case "play":
                require_once dirname(__FILE__) . '/do.glossary.php';
                $idGlossary = importVar('idGlossary', true, 0);
                $idParams = importVar('idParams', true, 0);
                $back_url = importVar('back_url');
                $object_glos = createLO('glossary', $idGlossary);
                $object_glos->play($idGlossary, $idParams, urldecode($back_url));
                break;
        }
    }
}
Beispiel #14
0
             return;
         }
         sql_query("\r\n\t\tUPDATE " . $GLOBALS['prefix_lms'] . "_link \r\n\t\tSET sequence = sequence -1\r\n\t\tWHERE sequence > '" . $seq . "'");
         Util::jump_to('index.php?modname=link&op=modlinkgui&idCategory=' . $idCategory . '&back_url=' . $back_coded);
     } else {
         list($idCategory, $title, $link_a, $description) = sql_fetch_row(sql_query("\r\n\t\tSELECT idCategory, title, link_address, description \r\n\t\tFROM " . $GLOBALS['prefix_lms'] . "_link \r\n\t\tWHERE idLink = '" . (int) $_GET['idLink'] . "'"));
         $GLOBALS['page']->add('<div class="std_block">' . getDeleteUi($lang->def('_AREYOUSURE'), '<span>' . $lang->def('_TITLE') . ' : </span>' . $title . '<br />' . '<span>' . $lang->def('_URL') . ' : </span>' . $link_a . '<br />' . '<span>' . $lang->def('_DESCRIPTION') . ' : </span>' . $description, true, 'index.php?modname=link&amp;op=dellink&amp;idLink=' . $_GET['idLink'] . '&amp;back_url=' . $back_coded . '&amp;confirm=1', 'index.php?modname=link&amp;op=modlinkgui&amp;idCategory=' . $idCategory . '&amp;back_url=' . $back_coded . '') . '</div>' . '</div>', 'content');
     }
 }
 // XXX: switch
 if (isset($GLOBALS['op'])) {
     switch ($GLOBALS['op']) {
         case "modlinkgui":
             $idCategory = importVar('idCategory', true, 0);
             $back_url = importVar('back_url');
             $object_link = createLO('link', $idCategory);
             $object_link->edit($idCategory, urldecode($back_url));
             break;
             //add category
         //add category
         case "addlinkcat":
             addlinkcat();
             break;
         case "inslinkcat":
             inslinkcat();
             break;
             //mod category
         //mod category
         case "modlinkcat":
             modlinkcat();
             break;
 public function playTask()
 {
     $id_comm = Get::req('id_comm', DOTY_INT, 0);
     $model = new CommunicationAlms();
     $comm = $model->findByPk($id_comm, Docebo::user()->getArrSt());
     if ($comm != false) {
         switch ($comm['type_of']) {
             case "none":
                 //
                 $model->markAsRead($id_comm, Docebo::user()->getId());
                 break;
             case "file":
                 $lo = createLO('item', $comm['id_resource'], 'communication');
                 if ($lo) {
                     $lo->env_play($id_comm, 'index.php?r=communication/show');
                 }
                 return;
                 break;
             case "scorm":
                 $lo = createLO('scormorg', $comm['id_resource'], 'communication');
                 if ($comm['id_resource'] != 0 && $lo) {
                     $lo->env_play($id_comm, 'index.php?r=communication/show');
                 }
                 break;
         }
     }
     //endif
     UpdatesLms::resetCache();
     Util::jump_to('index.php?r=communication/show');
 }
Beispiel #16
0
function duplicateCourse()
{
    $id_dupcourse = Get::req('id_course', DOTY_INT, 0);
    // read the old course info
    $query_sel = "SELECT *\n\tFROM " . $GLOBALS['prefix_lms'] . "_course\n\tWHERE idCourse = '" . $id_dupcourse . "' ";
    $result_sel = sql_query($query_sel);
    $list_sel = sql_fetch_array($result_sel);
    foreach ($list_sel as $k => $v) {
        $list_sel[$k] = mysql_escape_string($v);
    }
    $new_course_dup = 0;
    $new_file_array = array();
    if ($list_sel['imgSponsor'] !== '') {
        $new_name_array = explode('_', str_replace('course_sponsor_logo_', '', $list_sel['imgSponsor']));
        $filename = 'course_sponsor_logo_' . mt_rand(0, 100) . '_' . time() . '_' . str_replace('course_sponsor_logo_' . $new_name_array[0] . '_' . $new_name_array[1] . '_', '', $list_sel['imgSponsor']);
        $new_file_array[0]['old'] = $list_sel['imgSponsor'];
        $new_file_array[0]['new'] = $filename;
        $list_sel['imgSponsor'] = $filename;
    }
    if ($list_sel['img_course'] !== '') {
        $new_name_array = explode('_', str_replace('course_logo_', '', $list_sel['img_course']));
        $filename = 'course_logo_' . mt_rand(0, 100) . '_' . time() . '_' . str_replace('course_logo_' . $new_name_array[0] . '_' . $new_name_array[1] . '_', '', $list_sel['img_course']);
        $new_file_array[1]['old'] = $list_sel['img_course'];
        $new_file_array[1]['new'] = $filename;
        $list_sel['img_course'] = $filename;
    }
    if ($list_sel['img_material'] !== '') {
        $new_name_array = explode('_', str_replace('course_user_material_', '', $list_sel['img_material']));
        $filename = 'course_user_material_' . mt_rand(0, 100) . '_' . time() . '_' . str_replace('course_user_material_' . $new_name_array[0] . '_' . $new_name_array[1] . '_', '', $list_sel['img_material']);
        $new_file_array[2]['old'] = $list_sel['img_material'];
        $new_file_array[2]['new'] = $filename;
        $list_sel['img_material'] = $filename;
    }
    if ($list_sel['img_othermaterial'] !== '') {
        $new_name_array = explode('_', str_replace('course_otheruser_material_', '', $list_sel['img_othermaterial']));
        $filename = 'course_otheruser_material_' . mt_rand(0, 100) . '_' . time() . '_' . str_replace('course_otheruser_material_' . $new_name_array[0] . '_' . $new_name_array[1] . '_', '', $list_sel['img_othermaterial']);
        $new_file_array[3]['old'] = $list_sel['img_othermaterial'];
        $new_file_array[3]['new'] = $filename;
        $list_sel['img_othermaterial'] = $filename;
    }
    if ($list_sel['course_demo'] !== '') {
        $new_name_array = explode('_', str_replace('course_demo_', '', $list_sel['course_demo']));
        $filename = 'course_demo_' . mt_rand(0, 100) . '_' . time() . '_' . str_replace('course_demo_' . $new_name_array[0] . '_' . $new_name_array[1] . '_', '', $list_sel['course_demo']);
        $new_file_array[4]['old'] = $list_sel['course_demo'];
        $new_file_array[4]['new'] = $filename;
        $list_sel['course_demo'] = $filename;
    }
    // duplicate the entry of learning_course
    $query_ins = "INSERT INTO " . $GLOBALS['prefix_lms'] . "_course\n\t\t( idCategory, code, name, description, lang_code, status, level_show_user,\n\t\tsubscribe_method, linkSponsor, imgSponsor, img_course, img_material, img_othermaterial,\n\t\tcourse_demo, mediumTime, permCloseLO, userStatusOp, difficult, show_progress, show_time, show_extra_info,\n\t\tshow_rules, valid_time, max_num_subscribe, min_num_subscribe,\n\t\tmax_sms_budget, selling, prize, course_type, policy_point, point_to_all, course_edition, classrooms, certificates,\n\t\tcreate_date, security_code, imported_from_connection, course_quota, used_space, course_vote, allow_overbooking, can_subscribe,\n\t\tsub_start_date, sub_end_date, advance, show_who_online, direct_play, autoregistration_code, use_logo_in_courselist )\n\tVALUES\n\t\t( '" . $list_sel['idCategory'] . "', '" . $list_sel['code'] . "', '" . "Copia di " . $list_sel['name'] . "', '" . $list_sel['description'] . "', '" . $list_sel['lang_code'] . "', '" . $list_sel['status'] . "', '" . $list_sel['level_show_user'] . "',\n\t\t'" . $list_sel['subscribe_method'] . "', '" . $list_sel['linkSponsor'] . "', '" . $list_sel['imgSponsor'] . "', '" . $list_sel['img_course'] . "', '" . $list_sel['img_material'] . "', '" . $list_sel['img_othermaterial'] . "',\n\t\t'" . $list_sel['course_demo'] . "', '" . $list_sel['mediumTime'] . "', '" . $list_sel['permCloseLO'] . "', '" . $list_sel['userStatusOp'] . "', '" . $list_sel['difficult'] . "', '" . $list_sel['show_progress'] . "', '" . $list_sel['show_time'] . "', '" . $list_sel['show_extra_info'] . "',\n\t\t'" . $list_sel['show_rules'] . "', '" . $list_sel['valid_time'] . "', '" . $list_sel['max_num_subscribe'] . "', '" . $list_sel['min_num_subscribe'] . "',\n\t\t'" . $list_sel['max_sms_budget'] . "', '" . $list_sel['selling'] . "', '" . $list_sel['prize'] . "', '" . $list_sel['course_type'] . "', '" . $list_sel['policy_point'] . "', '" . $list_sel['point_to_all'] . "', '" . $list_sel['course_edition'] . "', '" . $list_sel['classrooms'] . "', '" . $list_sel['certificates'] . "',\n\t\t'" . $list_sel['create_date'] . "', '" . $list_sel['security_code'] . "', '" . $list_sel['imported_from_connection'] . "', '" . $list_sel['course_quota'] . "', '" . $list_sel['used_space'] . "', '" . $list_sel['course_vote'] . "', '" . $list_sel['allow_overbooking'] . "', '" . $list_sel['can_subscribe'] . "',\n\t\t'" . $list_sel['sub_start_date'] . "', '" . $list_sel['sub_end_date'] . "', '" . $list_sel['advance'] . "', '" . $list_sel['show_who_online'] . "', '" . $list_sel['direct_play'] . "', '" . $list_sel['autoregistration_code'] . "', '" . $list_sel['use_logo_in_courselist'] . "' )";
    $result_ins = sql_query($query_ins);
    if (!$result_ins) {
        //Util::jump_to('index.php?modname=course&op=course_list&result=err_course');
        return false;
    }
    // the id of the new course created
    $new_course_dup = sql_insert_id();
    //Create the new course file
    $path = Get::sett('pathcourse');
    $path = '/appLms/' . Get::sett('pathcourse') . (substr($path, -1) != '/' && substr($path, -1) != '\\' ? '/' : '');
    require_once _base_ . '/lib/lib.upload.php';
    sl_open_fileoperations();
    foreach ($new_file_array as $file_info) {
        sl_copy($path . $file_info['old'], $path . $file_info['new']);
    }
    sl_close_fileoperations();
    // copy the old course menu into the new one
    $query_selmen = "SELECT *\n\tFROM " . $GLOBALS['prefix_lms'] . "_menucourse_main\n\tWHERE idCourse = '" . $id_dupcourse . "' ";
    $result_selmen = sql_query($query_selmen);
    while ($list_selmen = sql_fetch_array($result_selmen)) {
        $query_dupmen = "INSERT INTO " . $GLOBALS['prefix_lms'] . "_menucourse_main " . " (idCourse, sequence, name, image) " . " VALUES " . " ( '" . $new_course_dup . "', '" . $list_selmen['sequence'] . "', '" . $list_selmen['name'] . "', '" . $list_selmen['image'] . "' )";
        $result_dupmen = sql_query($query_dupmen);
        $array_seq[$list_selmen['idMain']] = sql_insert_id();
    }
    $query_selmenun = "SELECT *\n\tFROM " . $GLOBALS['prefix_lms'] . "_menucourse_under\n\tWHERE idCourse = '" . $id_dupcourse . "' ";
    $result_selmenun = sql_query($query_selmenun);
    while ($list_selmenun = sql_fetch_array($result_selmenun)) {
        $valore_idn = $list_selmenun['idMain'];
        $_idMain = $array_seq[$valore_idn];
        $query_dupmen = "INSERT INTO " . $GLOBALS['prefix_lms'] . "_menucourse_under\n\t\t(idMain, idCourse, sequence, idModule, my_name)\n\t\tVALUES\n\t\t('" . $_idMain . "', '" . $new_course_dup . "', '" . $list_selmenun['sequence'] . "', '" . $list_selmenun['idModule'] . "', '" . $list_selmenun['my_name'] . "')";
        $result_dupmen = sql_query($query_dupmen);
    }
    function &getCourseLevelSt($id_course)
    {
        $map = array();
        $levels = CourseLevel::getLevels();
        $acl_man =& $GLOBALS['current_user']->getAclManager();
        // find all the group created for this menu custom for permission management
        foreach ($levels as $lv => $name_level) {
            $group_info = $acl_man->getGroup(FALSE, '/lms/course/' . $id_course . '/subscribed/' . $lv);
            $map[$lv] = $group_info[ACL_INFO_IDST];
        }
        return $map;
    }
    function funAccess($functionname, $mode, $returnValue = false, $custom_mod_name = false)
    {
        return true;
    }
    require_once $GLOBALS['where_lms'] . '/lib/lib.course.php';
    require_once $GLOBALS['where_lms'] . '/lib/lib.manmenu.php';
    require_once $GLOBALS['where_lms'] . '/lib/lib.subscribe.php';
    $docebo_course = new DoceboCourse($id_dupcourse);
    $subscribe_man = new CourseSubscribe_Manager();
    $group_idst =& $docebo_course->createCourseLevel($new_course_dup);
    $group_of_from =& $docebo_course->getCourseLevel($id_dupcourse);
    $perm_form =& createPermForCoursebis($group_of_from, $new_course_dup, $id_dupcourse);
    $levels = $subscribe_man->getUserLevel();
    foreach ($levels as $lv => $name_level) {
        foreach ($perm_form[$lv] as $idrole => $v) {
            if ($group_idst[$lv] != 0 && $idrole != 0) {
                $acl_man =& $GLOBALS['current_user']->getAclManager();
                $acl_man->addToRole($idrole, $group_idst[$lv]);
            }
        }
    }
    // duplicate the certificate assigned
    $query_selmenun = "SELECT *\n\tFROM " . $GLOBALS['prefix_lms'] . "_certificate_course\n\tWHERE id_course = '" . $id_dupcourse . "' ";
    $result_selmenun = sql_query($query_selmenun);
    while ($list_selmenun = sql_fetch_array($result_selmenun)) {
        $query_dupmen = "INSERT INTO " . $GLOBALS['prefix_lms'] . "_certificate_course\n\t\t\t(id_certificate, id_course, available_for_status)\n\t\t\tVALUES\n\t\t\t('" . $list_selmenun['id_certificate'] . "', '" . $new_course_dup . "', '" . $list_selmenun['available_for_status'] . "' )";
        $result_dupmen = sql_query($query_dupmen);
    }
    require_once $GLOBALS['where_lms'] . '/modules/organization/orglib.php';
    require_once $GLOBALS['where_lms'] . '/lib/lib.param.php';
    require_once $GLOBALS['where_lms'] . '/class.module/track.object.php';
    require_once $GLOBALS['where_lms'] . '/class.module/learning.object.php';
    function createLO($objectType, $idResource = NULL)
    {
        $query = "SELECT className, fileName FROM " . $GLOBALS['prefix_lms'] . "_lo_types WHERE objectType='" . $objectType . "'";
        $rs = sql_query($query);
        list($className, $fileName) = sql_fetch_row($rs);
        require_once $GLOBALS['where_lms'] . '/class.module/' . $fileName;
        $lo = new $className($idResource);
        return $lo;
    }
    $nullVal = NULL;
    $array_cor = array();
    $map_org = array();
    $tree_course = new OrgDirDb($id_dupcourse);
    $coll = $tree_course->getFoldersCollection($nullVal);
    while ($folder = $coll->getNext()) {
        //if($folder->otherValues[REPOFIELDIDRESOURCE] != 0 ) {
        if (!empty($folder->otherValues[REPOFIELDOBJECTTYPE])) {
            $lo = createLO($folder->otherValues[REPOFIELDOBJECTTYPE]);
            $id_nuovo_lo = $lo->copy($folder->otherValues[REPOFIELDIDRESOURCE]);
            $id_vecchio = $folder->otherValues[REPOFIELDIDRESOURCE];
            $query_selmenun = "SELECT * FROM\n\t\t\t" . $GLOBALS['prefix_lms'] . "_organization\n\t\t\tWHERE idCourse = '" . $id_dupcourse . "'\n\t\t\tAND idResource = '" . $id_vecchio . "' ";
            $result_selmenun = sql_query($query_selmenun);
            while ($list_selmenun = mysql_fetch_array($result_selmenun)) {
                $query_dupmen = "INSERT INTO " . $GLOBALS['prefix_lms'] . "_organization\n\t\t\t\t(idParent, path, lev, title,\n\t\t\t\tobjectType, idResource, idCategory, idUser, idAuthor,\n\t\t\t\tversion, difficult, description, language, resource,\n\t\t\t\tobjective, dateInsert, idCourse, prerequisites, isTerminator,\n\t\t\t\tidParam, visible, milestone)\n\t\t\t\tVALUES\n\t\t\t\t('" . (isset($map_org[$list_selmenun['idParent']]) ? $map_org[$list_selmenun['idParent']] : 0) . "', '" . $list_selmenun['path'] . "', '" . $list_selmenun['lev'] . "', '" . $list_selmenun['title'] . "',\n\t\t\t\t'" . $list_selmenun['objectType'] . "', '" . $id_nuovo_lo . "', '" . $list_selmenun['idCategory'] . "', '" . $list_selmenun['idUser'] . "', '" . $list_selmenun['idAuthor'] . "',\n\t\t\t\t'" . $list_selmenun['version'] . "', '" . $list_selmenun['difficult'] . "', '" . $list_selmenun['description'] . "', '" . $list_selmenun['language'] . "', '" . $list_selmenun['resource'] . "',\n\t\t\t\t'" . $list_selmenun['objective'] . "', '" . $list_selmenun['dateInsert'] . "', '" . $new_course_dup . "', '" . $list_selmenun['prerequisites'] . "', '" . $list_selmenun['isTerminator'] . "',\n\t\t\t\t'" . $list_selmenun['idParam'] . "', '" . $list_selmenun['visible'] . "', '" . $list_selmenun['milestone'] . "')";
                $result_dupmen = sql_query($query_dupmen);
                $id_org = $list_selmenun['idOrg'];
                $id_last = sql_insert_id();
                $array_cor[$id_org] = $id_last;
                $query_lo_par = "INSERT INTO " . $GLOBALS['prefix_lms'] . "_lo_param\n\t\t\t\t(param_name, param_value)\n\t\t\t\tVALUES\n\t\t\t\t('idReference', '" . $id_last . "') ";
                $result_lo_par = sql_query($query_lo_par);
                $id_lo_par = sql_insert_id();
                $query_up_lo = "UPDATE " . $GLOBALS['prefix_lms'] . "_lo_param\n\t\t\t\tSET idParam = '" . $id_lo_par . "'\n\t\t\t\tWHERE id = '" . $id_lo_par . "' ";
                $result_up_lo = sql_query($query_up_lo);
                $query_up_or = "UPDATE " . $GLOBALS['prefix_lms'] . "_organization\n\t\t\t\tSET\tidParam = '" . $id_lo_par . "'\n\t\t\t\tWHERE idOrg = '" . $id_last . "' ";
                $result_up_or = sql_query($query_up_or);
            }
        } else {
            // copy folder
            echo $id_vecchio = $folder->id;
            $query_selmenun = "SELECT * FROM\n\t\t\t" . $GLOBALS['prefix_lms'] . "_organization\n\t\t\tWHERE idCourse = '" . $id_dupcourse . "'\n\t\t\tAND idOrg = '" . $id_vecchio . "' ";
            $result_selmenun = sql_query($query_selmenun);
            $list_selmenun = mysql_fetch_array($result_selmenun);
            $query_dupmen = " INSERT INTO " . $GLOBALS['prefix_lms'] . "_organization\n\t\t\t(idParent, path, lev, title,\n\t\t\tobjectType, idResource, idCategory, idUser, idAuthor,\n\t\t\tversion, difficult, description, language, resource,\n\t\t\tobjective, dateInsert, idCourse, prerequisites, isTerminator,\n\t\t\tidParam, visible, milestone)\n\t\t\tVALUES\n\t\t\t('" . (isset($map_org[$list_selmenun['idParent']]) ? $map_org[$list_selmenun['idParent']] : 0) . "', '" . $list_selmenun['path'] . "', '" . $list_selmenun['lev'] . "', '" . $list_selmenun['title'] . "',\n\t\t\t'" . $list_selmenun['objectType'] . "', '" . $id_nuovo_lo . "', '" . $list_selmenun['idCategory'] . "', '" . $list_selmenun['idUser'] . "', '" . $list_selmenun['idAuthor'] . "',\n\t\t\t'" . $list_selmenun['version'] . "', '" . $list_selmenun['difficult'] . "', '" . $list_selmenun['description'] . "', '" . $list_selmenun['language'] . "', '" . $list_selmenun['resource'] . "',\n\t\t\t'" . $list_selmenun['objective'] . "', '" . $list_selmenun['dateInsert'] . "', '" . $new_course_dup . "', '" . $list_selmenun['prerequisites'] . "', '" . $list_selmenun['isTerminator'] . "',\n\t\t\t'" . $list_selmenun['idParam'] . "', '" . $list_selmenun['visible'] . "', '" . $list_selmenun['milestone'] . "')";
            $result_dupmen = sql_query($query_dupmen);
            $map_org[$id_vecchio] = sql_insert_id();
        }
    }
    $query_cor = "SELECT *\n\tFROM " . $GLOBALS['prefix_lms'] . "_organization\n\tWHERE\n\tidCourse = '" . $new_course_dup . "'\n\tAND prerequisites !='' ";
    $result_cor = sql_query($query_cor);
    while ($list_cor = sql_fetch_array($result_cor)) {
        $id_orgup = $list_cor['prerequisites'];
        $arr_pre = explode(",", $id_orgup);
        for ($i = 0; $i < sizeof($arr_pre); $i++) {
            $arr_pre[$i] = str_replace(intval($arr_pre[$i]), $array_cor[intval($arr_pre[$i])], $arr_pre[$i]);
        }
        $query_updcor = "UPDATE " . $GLOBALS['prefix_lms'] . "_organization\n\t\t\tSET prerequisites = '";
        for ($i = 0; $i < sizeof($arr_pre); $i++) {
            if ($i != 0) {
                $query_updcor .= ",";
            }
            $query_updcor .= $arr_pre[$i];
        }
        $query_updcor .= "' WHERE idOrg = '" . $list_cor['idOrg'] . "' ";
        $result_upcor = sql_query($query_updcor);
    }
    $query_selmenun = "SELECT * FROM\n\t" . $GLOBALS['prefix_lms'] . "_forum\n\tWHERE idCourse = '" . $id_dupcourse . "' ";
    $result_selmenun = sql_query($query_selmenun);
    while ($list_selmenun = sql_fetch_array($result_selmenun)) {
        $query_dupmen = "INSERT INTO\n\t\t" . $GLOBALS['prefix_lms'] . "_forum\n\t\t(idCourse, title, description, locked, sequence, emoticons)\n\t\tVALUES\n\t\t('" . $new_course_dup . "', '" . $list_selmenun['title'] . "', '" . $list_selmenun['description'] . "',\n\t\t'" . $list_selmenun['locked'] . "', '" . $list_selmenun['sequence'] . "', '" . $list_selmenun['emoticons'] . "')";
        $result_dupmen = sql_query($query_dupmen);
    }
    $query_selmenun = "SELECT * FROM\n\t" . $GLOBALS['prefix_lms'] . "_coursereport\n\tWHERE id_course = '" . $id_dupcourse . "' ";
    $sql2 = $query_selmenun;
    $result_selmenun = sql_query($query_selmenun);
    while ($list_selmenun = sql_fetch_array($result_selmenun)) {
        if (!isset($array_organization[$list_selmenun['id_source']]) or $array_organization[$list_selmenun['id_source']] == "") {
            $array_organization[$list_selmenun['id_source']] = 0;
        }
        $query_dupmen = "INSERT INTO\n\t\t" . $GLOBALS['prefix_lms'] . "_coursereport\n\t\t(id_course,title,max_score,required_score,weight,show_to_user,use_for_final,sequence,source_of,id_source)\n\t\tVALUES\n\t\t('" . $new_course_dup . "', '" . $list_selmenun['title'] . "', '" . $list_selmenun['max_score'] . "',\n\t\t'" . $list_selmenun['required_score'] . "', '" . $list_selmenun['weight'] . "', '" . $list_selmenun['show_to_user'] . "', '" . $list_selmenun['use_for_final'] . "', '" . $list_selmenun['sequence'] . "', '" . $list_selmenun['source_of'] . "', '" . $array_organization[$list_selmenun['id_source']] . "')";
        $sql2 = $query_dupmen;
        $result_dupmen = sql_query($query_dupmen);
    }
    $query_selmenun = "SELECT *\n\tFROM " . $GLOBALS['prefix_lms'] . "_htmlfront\n\tWHERE id_course = '" . $id_dupcourse . "' ";
    $result_selmenun = sql_query($query_selmenun);
    while ($list_selmenun = sql_fetch_array($result_selmenun)) {
        $query_dupmen = "INSERT INTO " . $GLOBALS['prefix_lms'] . "_htmlfront\n\t\t(id_course, textof)\n\t\tVALUES\n\t\t('" . $new_course_dup . "', '" . mysql_escape_string($list_selmenun['textof']) . "')";
        $result_dupmen = sql_query($query_dupmen);
    }
    //Util::jump_to('index.php?modname=course&amp;op=course_list&result=ok_course');
    return true;
}
Beispiel #17
0
 public function playResource($res_id, $back_url)
 {
     require_once $GLOBALS['where_lms'] . '/lib/lib.param.php';
     require_once $GLOBALS['where_lms'] . '/lib/lib.module.php';
     $data = $this->getResource($res_id);
     $idResource = $data['r_item_id'];
     $env = $data['r_env'];
     $objectType = $this->getObjectTypeName($data['r_type'], $env);
     if ($data['r_type'] == 'scoitem') {
         // play the single scorm chapter
         $idResource = $this->getIdResourceFromSco($data['r_item_id']);
         $param = $this->readParam($data['r_param']);
         $GLOBALS['chapter'] = $param['chapter'];
     }
     $lo = createLO($objectType, $idResource, $env);
     $idParams = $lo->getIdParam($env);
     if ($data['force_visible']) {
         $lo->setNoRestrictions(true);
     }
     $lo->play($idResource, $idParams, $back_url);
 }
Beispiel #18
0
 function deleteItem($idItem)
 {
     $query = "SELECT `idResource`, `objectType`" . " FROM " . $this->prefix . "_homerepo" . " WHERE idObject='" . (int) $idItem . "'";
     $rs = sql_query($query);
     if ($rs === FALSE) {
         errorCommunication("deleteItem");
         return "errore!!!";
     }
     list($idResource, $objectType) = sql_fetch_row($rs);
     $lo = createLO($objectType, $idResource, NULL, '');
     if ($lo->delete()) {
         $query = "DELETE FROM " . $this->prefix . "_homerepo" . " WHERE idObject = '" . (int) $idItem . "'";
         $rs = sql_query($query);
         if ($rs === FALSE) {
             errorCommunication("deleteItem");
             return "errore!!!";
         }
     }
 }
Beispiel #19
0
             return;
         }
         sql_query("\r\n\t\tUPDATE " . $GLOBALS['prefix_lms'] . "_faq \r\n\t\tSET sequence = sequence -1\r\n\t\tWHERE sequence > '" . $seq . "'");
         Util::jump_to('index.php?modname=faq&op=modfaqgui&idCategory=' . $idCategory . '&back_url=' . $back_coded);
     } else {
         list($idCategory, $question, $answer) = sql_fetch_row(sql_query("\r\n\t\tSELECT idCategory, question, answer \r\n\t\tFROM " . $GLOBALS['prefix_lms'] . "_faq \r\n\t\tWHERE idFaq = '" . (int) $_GET['idFaq'] . "'"));
         $GLOBALS['page']->add('<div class="std_block">' . getDeleteUi($lang->def('_AREYOUSURE'), '<span>' . $lang->def('_QUESTION') . ' : </span>' . $question . '<br />' . '<span>' . $lang->def('_ANSWER') . ' : </span>' . $answer, true, 'index.php?modname=faq&amp;op=delfaq&amp;idFaq=' . $_GET['idFaq'] . '&amp;back_url=' . $back_coded . '&amp;confirm=1', 'index.php?modname=faq&amp;op=modfaqgui&amp;idCategory=' . $idCategory . '&amp;back_url=' . $back_coded . '">') . '</div>' . '</div>', 'content');
     }
 }
 // XXX: switch
 if (isset($GLOBALS['op'])) {
     switch ($GLOBALS['op']) {
         case "modfaqgui":
             $idCategory = importVar('idCategory', true, 0);
             $back_url = importVar('back_url');
             $object_faq = createLO('faq', $idCategory);
             $object_faq->edit($idCategory, urldecode($back_url));
             break;
             //add category
         //add category
         case "addfaqcat":
             addfaqcat();
             break;
         case "insfaqcat":
             insfaqcat();
             break;
             //mod category
         //mod category
         case "modfaqcat":
             modfaqcat();
             break;