/** * Handle target parameter * @param object $a_target * @return */ public static function handleCode($a_ref_id, $a_type, $a_code) { global $lng, $tree, $ilUser; include_once './Services/Link/classes/class.ilLink.php'; $lng->loadLanguageModule($a_type); try { self::useCode($a_code, $a_ref_id); $title = ilObject::_lookupTitle(ilObject::_lookupObjectId($a_ref_id)); ilUtil::sendSuccess(sprintf($lng->txt($a_type . "_admission_link_success_registration"), $title), true); ilUtil::redirect(ilLink::_getLink($a_ref_id)); } catch (ilMembershipRegistrationException $e) { switch ($e->getCode()) { case 124: //added to waiting list ilUtil::sendSuccess($e->getMessage(), true); break; case 123: //object is full ilUtil::sendFailure($lng->txt($a_type . "_admission_link_failure_membership_limited"), true); break; case 789: //out of registration period ilUtil::sendFailure($lng->txt($a_type . "_admission_link_failure_registration_period"), true); break; default: ilUtil::sendFailure($e->getMessage(), true); break; } $GLOBALS['ilLog']->logStack(); $GLOBALS['ilLog']->write($e->getCode() . ': ' . $e->getMessage()); $parent_id = $tree->getParentId($a_ref_id); ilUtil::redirect(ilLink::_getLink($parent_id)); } }
function __construct() { global $ilias, $tpl, $ilCtrl, $ilUser, $lng; //erase next? if ($_REQUEST['learnerId']) { $this->userId = $_REQUEST['learnerId']; } else { $this->userId = $GLOBALS['USER']['usr_id']; } $this->packageId = (int) $_REQUEST['packageId']; $this->jsMode = strpos($_SERVER['HTTP_ACCEPT'], 'text/javascript') !== false; $this->page = $_REQUEST['page']; $this->slm =& new ilObjSCORM2004LearningModule($_GET["ref_id"], true); $this->ilias =& $ilias; $this->tpl =& $tpl; $this->ctrl =& $ilCtrl; $this->packageId = ilObject::_lookupObjectId($_GET['ref_id']); $this->ref_id = $_GET['ref_id']; $this->userId = $ilUser->getID(); if ($_GET['envEditor'] != null) { $this->envEditor = $_GET['envEditor']; } else { $this->envEditor = 0; } }
/** * Constructor * * @param int $a_id Object ID * @access public */ function __construct() { global $ilias; $this->ilias =& $ilias; $this->id = $_GET['ref_id']; $this->obj_id = ilObject::_lookupObjectId($_GET['ref_id']); include_once "./Modules/ScormAicc/classes/class.ilObjSAHSLearningModule.php"; $this->type = ilObjSAHSLearningModule::_lookupSubType($this->obj_id); $this->read(); }
public function getPossibleItems($a_ref_id) { if (!isset(self::$possible_items[$a_ref_id])) { $obj_id = ilObject::_lookupObjectId($a_ref_id); $items = array(); // only top-level chapters include_once "Services/MetaData/classes/class.ilMDEducational.php"; $tree = new ilTree($obj_id); $tree->setTableNames('lm_tree', 'lm_data'); $tree->setTreeTablePK("lm_id"); foreach ($tree->getChilds($tree->readRootId()) as $child) { if ($child["type"] == "st") { $child["tlt"] = ilMDEducational::_getTypicalLearningTimeSeconds($obj_id, $child["obj_id"]); $items[$child["obj_id"]] = $child; } } self::$possible_items[$a_ref_id] = $items; } return self::$possible_items[$a_ref_id]; }
$lng->loadLanguageModule("sop"); $this->lng =& $lng; $this->ctrl =& $ilCtrl; $this->ctrl->saveParameter($this, "ref_id"); $this->offlineMode = new ilSCORMOfflineMode(); $this->online_icon = 'icon_slm_b.png'; $this->offline_icon = 'icon_slm_b_offline.png'; $this->icon = $this->online_icon; } function executeCommand() { global $tpl, $ilCtrl; $this->lmId = ilObject::_lookupObjectId($_GET["ref_id"]); $this->clientIdSop = $this->offlineMode->getClientIdSop(); $cmd = $ilCtrl->getCmd(); $this->setOfflineModeTabs($cmd); switch ($cmd) { case 'offlineMode_il2sopContent': ilUtil::deliverFile(ilUtil::getDataDir() . "/lm_data/lm_" . $this->lmId . ".zip", "lm_" . $this->lmId . ".zip"); break; case 'offlineMode_il2sop': $this->offlineMode->il2sop(); break; case 'offlineMode_il2sopStop': $this->offlineMode->setOfflineMode("online"); $this->view($this->offlineMode->getOfflineMode(), "msg_export_failure"); break; case 'offlineMode_il2sopOk': $this->offlineMode->setOfflineMode("offline"); $this->view($this->offlineMode->getOfflineMode(), "msg_export_ok"); break; case 'offlineMode_sop2il': $this->offlineMode->sop2il(); break; case 'offlineMode_sop2ilStop': $this->offlineMode->setOfflineMode("offline"); $this->view($this->offlineMode->getOfflineMode(), "msg_push_tracking_failure"); break; case 'offlineMode_sop2ilOk': $this->offlineMode->setOfflineMode("online"); $this->view($this->offlineMode->getOfflineMode(), "msg_push_tracking_ok");
/** * */ private function initParticipantsObject() { if ($this->getRefId() > 0) { global $tree; $this->pluginObj->includeClass('class.ilAdobeConnectContainerParticipants.php'); $parent_ref = $tree->checkForParentType($this->getRefId(), 'grp'); if (!$parent_ref) { $parent_ref = $tree->checkForParentType($this->getRefId(), 'crs'); } $object_id = ilObject::_lookupObjectId($parent_ref); $this->participants = ilAdobeConnectContainerParticipants::getInstanceByObjId($object_id); } }
/** * Constructor * * @param int $a_id * @param int $a_id_type * @param int $a_parent_node_id */ function __construct($a_id = 0, $a_id_type = self::REPOSITORY_NODE_ID, $a_parent_node_id = 0) { global $objDefinition, $tpl, $ilCtrl, $ilErr, $lng, $ilTabs, $tree, $ilAccess; if (!isset($ilErr)) { $ilErr = new ilErrorHandling(); $ilErr->setErrorHandling(PEAR_ERROR_CALLBACK, array($ilErr, 'errorHandler')); } else { $this->ilErr =& $ilErr; } $this->id_type = $a_id_type; $this->parent_id = $a_parent_node_id; $this->type = $this->getType(); $this->html = ""; // use globals instead? $this->tabs_gui = $ilTabs; $this->objDefinition = $objDefinition; $this->tpl = $tpl; $this->ctrl = $ilCtrl; $this->lng = $lng; $params = array(); switch ($this->id_type) { case self::REPOSITORY_NODE_ID: $this->node_id = $a_id; $this->object_id = ilObject::_lookupObjectId($this->node_id); $this->tree = $tree; $this->access_handler = $ilAccess; $this->call_by_reference = true; // needed for prepareOutput() $params[] = "ref_id"; break; case self::REPOSITORY_OBJECT_ID: $this->object_id = $a_id; $this->tree = $tree; $this->access_handler = $ilAccess; $params[] = "obj_id"; // ??? break; case self::WORKSPACE_NODE_ID: global $ilUser; $this->node_id = $a_id; include_once "Services/PersonalWorkspace/classes/class.ilWorkspaceTree.php"; $this->tree = new ilWorkspaceTree($ilUser->getId()); $this->object_id = $this->tree->lookupObjectId($this->node_id); include_once "Services/PersonalWorkspace/classes/class.ilWorkspaceAccessHandler.php"; $this->access_handler = new ilWorkspaceAccessHandler($this->tree); $params[] = "wsp_id"; break; case self::WORKSPACE_OBJECT_ID: global $ilUser; $this->object_id = $a_id; include_once "Services/PersonalWorkspace/classes/class.ilWorkspaceTree.php"; $this->tree = new ilWorkspaceTree($ilUser->getId()); include_once "Services/PersonalWorkspace/classes/class.ilWorkspaceAccessHandler.php"; $this->access_handler = new ilWorkspaceAccessHandler($this->tree); $params[] = "obj_id"; // ??? break; case self::PORTFOLIO_OBJECT_ID: $this->object_id = $a_id; include_once './Modules/Portfolio/classes/class.ilPortfolioAccessHandler.php'; $this->access_handler = new ilPortfolioAccessHandler(); $params[] = "prt_id"; break; case self::OBJECT_ID: $this->object_id = $a_id; include_once "Services/Object/classes/class.ilDummyAccessHandler.php"; $this->access_handler = new ilDummyAccessHandler(); $params[] = "obj_id"; break; } $this->ctrl->saveParameter($this, $params); // old stuff for legacy code (obsolete?) if (!$this->object_id) { $this->creation_mode = true; } if ($this->node_id) { // add parent node id if missing if (!$this->parent_id && $this->tree) { $this->parent_id = $this->tree->getParentId($this->node_id); } } $this->ref_id = $this->node_id; $this->obj_id = $this->object_id; $this->assignObject(); // set context if (is_object($this->object)) { $this->ctrl->setContext($this->object->getId(), $this->object->getType()); } $this->afterConstructor(); }
/** * update a weblink with id. * * @param string $session_id current session * @param int $ref_id refid id of weblink in repository * @param string $weblink_xml xml description * * @return boolean true, if update successful, false otherwise */ function updateWebLink($sid, $ref_id, $weblink_xml) { $this->initAuth($sid); $this->initIlias(); if (!$this->__checkSession($sid)) { return $this->__raiseError($this->__getMessage(), $this->__getMessageCode()); } global $rbacsystem, $tree, $ilLog; if (ilObject::_isInTrash($ref_id)) { return $this->__raiseError('Cannot perform update since weblink has been deleted.', 'CLIENT_OBJECT_DELETED'); } // get obj_id if (!($obj_id = ilObject::_lookupObjectId($ref_id))) { return $this->__raiseError('No weblink found for id: ' . $ref_id, 'CLIENT_OBJECT_NOT_FOUND'); } // Check access $permission_ok = false; foreach ($ref_ids = ilObject::_getAllReferences($obj_id) as $ref_id) { if ($rbacsystem->checkAccess('edit', $ref_id)) { $permission_ok = true; break; } } if (!$permission_ok) { return $this->__raiseError('No permission to edit the weblink with id: ' . $ref_id, 'Server'); } $webl = ilObjectFactory::getInstanceByObjId($obj_id, false); if (!is_object($webl) or $webl->getType() != "webr") { return $this->__raiseError('Wrong obj id or type for weblink with id ' . $ref_id, 'Client'); } try { include_once './Modules/WebResource/classes/class.ilWebLinkXmlParser.php'; $parser = new ilWebLinkXmlParser($webl, $weblink_xml); $parser->setMode(ilWebLinkXmlParser::MODE_UPDATE); $parser->start(); } catch (ilSaxParserException $e) { return $this->__raiseError($e->getMessage(), 'Client'); } catch (ilWebLinkXMLParserException $e) { return $this->__raiseError($e->getMessage(), 'Client'); } // Check if required return true; }
/** * upload new version of module */ function newModuleVersion() { $obj_id = ilObject::_lookupObjectId($_GET['ref_id']); $type = ilObjSAHSLearningModule::_lookupSubType($obj_id); // display import form $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.scorm_new_version_import.html", "Modules/ScormAicc"); $this->tpl->setVariable("TYPE_IMG", ilUtil::getImagePath('icon_slm.png')); $this->tpl->setVariable("ALT_IMG", $this->lng->txt("obj_sahs")); $this->ctrl->setParameter($this, "new_type", "sahs"); $this->tpl->setVariable("FORMACTION", $this->ctrl->getFormAction($this)); $this->tpl->setVariable("BTN_NAME", "newModuleVersionUpload"); $this->tpl->setVariable("TARGET", ' target="' . ilFrameTargetInfo::_getFrame("MainContent") . '" '); $this->tpl->setVariable("TXT_SELECT_LMTYPE", $this->lng->txt("type")); if ($type == "scorm2004") { $this->tpl->setVariable("TXT_TYPE", $this->lng->txt("lm_type_scorm2004")); } else { $this->tpl->setVariable("TXT_TYPE", $this->lng->txt("lm_type_scorm")); } include_once 'Services/FileSystem/classes/class.ilUploadFiles.php'; if (ilUploadFiles::_getUploadDirectory()) { $files = ilUploadFiles::_getUploadFiles(); foreach ($files as $file) { $file = htmlspecialchars($file, ENT_QUOTES, "utf-8"); $this->tpl->setCurrentBlock("option_uploaded_file"); $this->tpl->setVariable("UPLOADED_FILENAME", $file); $this->tpl->setVariable("TXT_UPLOADED_FILENAME", $file); $this->tpl->parseCurrentBlock(); } $this->tpl->setCurrentBlock("select_uploaded_file"); $this->tpl->setVariable("TXT_SELECT_FROM_UPLOAD_DIR", $this->lng->txt("cont_select_from_upload_dir")); $this->tpl->setVariable("TXT_UPLOADED_FILE", $this->lng->txt("cont_uploaded_file")); $this->tpl->parseCurrentBlock(); } $this->tpl->setVariable("TXT_UPLOAD", $this->lng->txt("upload")); $this->tpl->setVariable("TXT_CANCEL", $this->lng->txt("cancel")); $this->tpl->setVariable("TXT_IMPORT_LM", $this->lng->txt("import_sahs")); $this->tpl->setVariable("TXT_SELECT_FILE", $this->lng->txt("select_file")); // gives out the limit as a little notice $this->tpl->setVariable("TXT_FILE_INFO", $this->lng->txt("file_notice") . " " . $this->getMaxFileSize()); }
/** * @param integer $ref_id ref_id of ilias ac-object * @param integer $sco_id * @param array $member_ids */ public function addCrsGrpMembers($ref_id, $sco_id, $member_ids = null) { global $tree; $parent_crs_ref = $tree->checkForParentType($ref_id, 'crs'); $parent_grp_ref = $tree->checkForParentType($ref_id, 'grp'); $type = null; $obj_id = 0; if ($parent_crs_ref && empty($parent_grp_ref)) { $obj_id = ilObject::_lookupObjectId($parent_crs_ref); include_once 'Modules/Course/classes/class.ilCourseParticipants.php'; $oParticipants = ilCourseParticipants::_getInstanceByObjId($obj_id); $type = 'crs'; } else { if ($parent_grp_ref) { $obj_id = ilObject::_lookupObjectId($parent_grp_ref); include_once 'Modules/Group/classes/class.ilGroupParticipants.php'; $oParticipants = ilGroupParticipants::_getInstanceByObjId($obj_id); $type = 'grp'; } } if ($type == 'crs' || $type == 'grp') { $role_map = ilAdobeConnectServer::getRoleMap(); $owner_id = ilObject::_lookupOwner(ilObject::_lookupObjectId($ref_id)); /** @var $oParticipants ilGroupParticipants | ilCourseParticipants */ $admins = $oParticipants->getAdmins(); $tutors = $oParticipants->getTutors(); $members = $oParticipants->getMembers(); if (is_array($member_ids) && count($member_ids) > 0) { $all_participants = $member_ids; $admins = array_uintersect($member_ids, $admins, 'strcmp'); $tutors = array_uintersect($member_ids, $tutors, 'strcmp'); $members = array_uintersect($member_ids, $members, 'strcmp'); } else { $all_participants = array_unique(array_merge($admins, $tutors, $members)); } $this->pluginObj->includeClass('class.ilAdobeConnectRoles.php'); $xavcRoles = new ilAdobeConnectRoles($ref_id); if (ilAdobeConnectServer::getSetting('user_assignment_mode') != ilAdobeConnectServer::ASSIGN_USER_SWITCH) { foreach ($all_participants as $user_id) { $this->pluginObj->includeClass('class.ilAdobeConnectUserUtil.php'); //check if there is an adobe connect account at the ac-server $ilAdobeConnectUser = new ilAdobeConnectUserUtil($user_id); $ilAdobeConnectUser->ensureAccountExistance(); // add to desktop if (ilAdobeConnectServer::getSetting('add_to_desktop') == 1) { ilObjUser::_addDesktopItem($user_id, $ref_id, 'xavc'); } } } // receive breeze session $session = self::getSession(); $this->pluginObj->includeClass('class.ilXAVCMembers.php'); if ($session != NULL && $this->xmlApi->login($this->adminLogin, $this->adminPass, $session)) { foreach ($admins as $user_id) { $xavcRoles->addAdministratorRole($user_id); $is_member = ilXAVCMembers::_isMember($user_id, $ref_id); // local member table $xavcMemberObj = new ilXAVCMembers($ref_id, $user_id); $status = $role_map[$type . '_admin']; $xavcMemberObj->setStatus($status); $xavcMemberObj->setScoId($sco_id); if ($is_member) { $xavcMemberObj->updateXAVCMember(); } else { $xavcMemberObj->insertXAVCMember(); } $xavc_login = ilXAVCMembers::_lookupXAVCLogin($user_id); if (!empty($xavc_login)) { $this->xmlApi->updateMeetingParticipant($sco_id, $xavc_login, $session, $status); } } foreach ($tutors as $user_id) { if (($xavc_login = ilXAVCMembers::_lookupXAVCLogin($user_id)) != $this->adminLogin && $user_id != $owner_id) { $xavcRoles->addAdministratorRole($user_id); $is_member = ilXAVCMembers::_isMember($user_id, $ref_id); // local member table $xavcMemberObj = new ilXAVCMembers($ref_id, $user_id); $status = $role_map[$type . '_tutor']; $xavcMemberObj->setStatus($status); $xavcMemberObj->setScoId($sco_id); if ($is_member) { $xavcMemberObj->updateXAVCMember(); } else { $xavcMemberObj->insertXAVCMember(); } if (!empty($xavc_login)) { $this->xmlApi->updateMeetingParticipant($sco_id, $xavc_login, $session, $status); } } } foreach ($members as $user_id) { if (($xavc_login = ilXAVCMembers::_lookupXAVCLogin($user_id)) != $this->adminLogin && $user_id != $owner_id) { $xavcRoles->addMemberRole($user_id); $is_member = ilXAVCMembers::_isMember($user_id, $ref_id); // local member table $xavcMemberObj = new ilXAVCMembers($ref_id, $user_id); $status = $role_map[$type . '_member']; $xavcMemberObj->setStatus($status); $xavcMemberObj->setScoId($sco_id); if ($is_member) { $xavcMemberObj->updateXAVCMember(); } else { $xavcMemberObj->insertXAVCMember(); } if (!empty($xavc_login)) { $this->xmlApi->updateMeetingParticipant($sco_id, $xavc_login, $session, $status); } } } $xavcRoles->addAdministratorRole($owner_id); // local member table $xavcMemberObj = new ilXAVCMembers($ref_id, $owner_id); $status = $role_map[$type . '_owner']; $xavcMemberObj->setStatus($status); $xavcMemberObj->setScoId($sco_id); $is_member = ilXAVCMembers::_isMember($owner_id, $ref_id); if ($is_member) { $xavcMemberObj->updateXAVCMember(); } else { $xavcMemberObj->insertXAVCMember(); } $this->xmlApi->updateMeetingParticipant($sco_id, ilXAVCMembers::_lookupXAVCLogin($owner_id), $session, $status); } } }
function details() { global $ilToolbar, $ilCtrl, $rbacsystem; // Show back button to crs if called from crs. Otherwise if called from personal desktop or administration // show back to list if ((int) $_GET['crs_id']) { $this->ctrl->setParameter($this, 'details_id', (int) $_GET['crs_id']); $ilToolbar->addButton($this->lng->txt('trac_view_crs'), $this->ctrl->getLinkTarget($this, 'details')); } elseif ($this->getMode() == self::LP_CONTEXT_PERSONAL_DESKTOP or $this->getMode() == self::LP_CONTEXT_ADMINISTRATION or $this->getMode() == self::LP_CONTEXT_USER_FOLDER) { $ilToolbar->addButton($this->lng->txt('trac_view_list'), $this->ctrl->getLinkTarget($this, 'show')); } $this->tpl->addBlockFile('ADM_CONTENT', 'adm_content', 'tpl.lp_progress_container.html', 'Services/Tracking'); include_once "./Services/InfoScreen/classes/class.ilInfoScreenGUI.php"; $info = new ilInfoScreenGUI($this); $info->setFormAction($ilCtrl->getFormAction($this)); $this->__appendUserInfo($info, $this->tracked_user); $this->__appendLPDetails($info, $this->details_obj_id, $this->tracked_user->getId()); $this->__showObjectDetails($info, $this->details_obj_id, false); // Finally set template variable $this->tpl->setVariable("LM_INFO", $info->getHTML()); include_once './Services/Object/classes/class.ilObjectLP.php'; $olp = ilObjectLP::getInstance($this->details_obj_id); $collection = $olp->getCollectionInstance(); if ($collection) { $obj_ids = array(); foreach ($collection->getItems() as $item_id) { if ($collection instanceof ilLPCollectionOfRepositoryObjects) { $obj_ids[ilObject::_lookupObjectId($item_id)] = array($item_id); } else { $obj_ids[] = $item_id; } } } // #15247 if (sizeof($obj_ids)) { // seems obsolete $personal_only = !$rbacsystem->checkAccess('read_learning_progress', $this->getRefId()); include_once "./Services/Tracking/classes/repository_statistics/class.ilLPProgressTableGUI.php"; $lp_table = new ilLPProgressTableGUI($this, "details", $this->tracked_user, $obj_ids, true, $this->details_mode, $personal_only, $this->details_obj_id, $this->details_id); $this->tpl->setVariable("LP_OBJECTS", $lp_table->getHTML()); } $this->tpl->setVariable("LEGEND", $this->__getLegendHTML()); }
static final function _lookupObjectId($a_ref_id) { return parent::_lookupObjectId($a_ref_id); }
/** * get results of test * * @param string $sid * @param int $test_ref_id * @param boolean $sum_only * * @return XMLResultSet with columns * sum only = true: user_id, login, firstname, lastname, matriculation, maximum points, received points * sum only = false: user_id, login, firstname, lastname, matriculation, question id, question title, question points, received points */ function getTestResults($sid, $test_ref_id, $sum_only) { $this->initAuth($sid); $this->initIlias(); if (!$this->__checkSession($sid)) { return $this->__raiseError($this->__getMessage(), $this->__getMessageCode()); } if (!strlen($test_ref_id)) { return $this->__raiseError('No test id given. Aborting!', 'Client'); } global $rbacsystem, $tree, $ilLog; if (ilObject::_isInTrash($test_ref_id)) { return $this->__raiseError('Test is trashed. Aborting!', 'Client'); } // get obj_id if (!($obj_id = ilObject::_lookupObjectId($test_ref_id))) { return $this->__raiseError('No test found for id: ' . $test_ref_id, 'Client'); } // Check access $permission_ok = false; foreach ($ref_ids = ilObject::_getAllReferences($obj_id) as $ref_id) { if ($rbacsystem->checkAccess('write', $ref_id)) { $permission_ok = true; break; } } if (!$permission_ok) { return $this->__raiseError('No permission to edit the object with id: ' . $test_ref_id, 'Server'); } // store into xml result set include_once './webservice/soap/classes/class.ilXMLResultSet.php'; include_once './webservice/soap/classes/class.ilXMLResultSetWriter.php'; $xmlResultSet = new ilXMLResultSet(); $xmlResultSet->addColumn("user_id"); $xmlResultSet->addColumn("login"); $xmlResultSet->addColumn("firstname"); $xmlResultSet->addColumn("lastname"); $xmlResultSet->addColumn("matriculation"); include_once './Modules/Test/classes/class.ilObjTest.php'; $test_obj = new ilObjTest($obj_id, false); $participants = $test_obj->getTestParticipants(); if ($sum_only) { $data = $test_obj->getAllTestResults($participants, false); // create xml $xmlResultSet->addColumn("maximum_points"); $xmlResultSet->addColumn("received_points"); // skip titles $titles = array_shift($data); foreach ($data as $row) { $xmlRow = new ilXMLResultSetRow(); $xmlRow->setValue(0, $row["user_id"]); $xmlRow->setValue(1, $row["login"]); $xmlRow->setValue(2, $row["firstname"]); $xmlRow->setValue(3, $row["lastname"]); $xmlRow->setValue(4, $row["matriculation"]); $xmlRow->setValue(5, $row["max_points"]); $xmlRow->setValue(6, $row["reached_points"]); $xmlResultSet->addRow($xmlRow); } } else { $data = $test_obj->getDetailedTestResults($participants); // create xml $xmlResultSet->addColumn("question_id"); $xmlResultSet->addColumn("question_title"); $xmlResultSet->addColumn("maximum_points"); $xmlResultSet->addColumn("received_points"); foreach ($data as $row) { $xmlRow = new ilXMLResultSetRow(); $xmlRow->setValue(0, $row["user_id"]); $xmlRow->setValue(1, $row["login"]); $xmlRow->setValue(2, $row["firstname"]); $xmlRow->setValue(3, $row["lastname"]); $xmlRow->setValue(4, $row["matriculation"]); $xmlRow->setValue(5, $row["question_id"]); $xmlRow->setValue(6, $row["question_title"]); $xmlRow->setValue(7, $row["max_points"]); $xmlRow->setValue(8, $row["reached_points"]); $xmlResultSet->addRow($xmlRow); } } // create writer $xmlWriter = new ilXMLResultSetWriter($xmlResultSet); $xmlWriter->start(); return $xmlWriter->getXML(); }
/** * edit page content (for repository root node and categories) * * @access public */ function editPageContentObject() { global $rbacsystem, $tpl, $lng, $ilCtrl; if (!$rbacsystem->checkAccess("write", $this->ref_id)) { $this->ilias->raiseError($this->lng->txt("msg_no_perm_write"), $this->ilias->error_obj->MESSAGE); } $xpage_id = ilContainer::_lookupContainerSetting($this->object->getId(), "xhtml_page"); if ($xpage_id > 0) { include_once "Services/XHTMLPage/classes/class.ilXHTMLPage.php"; $xpage = new ilXHTMLPage($xpage_id); $content = $xpage->getContent(); } // get template $tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.container_edit_page_content.html", "Services/Container"); $tpl->setVariable("VAL_CONTENT", ilUtil::prepareFormOutput($content)); $tpl->setVariable("FORMACTION", $this->ctrl->getFormAction($this)); $tpl->setVariable("TXT_EDIT_PAGE_CONTENT", $this->lng->txt("edit_page_content")); $tpl->setVariable("TXT_SAVE", $this->lng->txt("save")); $tpl->setVariable("TXT_CANCEL", $this->lng->txt("cancel")); $tpl->setVariable("TXT_MIGRATION_INFO", $lng->txt("cntr_old_editor_warning")); $tpl->setVariable("TXT_MIGRATION_OPEN_STD_EDITOR", $lng->txt("cntr_old_editor_open_standard_editor")); $tpl->setVariable("IMG_WARNING", ilUtil::getImagePath("icon_alert.svg")); $tpl->setVariable("HREF_OPEN_STD_EDITOR", $ilCtrl->getLinkTarget($this, "switchToStdEditor")); $tpl->setVariable("ALT_WARNING", $lng->txt("warning")); include_once "./Services/Form/classes/class.ilFormPropertyGUI.php"; include_once "./Services/Form/classes/class.ilTextAreaInputGUI.php"; //$ta = new ilTextAreaInputGUI(); //$tags = $ta->getRteTagSet("extended_table_img"); // add rte support include_once "./Services/RTE/classes/class.ilRTE.php"; $rtestring = ilRTE::_getRTEClassname(); include_once "./Services/RTE/classes/class.{$rtestring}.php"; $rte = new $rtestring(); //$rte->addPlugin("latex"); include_once "./Services/Object/classes/class.ilObject.php"; $obj_id = ilObject::_lookupObjectId($_GET["ref_id"]); $obj_type = ilObject::_lookupType($_GET["ref_id"], TRUE); $rte->addRTESupport($obj_id, $obj_type); //$rte->setStyleSelect(true); //$rte->addCustomRTESupport($obj_id, $obj_type, $tags); }
/** * Handle group creation inside main course * @param type $a_obj_id */ protected function handleGroupCreation($a_node_ref_id, $a_node_obj_id, $a_node_obj_type) { if ($a_node_obj_type != 'grp') { $GLOBALS['ilLog']->write(__METHOD__ . ': New node not of type grp for ref_id ' . $a_node_ref_id); return false; } if (!$a_node_ref_id) { $GLOBALS['ilLog']->write(__METHOD__ . ': No ref_id given. Aborting!'); return false; } $parent_id = $GLOBALS['tree']->getParentId($a_node_ref_id); if (ilObject::_lookupType($parent_id, true) != 'crs') { $GLOBALS['ilLog']->write(__METHOD__ . ': Parent type is not of type "crs"'); return false; } if (!$this->isMainCourse($parent_id)) { $GLOBALS['ilLog']->write(__METHOD__ . ': Parent course is not main course for group ref_id ' . $a_node_ref_id); return false; } // determine default group role $group_role_id = 0; foreach ($GLOBALS['rbacreview']->getRolesOfObject($a_node_ref_id, TRUE) as $role_id) { $role_title = ilObject::_lookupTitle($role_id); if (substr($role_title, 0, 8) == 'il_grp_m') { $group_role_id = $role_id; } } if (!$group_role_id) { $GLOBALS['ilLog']->write(__METHOD__ . ': Did not found default group member role for group obj_id ' . $a_node_obj_id); return false; } // now assign all members of the parent course to the new group include_once './Modules/Course/classes/class.ilCourseParticipants.php'; $part = ilCourseParticipants::getInstanceByObjId(ilObject::_lookupObjectId($parent_id)); foreach ($part->getMembers() as $member_id) { // do not assign user if he/she is admin or tutor if ($part->isAdmin($member_id) || $part->isTutor($member_id)) { continue; } $GLOBALS['rbacadmin']->assignUser($group_role_id, $member_id); } return true; }
function details() { global $ilToolbar, $ilCtrl, $rbacsystem; // Show back button to crs if called from crs. Otherwise if called from personal desktop or administration // show back to list if ((int) $_GET['crs_id']) { $this->ctrl->setParameter($this, 'details_id', (int) $_GET['crs_id']); $ilToolbar->addButton($this->lng->txt('trac_view_crs'), $this->ctrl->getLinkTarget($this, 'details')); } elseif ($this->getMode() == self::LP_CONTEXT_PERSONAL_DESKTOP or $this->getMode() == self::LP_CONTEXT_ADMINISTRATION or $this->getMode() == self::LP_CONTEXT_USER_FOLDER) { $ilToolbar->addButton($this->lng->txt('trac_view_list'), $this->ctrl->getLinkTarget($this, 'show')); } $this->tpl->addBlockFile('ADM_CONTENT', 'adm_content', 'tpl.lp_progress_container.html', 'Services/Tracking'); $olp = ilObjectLP::getInstance($this->details_obj_id); $collection = $olp->getCollectionInstance(); include_once "./Services/InfoScreen/classes/class.ilInfoScreenGUI.php"; $info = new ilInfoScreenGUI($this); $info->setFormAction($ilCtrl->getFormAction($this)); $this->__appendUserInfo($info, $this->tracked_user); $this->__showObjectDetails($info, $this->details_obj_id, false); // START PATCH RUBRIC CPKN 2016 include_once './Services/Tracking/classes/rubric/class.ilLPRubricGrade.php'; include_once './Services/Tracking/classes/rubric/class.ilLPRubricGradeGUI.php'; //if the user is viewing history show the old status/mark/etc. if ($olp->getCurrentMode() == 92 && $_REQUEST['grader_history'] !== 'current' && !is_null($_REQUEST['grader_history'])) { $marks = ilLPRubricGrade::_lookupRubricHistoryLP($_REQUEST['grader_history']); include_once "./Services/Tracking/classes/class.ilLearningProgressBaseGUI.php"; $status_path = ilLearningProgressBaseGUI::_getImagePathForStatus($marks['status']); $status_text = ilLearningProgressBaseGUI::_getStatusText($marks['status']); $info->addSection($this->lng->txt("trac_progress") . ": " . ilObject::_lookupTitle($this->details_obj_id)); $info->addProperty($this->lng->txt('trac_mode'), $olp->getModeText($olp->getCurrentMode())); $info->addProperty($this->lng->txt('trac_status'), ilUtil::img($status_path, $status_text) . " " . $status_text); $info->addProperty($this->lng->txt('trac_mark'), $marks['mark']); $info->addProperty($this->lng->txt('trac_comment'), $marks['comments']); } else { $this->__appendLPDetails($info, $this->details_obj_id, $this->tracked_user->getId()); } // END PATCH RUBRIC CPKN 2016 // Finally set template variable $this->tpl->setVariable("LM_INFO", $info->getHTML()); include_once './Services/Object/classes/class.ilObjectLP.php'; if ($collection) { $obj_ids = array(); foreach ($collection->getItems() as $item_id) { if ($collection instanceof ilLPCollectionOfRepositoryObjects) { $obj_ids[ilObject::_lookupObjectId($item_id)] = array($item_id); } else { $obj_ids[] = $item_id; } } } // #15247 if (sizeof($obj_ids)) { // seems obsolete $personal_only = !$rbacsystem->checkAccess('read_learning_progress', $this->getRefId()); include_once "./Services/Tracking/classes/repository_statistics/class.ilLPProgressTableGUI.php"; $lp_table = new ilLPProgressTableGUI($this, "details", $this->tracked_user, $obj_ids, true, $this->details_mode, $personal_only, $this->details_obj_id, $this->details_id); $this->tpl->setVariable("LP_OBJECTS", $lp_table->getHTML()); } $this->tpl->setVariable("LEGEND", $this->__getLegendHTML()); // START PATCH RUBRIC CPKN 2015 if ($olp->getCurrentMode() == ilLPObjSettings::LP_MODE_RUBRIC) { $rubricObj = new ilLPRubricGrade($this->getObjId()); $rubricGui = new ilLPRubricGradeGUI(); $a_user = ilObjectFactory::getInstanceByObjId($_SESSION['AccountId']); if ($rubricObj->objHasRubric() && $rubricObj->isRubricComplete()) { $rubricGui->setUserHistoryId($_REQUEST['grader_history']); $rubricGui->setUserHistory($rubricObj->getUserHistory($_SESSION['AccountId'])); $rubricGui->setRubricData($rubricObj->load()); $rubricGui->setUserData($rubricObj->getRubricUserGradeData($_SESSION['AccountId'], $_REQUEST['grader_history'])); $rubricGui->setRubricComment($rubricObj->getRubricComment($_SESSION['AccountId'], $_REQUEST['grader_history'])); $this->tpl->setVariable("LP_OBJECTS", $rubricGui->getStudentViewHTML($this->ctrl->getFormAction($this), $a_user->getFullname(), $_SESSION['AccountId'])); } } // END PATCH RUBRIC CPKN 2015 }
public function performCrsGrpTrigger() { ignore_user_abort(true); @set_time_limit(0); $response = new stdClass(); $response->succcess = false; $this->pluginObj->includeClass('class.ilAdobeConnectServer.php'); if ((int) ilAdobeConnectServer::getSetting('allow_crs_grp_trigger') == 0) { echo json_encode($response); exit; } $this->pluginObj->includeClass('class.ilXAVCMembers.php'); if (count($this->object->getParticipantsObject()->getParticipants()) > 0) { $sco_id = ilObjAdobeConnect::_lookupScoId(ilObject::_lookupObjectId($this->object->getRefId())); $current_member_ids = ilXAVCMembers::getMemberIds($this->object->getRefId()); $crs_grp_member_ids = $this->object->getParticipantsObject()->getParticipants(); if (count($current_member_ids) == 0 && count($crs_grp_member_ids) > 0) { $this->object->addCrsGrpMembers($this->object->getRefId(), $sco_id); } else { $new_member_ids = array_diff($crs_grp_member_ids, $current_member_ids); $delete_member_ids = array_diff($current_member_ids, $crs_grp_member_ids); if (is_array($new_member_ids) && count($new_member_ids) > 0) { $this->object->addCrsGrpMembers($this->object->getRefId(), $sco_id, $new_member_ids); } if (is_array($delete_member_ids) && count($delete_member_ids) > 0) { $this->object->deleteCrsGrpMembers($sco_id, $delete_member_ids); } } } $response->succcess = true; echo json_encode($response); exit; }
protected function parseChangesFaPa(array $raw) { $result = array(); $type = ilObject::_lookupType($this->ref_id, true); if (isset($raw["src"])) { $obj_id = ilObject::_lookupObjectId($raw["src"]); if ($obj_id) { include_once "./Services/Link/classes/class.ilLink.php"; $result[] = array("action" => $this->lng->txt("rbac_log_source_object"), "operation" => "<a href=\"" . ilLink::_getLink($raw["src"]) . "\">" . ilObject::_lookupTitle($obj_id) . "</a>"); } // added only foreach ($raw["ops"] as $role_id => $ops) { foreach ($ops as $op) { $result[] = array("action" => sprintf($this->lng->txt("rbac_log_operation_add"), ilObject::_lookupTitle($role_id)), "operation" => $this->getOPCaption($type, $op)); } } } else { if (isset($raw["ops"])) { foreach ($raw["ops"] as $role_id => $actions) { foreach ($actions as $action => $ops) { foreach ((array) $ops as $op) { $result[] = array("action" => sprintf($this->lng->txt("rbac_log_operation_" . $action), ilObject::_lookupTitle($role_id)), "operation" => $this->getOPCaption($type, $op)); } } } } } if (isset($raw["inht"])) { foreach ($raw["inht"] as $action => $role_ids) { foreach ((array) $role_ids as $role_id) { $result[] = array("action" => sprintf($this->lng->txt("rbac_log_inheritance_" . $action), ilObject::_lookupTitle($role_id))); } } } return $result; }
/** * Get status matrix for users on objects * * @param int $a_parent_ref_id * @param array $a_obj_ids * @param string $a_user_filter * @return array cnt, set */ static function getUserObjectMatrix($a_parent_ref_id, $a_obj_ids, $a_user_filter = NULL) { global $ilDB; $result = array("cnt" => 0, "set" => NULL); if (sizeof($a_obj_ids)) { $where = array(); $where[] = "usr_data.usr_id <> " . $ilDB->quote(ANONYMOUS_USER_ID, "integer"); if ($a_user_filter) { $where[] = $ilDB->like("usr_data.login", "text", "%" . $a_user_filter . "%"); } // users $left = ""; $a_users = self::getParticipantsForObject($a_parent_ref_id); if (is_array($a_users)) { $left = "LEFT"; $where[] = $ilDB->in("usr_data.usr_id", $a_users, false, "integer"); } include_once "./Services/Tracking/classes/class.ilLPStatus.php"; $fields = array("usr_data.usr_id", "login", "active", "status", "status_changed", "percentage", "last_access", "spent_seconds+childs_spent_seconds as spent_seconds"); $parent_obj_id = ilObject::_lookupObjectId($a_parent_ref_id); self::refreshObjectsStatus(array($parent_obj_id), $a_users); self::refreshObjectsStatus($a_obj_ids, $a_users); $raw = array(); foreach ($a_obj_ids as $obj_id) { // one request for each object $query = " FROM usr_data " . $left . " JOIN read_event ON (read_event.usr_id = usr_data.usr_id" . " AND read_event.obj_id = " . $ilDB->quote($obj_id, "integer") . ")" . " LEFT JOIN ut_lp_marks ON (ut_lp_marks.usr_id = usr_data.usr_id " . " AND ut_lp_marks.obj_id = " . $ilDB->quote($obj_id, "integer") . ")" . self::buildFilters($where); $raw = self::executeQueries(array(array("fields" => $fields, "query" => $query)), "login"); if ($raw["cnt"]) { // convert to final structure foreach ($raw["set"] as $row) { $result["set"][$row["usr_id"]]["login"] = $row["login"]; $result["set"][$row["usr_id"]]["usr_id"] = $row["usr_id"]; $result["set"][$row["usr_id"]]["objects"][$obj_id] = array("status" => $row["status"], "percentage" => $row["percentage"]); if ($obj_id == $parent_obj_id) { $result["set"][$row["usr_id"]]["status_changed"] = $row["status_changed"]; $result["set"][$row["usr_id"]]["last_access"] = $row["last_access"]; $result["set"][$row["usr_id"]]["spent_seconds"] = $row["spent_seconds"]; } } } } $result["cnt"] = sizeof($result["set"]); $result["users"] = $a_users; } return $result; }
/** * Init menu entry form. * * @param string $a_mode Edit Mode */ public function initMenuEntryForm($a_mode = "edit") { global $lng, $ilCtrl; include_once "Services/Form/classes/class.ilPropertyFormGUI.php"; $form = new ilPropertyFormGUI(); // title $ti = new ilTextInputGUI($this->lng->txt("lm_menu_entry_title"), "title"); $ti->setMaxLength(255); $ti->setSize(40); $form->addItem($ti); // target $ta = new ilTextInputGUI($this->lng->txt("lm_menu_entry_target"), "target"); $ta->setMaxLength(255); $ta->setSize(40); $form->addItem($ta); if ($a_mode == "edit") { $this->__initLMMenuEditor(); $this->lmme_obj->readEntry($_REQUEST["menu_entry"]); $ti->setValue($this->lmme_obj->getTitle()); $ta->setValue($this->lmme_obj->getTarget()); } if (isset($_GET["link_ref_id"])) { $link_ref_id = (int) $_GET["link_ref_id"]; $obj_type = ilObject::_lookupType($link_ref_id, true); $obj_id = ilObject::_lookupObjectId($link_ref_id); $title = ilObject::_lookupTitle($obj_id); $target_link = $obj_type . "_" . $link_ref_id; $ti->setValue($title); $ta->setValue($target_link); // link ref id $hi = new ilHiddenInputGUI("link_ref_id"); $hi->setValue($link_ref_id); $form->addItem($hi); } // save and cancel commands if ($a_mode == "create") { $form->addCommandButton("saveMenuEntry", $lng->txt("save")); $form->addCommandButton("editMenuProperties", $lng->txt("cancel")); $form->setTitle($lng->txt("lm_menu_new_entry")); } else { $form->addCommandButton("updateMenuEntry", $lng->txt("save")); $form->addCommandButton("editMenuProperties", $lng->txt("cancel")); $form->setTitle($lng->txt("lm_menu_edit_entry")); } $form->setFormAction($ilCtrl->getFormAction($this)); return $form; }
/** * updates class room on ilinc server * * @access public */ public function updateClassroom() { $this->initSettingsForm('edit'); if ($this->form_gui->checkInput()) { $this->object->setTitle($this->form_gui->getInput('title')); $this->object->setDescription($this->form_gui->getInput('desc')); $this->object->setDocentId($this->form_gui->getInput('instructoruserid')); $this->object->setStatus($this->form_gui->getInput('alwaysopen')); if (!$this->object->update()) { $this->ilErr->raiseError($this->object->getErrorMsg(), $this->ilErr->MESSAGE); } ilUtil::sendInfo($this->getResultMsg(), true); $this->ctrl->redirectByClass('ilobjilinccoursegui'); } else { if ($this->ilias->getSetting('ilinc_akclassvalues_active')) { $icrs_obj_id = ilObject::_lookupObjectId($this->parent); include_once 'Modules/ILinc/classes/class.ilObjiLincCourse.php'; $akclassvalues = ilObjiLincCourse::_getAKClassValues($icrs_obj_id); $_POST['akclassvalue1'] = $akclassvalues[0]; $_POST['akclassvalue2'] = $akclassvalues[1]; } $this->form_gui->setValuesByPost(); return $this->tpl->setVariable('ADM_CONTENT', $this->form_gui->getHtml()); } }
public function confirmRemoveObject() { global $ilCtrl; if (!sizeof($_POST["id"])) { ilUtil::sendFailure($this->lng->txt("select_one"), true); $ilCtrl->redirect($this, "manage"); } if ($this->view == self::VIEW_MY_OFFERS) { $question = $this->lng->txt("pd_info_delete_sure_remove"); $cmd = "confirmedRemove"; } else { $question = $this->lng->txt("pd_info_delete_sure_unsubscribe"); $cmd = "confirmedUnsubscribe"; } include_once "./Services/Utilities/classes/class.ilConfirmationGUI.php"; $cgui = new ilConfirmationGUI(); $cgui->setHeaderText($question); $cgui->setFormAction($ilCtrl->getFormAction($this)); $cgui->setCancel($this->lng->txt("cancel"), "manage"); $cgui->setConfirm($this->lng->txt("confirm"), $cmd); foreach ($_POST["id"] as $ref_id) { $obj_id = ilObject::_lookupObjectId($ref_id); $title = ilObject::_lookupTitle($obj_id); $type = ilObject::_lookupType($obj_id); $cgui->addItem("ref_id[]", $ref_id, $title, ilObject::_getIcon($obj_id, "small", $type), $this->lng->txt("icon") . " " . $this->lng->txt("obj_" . $type)); } return $cgui->getHTML(); }
public function getSCORMCompletionStatus($sid, $a_usr_id, $a_ref_id) { $this->initAuth($sid); $this->initIlias(); if (!$this->__checkSession($sid)) { return $this->__raiseError($this->__getMessage(), $this->__getMessageCode()); } if (!strlen($a_ref_id)) { return $this->__raiseError('No ref_id given. Aborting!', 'Client'); } include_once 'include/inc.header.php'; // get obj_id if (!($obj_id = ilObject::_lookupObjectId($a_ref_id))) { return $this->__raiseError('No scorm module found for id: ' . $a_ref_id, 'Client'); } include_once 'Services/Tracking/classes/class.ilLPStatus.php'; include_once 'Services/Tracking/classes/class.ilObjUserTracking.php'; if (!ilObjUserTracking::_enabledLearningProgress()) { return $this->__raiseError('Learning progress not enabled in this installation. Aborting!', 'Server'); } $status = ilLPStatus::_lookupStatus($obj_id, $a_usr_id); if ($status == ilLPStatus::LP_STATUS_COMPLETED_NUM) { return 'completed'; } else { if ($status == ilLPStatus::LP_STATUS_FAILED_NUM) { return 'failed'; } else { if ($status == ilLPStatus::LP_STATUS_IN_PROGRESS_NUM) { return 'in_progress'; } else { return 'not_attempted'; } } } }
public static function _goto($a_target, $a_thread = 0, $a_posting = 0) { /** * @var $ilAccess ilAccessHandler * @var $ilErr ilErrorHandling * @var $lng ilLanguage */ global $ilAccess, $ilErr, $lng; if ($ilAccess->checkAccess('read', '', $a_target)) { if ($a_thread != 0) { $objTopic = new ilForumTopic($a_thread); if ($objTopic->getFrmObjId() && $objTopic->getFrmObjId() != ilObject::_lookupObjectId($a_target)) { $ref_ids = ilObject::_getAllReferences($objTopic->getFrmObjId()); foreach ($ref_ids as $ref_id) { if ($ilAccess->checkAccess('read', '', $ref_id)) { $new_ref_id = $ref_id; break; } } if (isset($new_ref_id) && $new_ref_id != $a_target) { ilUtil::redirect(ILIAS_HTTP_PATH . "/goto.php?target=frm_" . $new_ref_id . "_" . $a_thread . "_" . $a_posting); } } $_GET['ref_id'] = $a_target; $_GET['pos_pk'] = $a_posting; $_GET['thr_pk'] = $a_thread; $_GET['anchor'] = $a_posting; $_GET['cmdClass'] = 'ilObjForumGUI'; $_GET['cmd'] = 'viewThread'; $_GET['baseClass'] = 'ilRepositoryGUI'; include_once 'ilias.php'; exit; } else { $_GET['ref_id'] = $a_target; $_GET['baseClass'] = 'ilRepositoryGUI'; include_once 'ilias.php'; exit; } } else { if ($ilAccess->checkAccess('read', '', ROOT_FOLDER_ID)) { $_GET['target'] = ''; $_GET['ref_id'] = ROOT_FOLDER_ID; ilUtil::sendInfo(sprintf($lng->txt('msg_no_perm_read_item'), ilObject::_lookupTitle(ilObject::_lookupObjId($a_target))), true); $_GET['baseClass'] = 'ilRepositoryGUI'; include 'ilias.php'; exit; } } $ilErr->raiseError($lng->txt('msg_no_perm_read'), $ilErr->FATAL); }
/** * get File xml * * @param string $sid * @param int $ref_id * @param boolean $attachFileContentsMode * * @return xml following ilias_file_x.dtd */ function getFileXML($sid, $ref_id, $attachFileContentsMode) { $this->initAuth($sid); $this->initIlias(); if (!$this->__checkSession($sid)) { return $this->__raiseError($this->__getMessage(), $this->__getMessageCode()); } if (!strlen($ref_id)) { return $this->__raiseError('No ref id given. Aborting!', 'Client'); } global $rbacsystem, $tree, $ilLog, $ilAccess; // get obj_id if (!($obj_id = ilObject::_lookupObjectId($ref_id))) { return $this->__raiseError('No File found for id: ' . $ref_id, 'Client'); } if (ilObject::_isInTrash($ref_id)) { return $this->__raiseError("Object with ID {$ref_id} has been deleted.", 'Client'); } // Check access $permission_ok = false; foreach ($ref_ids = ilObject::_getAllReferences($obj_id) as $ref_id) { if ($ilAccess->checkAccess('read', '', $ref_id)) { $permission_ok = true; break; } } if (!$permission_ok) { return $this->__raiseError('No permission to edit the object with id: ' . $ref_id, 'Server'); } $file = ilObjectFactory::getInstanceByObjId($obj_id, false); if (!is_object($file) || $file->getType() != "file") { return $this->__raiseError('Wrong obj id or type for File with id ' . $ref_id, 'Server'); } // store into xml result set include_once './Modules/File/classes/class.ilFileXMLWriter.php'; // create writer $xmlWriter = new ilFileXMLWriter(); $xmlWriter->setFile($file); $xmlWriter->setAttachFileContents($attachFileContentsMode); $xmlWriter->start(); return $xmlWriter->getXML(); }
function isClickable($a_type, $a_ref_id, $a_obj_id = 0) { global $rbacsystem, $ilDB, $ilUser, $ilAccess; if (!ilConditionHandler::_checkAllConditionsOfTarget($a_ref_id, $a_obj_id)) { return false; } switch ($a_type) { case "crs": return $ilAccess->checkAccess("read", "", $a_ref_id); // visible groups can allways be clicked; group processing decides // what happens next // visible groups can allways be clicked; group processing decides // what happens next case "grp": return true; case 'tst': if (!$rbacsystem->checkAccess("read", $a_ref_id)) { return false; } $query = sprintf("SELECT * FROM tst_tests WHERE obj_fi=%s", $a_obj_id); $res = $ilDB->query($query); while ($row = $res->fetchRow(DB_FETCHMODE_OBJECT)) { return (bool) $row->complete; } return false; case 'svy': if (!$rbacsystem->checkAccess("read", $a_ref_id)) { return false; } $query = sprintf("SELECT * FROM svy_svy WHERE obj_fi=%s", $a_obj_id); $res = $ilDB->query($query); while ($row = $res->fetchRow(DB_FETCHMODE_OBJECT)) { return (bool) $row->complete; } return false; // media pools can only be edited // media pools can only be edited case "mep": if ($rbacsystem->checkAccess("read", $a_ref_id)) { return true; } else { return false; } break; case 'crsr': case 'catr': include_once './Services/ContainerReference/classes/class.ilContainerReferenceAccess.php'; return ilContainerReferenceAccess::_isAccessible($a_ref_id); // all other types are only clickable, if read permission is given // all other types are only clickable, if read permission is given default: if ($rbacsystem->checkAccess("read", $a_ref_id)) { // check if lm is online if ($a_type == "lm") { include_once "./Modules/LearningModule/classes/class.ilObjLearningModule.php"; $lm_obj =& new ilObjLearningModule($a_ref_id); if (!$lm_obj->getOnline() && !$rbacsystem->checkAccess('write', $a_ref_id)) { return false; } } // check if fblm is online if ($a_type == "htlm") { include_once "./Modules/HTMLLearningModule/classes/class.ilObjFileBasedLM.php"; $lm_obj =& new ilObjFileBasedLM($a_ref_id); if (!$lm_obj->getOnline() && !$rbacsystem->checkAccess('write', $a_ref_id)) { return false; } } // check if fblm is online if ($a_type == "sahs") { include_once "./Modules/ScormAicc/classes/class.ilObjSAHSLearningModule.php"; $lm_obj =& new ilObjSAHSLearningModule($a_ref_id); if (!$lm_obj->getOnline() && !$rbacsystem->checkAccess('write', $a_ref_id)) { return false; } } // check if glossary is online if ($a_type == "glo") { $obj_id = ilObject::_lookupObjectId($a_ref_id); include_once "./Modules/Glossary/classes/class.ilObjGlossary.php"; if (!ilObjGlossary::_lookupOnline($obj_id) && !$rbacsystem->checkAccess('write', $a_ref_id)) { return false; } } return true; } else { return false; } break; } }
/** * Returns the available question pools for the active user * * @return array The available question pools * @access public */ function _getAvailableQuestionpools($use_object_id = FALSE, $could_be_offline = FALSE, $showPath = FALSE, $permission = "read") { global $ilUser; global $ilDB; $result_array = array(); $qpls = ilUtil::_getObjectsByOperations("spl", $permission, $ilUser->getId(), -1); $titles = ilObject::_prepareCloneSelection($qpls, "spl", $showPath); $allqpls = array(); $result = $ilDB->query("SELECT obj_fi, isonline FROM svy_qpl"); while ($row = $ilDB->fetchAssoc($result)) { $allqpls[$row['obj_fi']] = $row['isonline']; } foreach ($qpls as $ref_id) { $obj_id = ilObject::_lookupObjectId($ref_id); if ($could_be_offline || $allqpls[$obj_id] == 1) { if ($use_object_id) { $result_array[$obj_id] = $titles[$ref_id]; } else { $result_array[$ref_id] = $titles[$ref_id]; } } } return $result_array; }
function updateObjects($sid, $a_xml) { $this->initAuth($sid); $this->initIlias(); if (!$this->__checkSession($sid)) { return $this->__raiseError($this->__getMessage(), $this->__getMessageCode()); } if (!strlen($a_xml)) { return $this->__raiseError('No valid xml string given.', 'Client'); } global $rbacreview, $rbacsystem, $lng, $ilAccess; include_once './webservice/soap/classes/class.ilObjectXMLParser.php'; $xml_parser =& new ilObjectXMLParser($a_xml, true); try { $xml_parser->startParsing(); } catch (ilSaxParserException $se) { return $this->__raiseError($se->getMessage(), 'Client'); } catch (ilObjectXMLException $e) { return $this->__raiseError($e->getMessage(), 'Client'); } // Validate incoming data $object_datas = $xml_parser->getObjectData(); foreach ($object_datas as &$object_data) { $res = $this->validateReferences('update', $object_data); if ($this->isFault($res)) { return $res; } if (!$object_data["obj_id"]) { return $this->__raiseError('No obj_id in xml found.', 'Client'); } elseif ((int) $object_data["obj_id"] == -1 && count($object_data["references"]) > 0) { // object id might be unknown, resolve references instead to determine object id // all references should point to the same object, so using the first one is ok. foreach ($object_data["references"] as $refid) { if (ilObject::_isInTrash($refid)) { continue; } break; } $obj_id_from_refid = ilObject::_lookupObjectId($object_data["references"][0], false); if (!$obj_id_from_refid) { return $this->__raiseError('No obj_id found for reference id ' . $object_data["references"][0], 'CLIENT_OBJECT_NOT_FOUND'); } else { $tmp_obj = ilObjectFactory::getInstanceByObjId($object_data['obj_id'], false); $object_data["obj_id"] = $obj_id_from_refid; } } $tmp_obj = ilObjectFactory::getInstanceByObjId($object_data['obj_id'], false); if ($tmp_obj == null) { return $this->__raiseError('No object for id ' . $object_data['obj_id'] . '!', 'CLIENT_OBJECT_NOT_FOUND'); } else { $object_data["instance"] = $tmp_obj; } if ($object_data['type'] == 'role') { $rolf_ids = $rbacreview->getFoldersAssignedToRole($object_data['obj_id'], true); $rolf_id = $rolf_ids[0]; if (!$rbacsystem->checkAccess('write', $rolf_id)) { return $this->__raiseError('No write permission for object with id ' . $object_data['obj_id'] . '!', 'Client'); } } else { $permission_ok = false; foreach (ilObject::_getAllReferences($object_data['obj_id']) as $ref_id) { if ($ilAccess->checkAccess('write', '', $ref_id)) { $permission_ok = true; break; } } if (!$permission_ok) { return $this->__raiseError('No write permission for object with id ' . $object_data['obj_id'] . '!', 'Client'); } } } // perform update if (count($object_datas) > 0) { foreach ($object_datas as $object_data) { $this->updateReferences($object_data); $tmp_obj = $object_data["instance"]; $tmp_obj->setTitle($object_data['title']); $tmp_obj->setDescription($object_data['description']); #$GLOBALS['ilLog']->write(__METHOD__.': type is '. $object_data['type']); #$GLOBALS['ilLog']->write(__METHOD__.': type is '. $a_xml); switch ($object_data['type']) { case 'cat': $tmp_obj->updateTranslation($object_data["title"], $object_data["description"], $lng->getLangKey(), $lng->getLangKey()); break; } $tmp_obj->update(); if (strlen($object_data['owner']) && is_numeric($object_data['owner'])) { $tmp_obj->setOwner($object_data['owner']); $tmp_obj->updateOwner(); } } return true; } return false; }
public static function _deassignPurchasedCourseMemberRole($a_ref_id, $a_user_id) { include_once './Modules/Course/classes/class.ilCourseParticipants.php'; $obj_id = ilObject::_lookupObjectId($a_ref_id); $participants = ilCourseParticipants::_getInstanceByObjId($obj_id); $res = $participants->delete($a_user_id, IL_CRS_MEMBER); }
function outQuestionForTest($formaction, $active_id, $pass = NULL, $is_postponed = FALSE, $use_post_solutions = FALSE) { $test_output = $this->getTestOutput($active_id, $pass, $is_postponed, $use_post_solutions); $this->tpl->setVariable("QUESTION_OUTPUT", $test_output); $this->tpl->setVariable("FORMACTION", $formaction); include_once "./Services/RTE/classes/class.ilRTE.php"; $rtestring = ilRTE::_getRTEClassname(); include_once "./Services/RTE/classes/class.{$rtestring}.php"; $rte = new $rtestring(); include_once "./Services/Object/classes/class.ilObject.php"; $obj_id = ilObject::_lookupObjectId($_GET["ref_id"]); $obj_type = ilObject::_lookupType($_GET["ref_id"], TRUE); $rte->addUserTextEditor("textinput"); $this->outAdditionalOutput(); }