/**
  * Show the license list
  * @access public
  */
 function showLicenses()
 {
     include_once './Services/Table/classes/class.ilTableGUI.php';
     if ($this->mode == LIC_MODE_ADMINISTRATION) {
         $objects = ilLicense::_getLicensedObjects();
     } else {
         $objects = ilLicense::_getLicensedChildObjects($this->parent_gui->object->getRefId());
     }
     $this->tpl->addBlockfile('ADM_CONTENT', 'adm_content', 'tpl.lic_show_licenses.html', "Services/License");
     foreach ($objects as $data) {
         $license =& new ilLicense($data["obj_id"]);
         $licenses = strval($license->getLicenses());
         $remarks = $license->getRemarks();
         $used_licenses = strval($license->getAccesses());
         $remaining_licenses = $licenses == "0" ? $this->lng->txt("arbitrary") : strval($license->getRemainingLicenses());
         $potential_accesses = strval($license->getPotentialAccesses());
         $this->tpl->setCurrentBlock("table_row");
         $this->tpl->setVariable("TITLE", $this->getItemHTML($data));
         $this->tpl->setVariable("REMARKS", $remarks);
         $this->tpl->setVariable("LICENSES", $licenses);
         $this->tpl->setVariable("USED_LICENSES", $used_licenses);
         $this->tpl->setVariable("REMAINING_LICENSES", $remaining_licenses);
         $this->tpl->setVariable("POTENTIAL_ACCESSES", $potential_accesses);
         $this->tpl->parseCurrentBlock();
     }
     $this->tpl->setVariable("TXT_TITLE", $this->lng->txt("title"));
     $this->tpl->setVariable("TXT_REMARKS", $this->lng->txt("comment"));
     $this->tpl->setVariable("TXT_EXISTING_LICENSES", $this->lng->txt("existing_licenses"));
     $this->tpl->setVariable("TXT_USED_LICENSES", $this->lng->txt("used_licenses"));
     $this->tpl->setVariable("TXT_REMAINING_LICENSES", $this->lng->txt("remaining_licenses"));
     $this->tpl->setVariable("TXT_POTENTIAL_ACCESSES", $this->lng->txt("potential_accesses"));
     $this->tpl->setVariable("TXT_USED_LICENSES_EXPLANATION", $this->lng->txt("used_licenses_explanation"));
     $this->tpl->setVariable("TXT_REMAINING_LICENSES_EXPLANATION", $this->lng->txt("remaining_licenses_explanation"));
     $this->tpl->setVariable("TXT_POTENTIAL_ACCESSES_EXPLANATION", $this->lng->txt("potential_accesses_explanation"));
 }
 protected function getItems($a_mode, ilObjectGUI $a_parent_gui)
 {
     $data = array();
     if ($a_mode == ilLicenseOverviewGUI::LIC_MODE_ADMINISTRATION) {
         $objects = ilLicense::_getLicensedObjects();
     } else {
         $objects = ilLicense::_getLicensedChildObjects($a_parent_gui->object->getRefId());
     }
     foreach ($objects as $item) {
         $license = new ilLicense($item["obj_id"]);
         $remaining_licenses = $license->getLicenses() == "0" ? $this->lng->txt("arbitrary") : $license->getRemainingLicenses();
         $data[] = array("title" => $item["title"], "comment" => nl2br(trim($license->getRemarks())), "existing" => $license->getLicenses(), "used" => $license->getAccesses(), "remaining" => $remaining_licenses, "potential" => $license->getPotentialAccesses(), "listGUI" => $this->getItemHTML($item));
     }
     $this->setData($data);
 }
 function showLearningModule()
 {
     global $ilUser;
     // Note license usage
     include_once "Services/License/classes/class.ilLicense.php";
     ilLicense::_noteAccess($this->object->getId(), $this->object->getType(), $this->object->getRefId());
     // #9483
     if ($ilUser->getId() != ANONYMOUS_USER_ID) {
         include_once "Services/Tracking/classes/class.ilLearningProgress.php";
         ilLearningProgress::_tracProgress($ilUser->getId(), $this->object->getId(), $this->object->getRefId(), "htlm");
     }
     require_once "./Modules/HTMLLearningModule/classes/class.ilObjFileBasedLMAccess.php";
     $startfile = ilObjFileBasedLMAccess::_determineStartUrl($this->object->getId());
     if ($startfile != "") {
         ilUtil::redirect($startfile);
     }
 }
 /**
  * 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;
             }
         }
     }
 }
 /**
  * execute command
  */
 function &executeCommand()
 {
     global $lng, $ilAccess, $ilNavigationHistory, $ilCtrl, $ilLocator, $ilObjDataCache;
     include_once "./Services/Object/classes/class.ilObjectGUI.php";
     include_once "./Modules/ScormAicc/classes/class.ilObjSAHSLearningModule.php";
     $lng->loadLanguageModule("content");
     $obj_id = ilObject::_lookupObjectId($_GET['ref_id']);
     // add entry to navigation history
     if ($ilAccess->checkAccess("read", "", $_GET["ref_id"])) {
         include_once "./Modules/ScormAicc/classes/class.ilObjSAHSLearningModuleAccess.php";
         if (!ilObjSAHSLearningModuleAccess::_lookupEditable($obj_id)) {
             $ilNavigationHistory->addItem($_GET["ref_id"], "ilias.php?cmd=infoScreen&baseClass=ilSAHSPresentationGUI&ref_id=" . $_GET["ref_id"], "lm");
         }
     }
     include_once 'Services/Payment/classes/class.ilPaymentObject.php';
     if (ilPaymentObject::_requiresPurchaseToAccess($_GET['ref_id'], $type = isset($_GET['purchasetype']) ? $_GET['purchasetype'] : NULL)) {
         $ilLocator->addRepositoryItems();
         $ilLocator->addItem($ilObjDataCache->lookupTitle($ilObjDataCache->lookupObjId($_GET['ref_id'])), 'ilias.php?baseClass=ilSAHSPresentationGUI&amp;ref_id=' . $_GET['ref_id'], '', $_GET['ref_id'], 'sahs');
         $this->tpl->setLocator();
         $this->tpl->getStandardTemplate();
         include_once 'Services/Payment/classes/class.ilShopPurchaseGUI.php';
         $this->ctrl->setReturn($this, '');
         $pp_gui = new ilShopPurchaseGUI($_GET['ref_id']);
         $this->ctrl->forwardCommand($pp_gui);
         $this->tpl->show();
         exit;
     }
     $next_class = $this->ctrl->getNextClass($this);
     $cmd = $this->ctrl->getCmd();
     $type = ilObjSAHSLearningModule::_lookupSubType($obj_id);
     if ($cmd == "downloadCertificate") {
         require_once "./Modules/ScormAicc/classes/SCORM/class.ilSCORMPresentationGUI.php";
         $scorm_gui = new ilSCORMPresentationGUI();
         $ret =& $this->ctrl->forwardCommand($scorm_gui);
     }
     switch ($type) {
         case "scorm2004":
             include_once "./Modules/ScormAicc/classes/class.ilObjSCORMLearningModuleGUI.php";
             $this->slm_gui = new ilObjSCORMLearningModuleGUI("", $_GET["ref_id"], true, false);
             break;
         case "scorm":
             include_once "./Modules/ScormAicc/classes/class.ilObjSCORMLearningModuleGUI.php";
             $this->slm_gui = new ilObjSCORMLearningModuleGUI("", $_GET["ref_id"], true, false);
             break;
         case "aicc":
             include_once "./Modules/ScormAicc/classes/class.ilObjAICCLearningModuleGUI.php";
             $this->slm_gui = new ilObjAICCLearningModuleGUI("", $_GET["ref_id"], true, false);
             break;
         case "hacp":
             include_once "./Modules/ScormAicc/classes/class.ilObjHACPLearningModuleGUI.php";
             $this->slm_gui = new ilObjHACPLearningModuleGUI("", $_GET["ref_id"], true, false);
             break;
     }
     if ($next_class != "ilinfoscreengui" && $cmd != "infoScreen" && $next_class != "illearningprogressgui") {
         include_once "./Services/License/classes/class.ilLicense.php";
         ilLicense::_noteAccess($obj_id, "sahs", $_GET["ref_id"]);
         switch ($type) {
             case "scorm2004":
                 $this->ctrl->setCmdClass("ilscorm13player");
                 $this->slm_gui = new ilObjSCORMLearningModuleGUI("", $_GET["ref_id"], true, false);
                 break;
             case "scorm":
                 $this->ctrl->setCmdClass("ilscormpresentationgui");
                 $this->slm_gui = new ilObjSCORMLearningModuleGUI("", $_GET["ref_id"], true, false);
                 break;
             case "aicc":
                 $this->ctrl->setCmdClass("ilaiccpresentationgui");
                 break;
             case "hacp":
                 $this->ctrl->setCmdClass("ilhacppresentationgui");
                 break;
         }
         $next_class = $this->ctrl->getNextClass($this);
     }
     switch ($next_class) {
         case "ilinfoscreengui":
             $ret =& $this->outputInfoScreen();
             break;
         case "ilscorm13player":
             require_once "./Modules/Scorm2004/classes/ilSCORM13Player.php";
             $scorm_gui = new ilSCORM13Player();
             $ret =& $this->ctrl->forwardCommand($scorm_gui);
             break;
         case "ilscormpresentationgui":
             require_once "./Modules/ScormAicc/classes/SCORM/class.ilSCORMPresentationGUI.php";
             $scorm_gui = new ilSCORMPresentationGUI();
             $ret =& $this->ctrl->forwardCommand($scorm_gui);
             break;
         case "ilaiccpresentationgui":
             require_once "./Modules/ScormAicc/classes/AICC/class.ilAICCPresentationGUI.php";
             $aicc_gui = new ilAICCPresentationGUI();
             $ret =& $this->ctrl->forwardCommand($aicc_gui);
             break;
         case "ilhacppresentationgui":
             require_once "./Modules/ScormAicc/classes/HACP/class.ilHACPPresentationGUI.php";
             $hacp_gui = new ilHACPPresentationGUI();
             $ret =& $this->ctrl->forwardCommand($hacp_gui);
             break;
         case "illearningprogressgui":
             $this->setInfoTabs("learning_progress");
             include_once "./Services/Tracking/classes/class.ilLearningProgressGUI.php";
             $new_gui =& new ilLearningProgressGUI(LP_MODE_REPOSITORY, $_GET['ref_id']);
             $this->ctrl->forwardCommand($new_gui);
             $this->tpl->show();
             break;
         default:
             $this->{$cmd}();
     }
 }