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;
         }
     }
 }
Example #2
0
 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 = " . (int) Docebo::user()->getId();
                 list($status) = sql_fetch_row(sql_query($query));
                 if ($status == 'completed' || $status == 'passed') {
                     // we have more then one object and the first one is complete, we can go to the course first page
                     unset($_SESSION['direct_play']);
                     $first_page = firstPage();
                     $_SESSION['current_main_menu'] = $first_page['idMain'];
                     $_SESSION['sel_module_id'] = $first_page['idModule'];
                     Util::jump_to('index.php?modname=' . $first_page['modulename'] . '&op=' . $first_page['op'] . '&id_module_sel=' . $first_page['idModule']);
                 }
             }
             // back and out of the course
             switch ($from) {
                 case "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;
     }
 }
Example #4
0
function &loadTestStatus($save_name)
{
    require_once $GLOBALS['where_framework'] . '/lib/lib.sessionsave.php';
    $save = new Session_Save();
    return $save->load($save_name);
}
Example #5
0
function &loadOrgChartState()
{
    require_once $GLOBALS['where_framework'] . '/lib/lib.sessionsave.php';
    $s_o = new Session_Save();
    return $s_o->load('org_chart');
}