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 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; } }
function &loadTestStatus($save_name) { require_once $GLOBALS['where_framework'] . '/lib/lib.sessionsave.php'; $save = new Session_Save(); return $save->load($save_name); }
function &loadOrgChartState() { require_once $GLOBALS['where_framework'] . '/lib/lib.sessionsave.php'; $s_o = new Session_Save(); return $s_o->load('org_chart'); }