/**
  * 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');
     }
 }
Example #5
0
 /**
  * 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;
             }
         }
     }
 }
Example #6
0
 /**
  * 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;
     }
 }