/** * Get tabs * * @access public * */ public function getAdminTabs() { global $rbacsystem, $ilAccess, $ilSetting; if ($rbacsystem->checkAccess("visible,read", $this->object->getRefId())) { $this->tabs_gui->addTarget("cont_edit_lrs_settings", $this->ctrl->getLinkTarget($this, "editSettings"), array("editSettings", "view")); include_once "Services/License/classes/class.ilLicenseAccess.php"; if (ilLicenseAccess::_isEnabled()) { $this->tabs_gui->addTarget("licenses", $this->ctrl->getLinkTargetByClass('illicenseoverviewgui', ''), "", "illicenseoverviewgui"); } } if ($rbacsystem->checkAccess('edit_permission', $this->object->getRefId())) { $this->tabs_gui->addTarget("perm_settings", $this->ctrl->getLinkTargetByClass('ilpermissiongui', "perm"), array(), 'ilpermissiongui'); } }
/** * adds tabs to tab gui object * * @param object $tabs_gui ilTabsGUI object */ function getTabs(&$tabs_gui) { global $rbacsystem, $ilUser, $ilCtrl, $ilHelp; if ($this->ctrl->getCmd() == "delete") { return; } switch ($this->object->getSubType()) { case "scorm2004": $ilHelp->setScreenIdComponent("sahs13"); break; case "scorm": $ilHelp->setScreenIdComponent("sahs12"); break; } // file system gui tabs // properties $ilCtrl->setParameterByClass("ilfilesystemgui", "resetoffset", 1); $tabs_gui->addTarget("cont_list_files", $this->ctrl->getLinkTargetByClass("ilfilesystemgui", "listFiles"), "", "ilfilesystemgui"); $ilCtrl->setParameterByClass("ilfilesystemgui", "resetoffset", ""); // info screen $force_active = $this->ctrl->getNextClass() == "ilinfoscreengui" ? true : false; $tabs_gui->addTarget("info_short", $this->ctrl->getLinkTargetByClass("ilinfoscreengui", "showSummary"), "", "ilinfoscreengui", "", $force_active); // properties $tabs_gui->addTarget("settings", $this->ctrl->getLinkTarget($this, "properties"), array("", "properties"), get_class($this)); // learning progress include_once './Services/Tracking/classes/class.ilLearningProgressAccess.php'; if (ilLearningProgressAccess::checkAccess($this->object->getRefId())) { $tabs_gui->addTarget('learning_progress', $this->ctrl->getLinkTargetByClass(array('illearningprogressgui'), ''), '', array('illplistofobjectsgui', 'illplistofsettingsgui', 'illearningprogressgui', 'illplistofprogressgui')); } include_once './Services/PrivacySecurity/classes/class.ilPrivacySettings.php'; $privacy = ilPrivacySettings::_getInstance(); if ($privacy->enabledSahsProtocolData()) { // tracking data $tabs_gui->addTarget("cont_tracking_data", $this->ctrl->getLinkTarget($this, "showTrackingItems"), "showTrackingItems", get_class($this)); } // certificate subtab include_once "Services/Certificate/classes/class.ilCertificate.php"; if (ilCertificate::isActive()) { // create and insert object in objecttree switch ($this->object->getSubType()) { case "scorm2004": case "scorm": // certificate $tabs_gui->addTarget("certificate", $this->ctrl->getLinkTarget($this, "certificate"), array("certificate", "certificateEditor", "certificateRemoveBackground", "certificateSave", "certificatePreview", "certificateDelete", "certificateUpload", "certificateImport")); break; } } include_once "Services/License/classes/class.ilLicenseAccess.php"; if ($rbacsystem->checkAccess('edit_permission', $this->object->getRefId()) and ilLicenseAccess::_isEnabled()) { $tabs_gui->addTarget("license", $this->ctrl->getLinkTargetByClass('illicensegui', ''), "", "illicensegui"); } // edit meta $tabs_gui->addTarget("meta_data", $this->ctrl->getLinkTargetByClass('ilmdeditorgui', ''), "", "ilmdeditorgui"); // perm if ($rbacsystem->checkAccess('edit_permission', $this->object->getRefId())) { $tabs_gui->addTarget("perm_settings", $this->ctrl->getLinkTargetByClass(array(get_class($this), 'ilpermissiongui'), "perm"), array("perm", "info", "owner"), 'ilpermissiongui'); } }
/** * adds tabs to tab gui object */ function getTabs() { global $ilUser, $ilAccess, $ilTabs, $lng, $ilHelp; $ilHelp->setScreenIdComponent("htlm"); if ($ilAccess->checkAccess('write', '', $this->ref_id)) { $ilTabs->addTab("id_list_files", $lng->txt("cont_list_files"), $this->ctrl->getLinkTargetByClass("ilfilesystemgui", "listFiles")); $ilTabs->addTab("id_info", $lng->txt("info_short"), $this->ctrl->getLinkTargetByClass(array("ilobjfilebasedlmgui", "ilinfoscreengui"), "showSummary")); $ilTabs->addTab("id_settings", $lng->txt("settings"), $this->ctrl->getLinkTarget($this, "properties")); } include_once './Services/Tracking/classes/class.ilLearningProgressAccess.php'; if (ilLearningProgressAccess::checkAccess($this->object->getRefId())) { $ilTabs->addTab("id_learning_progress", $lng->txt("learning_progress"), $this->ctrl->getLinkTargetByClass(array('ilobjfilebasedlmgui', 'illearningprogressgui'), '')); } include_once "Services/License/classes/class.ilLicenseAccess.php"; if ($ilAccess->checkAccess('edit_permission', '', $this->ref_id) and ilLicenseAccess::_isEnabled()) { $ilTabs->addTab("id_license", $lng->txt("license"), $this->ctrl->getLinkTargetByClass('illicensegui', '')); } if ($ilAccess->checkAccess('write', '', $this->ref_id)) { $ilTabs->addTab("id_meta_data", $lng->txt("meta_data"), $this->ctrl->getLinkTargetByClass('ilmdeditorgui', '')); $ilTabs->addTab("id_bib_data", $lng->txt("bib_data"), $this->ctrl->getLinkTarget($this, "editBibItem")); } // export if ($ilAccess->checkAccess("write", "", $this->object->getRefId())) { $ilTabs->addTab("export", $lng->txt("export"), $this->ctrl->getLinkTargetByClass("ilexportgui", "")); } if ($ilAccess->checkAccess('edit_permission', '', $this->object->getRefId())) { $ilTabs->addTab("id_permissions", $lng->txt("perm_settings"), $this->ctrl->getLinkTargetByClass(array(get_class($this), 'ilpermissiongui'), "perm")); } require_once "./Modules/HTMLLearningModule/classes/class.ilObjFileBasedLMAccess.php"; $startfile = ilObjFileBasedLMAccess::_determineStartUrl($this->object->getId()); if ($startfile != "") { $ilTabs->addNonTabbedLink("presentation_view", $this->lng->txt("glo_presentation_view"), "ilias.php?baseClass=ilHTLMPresentationGUI&ref_id=" . $this->object->getRefID(), "_blank"); } }
/** * adds tabs to tab gui object * * @param object $tabs_gui ilTabsGUI object */ function getTabs(&$tabs_gui) { global $rbacsystem, $ilUser, $ilCtrl, $ilHelp; if ($this->ctrl->getCmd() == "delete") { return; } switch ($this->object->getSubType()) { case "scorm2004": $ilHelp->setScreenIdComponent("sahs13"); break; case "scorm": $ilHelp->setScreenIdComponent("sahs12"); break; } // file system gui tabs // properties $ilCtrl->setParameterByClass("ilfilesystemgui", "resetoffset", 1); $tabs_gui->addTarget("cont_list_files", $this->ctrl->getLinkTargetByClass("ilfilesystemgui", "listFiles"), "", "ilfilesystemgui"); $ilCtrl->setParameterByClass("ilfilesystemgui", "resetoffset", ""); // info screen $force_active = $this->ctrl->getNextClass() == "ilinfoscreengui" ? true : false; $tabs_gui->addTarget("info_short", $this->ctrl->getLinkTargetByClass("ilinfoscreengui", "showSummary"), "", "ilinfoscreengui", "", $force_active); // properties $tabs_gui->addTarget("settings", $this->ctrl->getLinkTarget($this, "properties"), array("", "properties"), get_class($this)); // learning progress and offline mode include_once './Services/Tracking/classes/class.ilLearningProgressAccess.php'; if (ilLearningProgressAccess::checkAccess($this->object->getRefId())) { //if scorm && offline_mode activated if ($this->object->getSubType() == "scorm2004" || $this->object->getSubType() == "scorm") { if ($this->object->getOfflineMode() == true) { $tabs_gui->addTarget("offline_mode_manager", $this->ctrl->getLinkTarget($this, "offlineModeManager"), "offlineModeManager", "ilobjscormlearningmodulegui"); } } $tabs_gui->addTarget('learning_progress', $this->ctrl->getLinkTargetByClass(array('illearningprogressgui'), ''), '', array('illplistofobjectsgui', 'illplistofsettingsgui', 'illearningprogressgui', 'illplistofprogressgui')); } // tracking data if ($rbacsystem->checkAccess("read_learning_progress", $this->object->getRefId()) || $rbacsystem->checkAccess("edit_learning_progress", $this->object->getRefId())) { if ($this->object->getSubType() == "scorm2004" || $this->object->getSubType() == "scorm") { include_once './Services/PrivacySecurity/classes/class.ilPrivacySettings.php'; $privacy = ilPrivacySettings::_getInstance(); if ($privacy->enabledSahsProtocolData()) { $tabs_gui->addTarget("cont_tracking_data", $this->ctrl->getLinkTarget($this, "showTrackingItems"), "showTrackingItems", get_class($this)); } } } include_once "Services/License/classes/class.ilLicenseAccess.php"; if ($rbacsystem->checkAccess('edit_permission', $this->object->getRefId()) and ilLicenseAccess::_isEnabled()) { $tabs_gui->addTarget("license", $this->ctrl->getLinkTargetByClass('illicensegui', ''), "", "illicensegui"); } // edit meta $tabs_gui->addTarget("meta_data", $this->ctrl->getLinkTargetByClass('ilmdeditorgui', ''), "", "ilmdeditorgui"); // perm if ($rbacsystem->checkAccess('edit_permission', $this->object->getRefId())) { $tabs_gui->addTarget("perm_settings", $this->ctrl->getLinkTargetByClass(array(get_class($this), 'ilpermissiongui'), "perm"), array("perm", "info", "owner"), 'ilpermissiongui'); } }
/** * Check the remaining licenses of course objects and generate a message if raare * * @access private * */ private function checkLicenses($a_keep = false) { global $lng; include_once "Services/License/classes/class.ilLicenseAccess.php"; if (ilLicenseAccess::_isEnabled()) { $lic_set = new ilSetting("license"); $buffer = $lic_set->get("license_warning"); include_once "./Services/License/classes/class.ilLicense.php"; $licensed_items = ilLicense::_getLicensedChildObjects($this->object->getRefId()); foreach ($licensed_items as $item) { $license =& new ilLicense($item['obj_id']); $remaining = $license->getRemainingLicenses(); if ($remaining <= $buffer) { $lng->loadlanguageModule("license"); ilUtil::sendInfo(sprintf($this->lng->txt("course_licenses_rare"), $remaining), $a_keep); break; } } } }
/** * Note the access of the current usr to an object * * This function has to be called if an object is accessed for viewing. * * @access static * @param int object id (not reference) */ function _noteAccess($a_obj_id, $a_type, $a_ref_id) { global $ilDB, $ilUser, $ilSetting; // don't note the access if licensing is globally disabled require_once "Services/License/classes/class.ilLicenseAccess.php"; if (!ilLicenseAccess::_isEnabled()) { return; } // check if user has already accessed $query = 'SELECT read_count FROM read_event ' . 'WHERE usr_id = %s AND obj_id = %s'; $result = $ilDB->queryF($query, array('integer', 'integer'), array($ilUser->getId(), $a_obj_id)); if ($row = $ilDB->fetchObject($result)) { // already accessed -> nothing to do return; } else { // note access require_once 'Services/Tracking/classes/class.ilChangeEvent.php'; ilChangeEvent::_recordReadEvent($a_type, $a_ref_id, $a_obj_id, $ilUser->getId()); if (self::_isLicensed($a_obj_id)) { // increase used licenses $query = "UPDATE license_data SET used = used + 1 " . "WHERE obj_id = %s"; $ilDB->manipulateF($query, array('integer'), array($a_obj_id)); } } }
/** * check for available licenses */ function doLicenseCheck($a_permission, $a_cmd, $a_ref_id, $a_user_id, $a_obj_id, $a_type) { global $lng; // simple checks first if (!in_array($a_type, array('sahs', 'htlm')) or !in_array($a_permission, array('read'))) { $has_access = true; } else { require_once "Services/License/classes/class.ilLicenseAccess.php"; // licensing globally disabled => access granted if (!ilLicenseAccess::_isEnabled()) { $has_access = true; } else { $has_access = ilLicenseAccess::_checkAccess($a_user_id, $a_obj_id); } } if ($has_access) { $this->storeAccessResult($a_permission, $a_cmd, $a_ref_id, true, $a_user_id); return true; } else { $this->current_info->addInfoItem(IL_NO_LICENSE, $lng->txt("no_license_available")); $this->storeAccessResult($a_permission, $a_cmd, $a_ref_id, false, $a_user_id); return false; } }