/** * ilSurveyExecutionGUI constructor * * The constructor takes possible arguments an creates an instance of the ilSurveyExecutionGUI object. * * @param object $a_object Associated ilObjSurvey class * @access public */ function ilSurveyExecutionGUI($a_object) { global $lng, $tpl, $ilCtrl, $ilias, $tree; $this->lng =& $lng; $this->tpl =& $tpl; $this->ctrl =& $ilCtrl; $this->ilias =& $ilias; $this->object =& $a_object; $this->tree =& $tree; $this->external_rater_360 = false; if ($this->object->get360Mode() && $_SESSION["anonymous_id"][$this->object->getId()] && ilObjSurvey::validateExternalRaterCode($this->object->getRefId(), $_SESSION["anonymous_id"][$this->object->getId()])) { $this->external_rater_360 = true; } // stay in preview mode $this->preview = (bool) $_REQUEST["prvw"]; $this->ctrl->saveParameter($this, "prvw"); $this->ctrl->saveParameter($this, "pgov"); }
/** * check whether goto script will succeed */ function _checkGoto($a_target) { global $ilAccess; $t_arr = explode("_", $a_target); if ($t_arr[0] != "svy" || (int) $t_arr[1] <= 0) { return false; } // 360° external raters if ($_GET["accesscode"]) { include_once "Modules/Survey/classes/class.ilObjSurvey.php"; if (ilObjSurvey::validateExternalRaterCode($t_arr[1], $_GET["accesscode"])) { return true; } } if ($ilAccess->checkAccess("read", "", $t_arr[1])) { return true; } return false; }
public function executeCommand() { global $ilAccess, $ilNavigationHistory, $ilErr, $ilTabs; $this->external_rater_360 = false; if (!$this->creation_mode && $this->object->get360Mode() && $_SESSION["anonymous_id"][$this->object->getId()] && ilObjSurvey::validateExternalRaterCode($this->object->getRefId(), $_SESSION["anonymous_id"][$this->object->getId()])) { $this->external_rater_360 = true; } if (!$this->external_rater_360) { if (!$ilAccess->checkAccess("read", "", $this->ref_id) && !$ilAccess->checkAccess("visible", "", $this->ref_id)) { $ilErr->raiseError($this->lng->txt("permission_denied"), $ilErr->MESSAGE); } // add entry to navigation history if (!$this->getCreationMode() && $ilAccess->checkAccess("read", "", $this->ref_id)) { $this->ctrl->setParameterByClass("ilobjsurveygui", "ref_id", $this->ref_id); $link = $this->ctrl->getLinkTargetByClass("ilobjsurveygui", ""); $ilNavigationHistory->addItem($this->ref_id, $link, "svy"); } } $cmd = $this->ctrl->getCmd("properties"); // workaround for bug #6288, needs better solution if ($cmd == "saveTags") { $this->ctrl->setCmdClass("ilinfoscreengui"); } // deep link from repository - "redirect" to page view if (!$this->ctrl->getCmdClass() && $cmd == "questionsrepo") { $_REQUEST["pgov"] = 1; $this->ctrl->setCmd("questions"); $this->ctrl->setCmdClass("ilsurveyeditorgui"); } $next_class = $this->ctrl->getNextClass($this); $this->ctrl->setReturn($this, "properties"); $this->tpl->addCss(ilUtil::getStyleSheetLocation("output", "survey.css", "Modules/Survey"), "screen"); $this->prepareOutput(); switch ($next_class) { case "ilinfoscreengui": if (!in_array($this->ctrl->getCmdClass(), array('ilpublicuserprofilegui', 'ilobjportfoliogui'))) { $this->addHeaderAction(); $this->infoScreen(); // forwards command } else { // #16891 $ilTabs->clearTargets(); include_once "./Services/InfoScreen/classes/class.ilInfoScreenGUI.php"; $info = new ilInfoScreenGUI($this); $this->ctrl->forwardCommand($info); } break; case 'ilmdeditorgui': $this->handleWriteAccess(); $ilTabs->activateTab("meta_data"); $this->addHeaderAction(); include_once 'Services/MetaData/classes/class.ilMDEditorGUI.php'; $md_gui =& new ilMDEditorGUI($this->object->getId(), 0, $this->object->getType()); $md_gui->addObserver($this->object, 'MDUpdateListener', 'General'); $this->ctrl->forwardCommand($md_gui); break; case "ilsurveyevaluationgui": $ilTabs->activateTab("svy_results"); $this->addHeaderAction(); include_once "./Modules/Survey/classes/class.ilSurveyEvaluationGUI.php"; $eval_gui = new ilSurveyEvaluationGUI($this->object); $this->ctrl->forwardCommand($eval_gui); break; case "ilsurveyexecutiongui": $ilTabs->clearTargets(); include_once "./Modules/Survey/classes/class.ilSurveyExecutionGUI.php"; $exec_gui = new ilSurveyExecutionGUI($this->object); $this->ctrl->forwardCommand($exec_gui); break; case 'ilpermissiongui': $ilTabs->activateTab("perm_settings"); $this->addHeaderAction(); include_once "Services/AccessControl/classes/class.ilPermissionGUI.php"; $perm_gui =& new ilPermissionGUI($this); $this->ctrl->forwardCommand($perm_gui); break; case 'ilobjectcopygui': include_once './Services/Object/classes/class.ilObjectCopyGUI.php'; $cp = new ilObjectCopyGUI($this); $cp->setType('svy'); $this->ctrl->forwardCommand($cp); break; case "ilcommonactiondispatchergui": include_once "Services/Object/classes/class.ilCommonActionDispatcherGUI.php"; $gui = ilCommonActionDispatcherGUI::getInstanceFromAjaxCall(); $this->ctrl->forwardCommand($gui); break; // 360, skill service // 360, skill service case 'ilsurveyskillgui': $ilTabs->activateTab("survey_competences"); include_once "./Modules/Survey/classes/class.ilSurveySkillGUI.php"; $gui = new ilSurveySkillGUI($this->object); $this->ctrl->forwardCommand($gui); break; case 'ilsurveyskilldeterminationgui': $ilTabs->activateTab("maintenance"); include_once "./Modules/Survey/classes/class.ilSurveySkillDeterminationGUI.php"; $gui = new ilSurveySkillDeterminationGUI($this->object); $this->ctrl->forwardCommand($gui); break; case 'ilsurveyeditorgui': $this->handleWriteAccess(); $ilTabs->activateTab("survey_questions"); include_once "./Modules/Survey/classes/class.ilSurveyEditorGUI.php"; $gui = new ilSurveyEditorGUI($this); $this->ctrl->forwardCommand($gui); break; case 'ilsurveyconstraintsgui': $this->handleWriteAccess(); $ilTabs->activateTab("constraints"); include_once "./Modules/Survey/classes/class.ilSurveyConstraintsGUI.php"; $gui = new ilSurveyConstraintsGUI($this); $this->ctrl->forwardCommand($gui); break; case 'ilsurveyparticipantsgui': if (!$this->object->get360Mode()) { $ilTabs->activateTab("maintenance"); } else { $ilTabs->activateTab("survey_360_appraisees"); } include_once "./Modules/Survey/classes/class.ilSurveyParticipantsGUI.php"; $gui = new ilSurveyParticipantsGUI($this); $this->ctrl->forwardCommand($gui); break; default: $this->addHeaderAction(); $cmd .= "Object"; $this->{$cmd}(); break; } if (strtolower($_GET["baseClass"]) != "iladministrationgui" && $this->getCreationMode() != true) { $this->tpl->show(); } }