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);
     }
 }
 /**
  * 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&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}();
     }
 }