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(); } }
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(); } }
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; } }
/** * 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; }
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); }
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'); }
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":
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_ . '¤t_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; } }
// 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; } } }
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&op=dellink&idLink=' . $_GET['idLink'] . '&back_url=' . $back_coded . '&confirm=1', 'index.php?modname=link&op=modlinkgui&idCategory=' . $idCategory . '&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'); }
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&op=course_list&result=ok_course'); return true; }
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); }
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!!!"; } } }
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&op=delfaq&idFaq=' . $_GET['idFaq'] . '&back_url=' . $back_coded . '&confirm=1', 'index.php?modname=faq&op=modfaqgui&idCategory=' . $idCategory . '&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;