Ejemplo n.º 1
0
 function executeCommand()
 {
     global $ilUser, $ilCtrl, $tpl, $ilTabs, $ilAccess;
     $next_class = $this->ctrl->getNextClass($this);
     $cmd = $this->ctrl->getCmd();
     $this->prepareOutput();
     // see ilWikiPageGUI::printViewOrderList()
     // printView() and pdfExport() cannot be in ilWikiPageGUI because of stylesheet confusion
     if ($cmd == "printView" || $cmd == "pdfExport") {
         $next_class = null;
     }
     switch ($next_class) {
         case "ilinfoscreengui":
             $this->checkPermission("visible");
             $this->addHeaderAction();
             $this->infoScreen();
             // forwards command
             break;
         case 'ilpermissiongui':
             $this->addHeaderAction();
             $ilTabs->activateTab("perm_settings");
             include_once "Services/AccessControl/classes/class.ilPermissionGUI.php";
             $perm_gui =& new ilPermissionGUI($this);
             $ret =& $this->ctrl->forwardCommand($perm_gui);
             break;
         case 'ilwikipagegui':
             $this->checkPermission("read");
             include_once "./Modules/Wiki/classes/class.ilWikiPageGUI.php";
             $wpage_gui = ilWikiPageGUI::getGUIForTitle($this->object->getId(), ilWikiUtil::makeDbTitle($_GET["page"]), $_GET["old_nr"], $this->object->getRefId());
             include_once "./Services/Style/classes/class.ilObjStyleSheet.php";
             $wpage_gui->setStyleId(ilObjStyleSheet::getEffectiveContentStyleId($this->object->getStyleSheetId(), "wiki"));
             $this->setContentStyleSheet();
             if (!$ilAccess->checkAccess("write", "", $this->object->getRefId()) && (!$ilAccess->checkAccess("edit_content", "", $this->object->getRefId()) || $wpage_gui->getPageObject()->getBlocked())) {
                 $wpage_gui->setEnableEditing(false);
             }
             // alter title and description
             //				$tpl->setTitle($wpage_gui->getPageObject()->getTitle());
             //				$tpl->setDescription($this->object->getTitle());
             $ret = $this->ctrl->forwardCommand($wpage_gui);
             if ($ret != "") {
                 $tpl->setContent($ret);
             }
             break;
         case 'ilpublicuserprofilegui':
             require_once './Services/User/classes/class.ilPublicUserProfileGUI.php';
             $profile_gui = new ilPublicUserProfileGUI($_GET["user"]);
             $ret = $this->ctrl->forwardCommand($profile_gui);
             $tpl->setContent($ret);
             break;
         case "ilobjstylesheetgui":
             include_once "./Services/Style/classes/class.ilObjStyleSheetGUI.php";
             $this->ctrl->setReturn($this, "editStyleProperties");
             $style_gui = new ilObjStyleSheetGUI("", $this->object->getStyleSheetId(), false, false);
             $style_gui->omitLocator();
             if ($cmd == "create" || $_GET["new_type"] == "sty") {
                 $style_gui->setCreationMode(true);
             }
             if ($cmd == "confirmedDelete") {
                 $this->object->setStyleSheetId(0);
                 $this->object->update();
             }
             $ret = $this->ctrl->forwardCommand($style_gui);
             if ($cmd == "save" || $cmd == "copyStyle" || $cmd == "importStyle") {
                 $style_id = $ret;
                 $this->object->setStyleSheetId($style_id);
                 $this->object->update();
                 $this->ctrl->redirectByClass("ilobjstylesheetgui", "edit");
             }
             break;
         case "ilexportgui":
             //				$this->prepareOutput();
             $this->addHeaderAction();
             $ilTabs->activateTab("export");
             include_once "./Services/Export/classes/class.ilExportGUI.php";
             $exp_gui = new ilExportGUI($this);
             $exp_gui->addFormat("xml");
             $exp_gui->addFormat("html", "", $this, "exportHTML");
             $ret = $this->ctrl->forwardCommand($exp_gui);
             //				$this->tpl->show();
             break;
         case "ilcommonactiondispatchergui":
             include_once "Services/Object/classes/class.ilCommonActionDispatcherGUI.php";
             $gui = ilCommonActionDispatcherGUI::getInstanceFromAjaxCall();
             $this->ctrl->forwardCommand($gui);
             break;
         case "ilratinggui":
             // for rating category editing
             $this->checkPermission("write");
             $this->addHeaderAction();
             $ilTabs->activateTab("settings");
             $this->setSettingsSubTabs("rating_categories");
             include_once "Services/Rating/classes/class.ilRatingGUI.php";
             $gui = new ilRatingGUI();
             $gui->setObject($this->object->getId(), $this->object->getType());
             $gui->setExportCallback(array($this, "getSubObjectTitle"), $this->lng->txt("page"));
             $this->ctrl->forwardCommand($gui);
             break;
         case "ilwikistatgui":
             $this->checkPermission("statistics_read");
             $this->addHeaderAction();
             $ilTabs->activateTab("statistics");
             include_once "Modules/Wiki/classes/class.ilWikiStatGUI.php";
             $gui = new ilWikiStatGUI($this->object->getId());
             $this->ctrl->forwardCommand($gui);
             break;
         case "ilwikipagetemplategui":
             $this->addHeaderAction();
             $ilTabs->activateTab("settings");
             $this->setSettingsSubTabs("page_templates");
             include_once "./Modules/Wiki/classes/class.ilWikiPageTemplateGUI.php";
             $wptgui = new ilWikiPageTemplateGUI($this);
             $this->ctrl->forwardCommand($wptgui);
             break;
         default:
             $this->addHeaderAction();
             if (!$cmd) {
                 $cmd = "infoScreen";
             }
             $cmd .= "Object";
             if ($cmd != "infoScreenObject") {
                 $this->checkPermission("read");
             } else {
                 $this->checkPermission("visible");
             }
             $this->{$cmd}();
             break;
     }
     return $ret;
 }