4include_once
"./Services/Object/classes/class.ilObjectGUI.php";
55 $this->lng =
$DIC->language();
56 $this->nav_history =
$DIC[
"ilNavigationHistory"];
57 $this->tabs =
$DIC->tabs();
58 $this->
user = $DIC->user();
59 $this->help =
$DIC[
"ilHelp"];
60 $this->rbacsystem =
$DIC->rbac()->system();
61 $this->tree =
$DIC->repositoryTree();
62 $this->tpl =
$DIC[
"tpl"];
63 $this->toolbar =
$DIC->toolbar();
64 $this->access =
$DIC->access();
65 $this->locator =
$DIC[
"ilLocator"];
70 $lng->loadLanguageModule(
"survey");
71 $lng->loadLanguageModule(
"svy");
73 $this->ctrl->saveParameter($this,
"ref_id");
77 parent::__construct(
"", (
int)
$_GET[
"ref_id"],
true,
false);
85 $this->external_rater_360 =
false;
86 if (!$this->creation_mode &&
87 $this->object->get360Mode() &&
88 $_SESSION[
"anonymous_id"][$this->object->getId()] &&
90 $this->object->getRefId(),
91 $_SESSION[
"anonymous_id"][$this->object->getId()]
93 $this->external_rater_360 =
true;
96 if (!$this->external_rater_360) {
105 $this->ctrl->setParameterByClass(
"ilobjsurveygui",
"ref_id", $this->ref_id);
106 $link = $this->ctrl->getLinkTargetByClass(
"ilobjsurveygui",
"");
107 $ilNavigationHistory->addItem($this->ref_id, $link,
"svy");
111 $cmd = $this->ctrl->getCmd(
"properties");
114 if ($cmd ==
"saveTags") {
115 $this->ctrl->setCmdClass(
"ilinfoscreengui");
119 if (!$this->ctrl->getCmdClass() && $cmd ==
"questionsrepo") {
120 $_REQUEST[
"pgov"] = 1;
121 $this->ctrl->setCmd(
"questions");
122 $this->ctrl->setCmdClass(
"ilsurveyeditorgui");
125 $next_class = $this->ctrl->getNextClass($this);
126 $this->ctrl->setReturn($this,
"properties");
130 $this->log->debug(
"next_class= $next_class");
131 switch ($next_class) {
132 case 'illtiproviderobjectsettinggui':
134 $ilTabs->activateTab(
"settings");
135 $ilTabs->activateSubTab(
'lti_provider');
137 $lti_gui->setCustomRolesForSelection(
$GLOBALS[
'DIC']->rbac()->review()->getLocalRoles($this->object->getRefId()));
138 $lti_gui->offerLTIRolesForSelection(
false);
139 $this->ctrl->forwardCommand($lti_gui);
143 case "ilinfoscreengui":
145 $this->ctrl->getCmdClass(),
146 array(
'ilpublicuserprofilegui',
'ilobjportfoliogui')
152 $ilTabs->clearTargets();
153 include_once(
"./Services/InfoScreen/classes/class.ilInfoScreenGUI.php");
155 $this->ctrl->forwardCommand(
$info);
159 case 'ilobjectmetadatagui':
161 $ilTabs->activateTab(
"meta_data");
163 include_once
'Services/Object/classes/class.ilObjectMetaDataGUI.php';
165 $this->ctrl->forwardCommand($md_gui);
168 case "ilsurveyevaluationgui":
169 $ilTabs->activateTab(
"svy_results");
171 include_once(
"./Modules/Survey/classes/class.ilSurveyEvaluationGUI.php");
173 $this->ctrl->forwardCommand($eval_gui);
176 case "ilsurveyexecutiongui":
177 $ilTabs->clearTargets();
178 include_once(
"./Modules/Survey/classes/class.ilSurveyExecutionGUI.php");
180 $this->ctrl->forwardCommand($exec_gui);
183 case 'ilpermissiongui':
184 $ilTabs->activateTab(
"perm_settings");
186 include_once(
"Services/AccessControl/classes/class.ilPermissionGUI.php");
188 $this->ctrl->forwardCommand($perm_gui);
191 case 'ilobjectcopygui':
192 include_once
'./Services/Object/classes/class.ilObjectCopyGUI.php';
195 $this->ctrl->forwardCommand($cp);
198 case "ilcommonactiondispatchergui":
199 include_once(
"Services/Object/classes/class.ilCommonActionDispatcherGUI.php");
201 $this->ctrl->forwardCommand($gui);
205 case 'ilsurveyskillgui':
206 $ilTabs->activateTab(
"survey_competences");
207 include_once(
"./Modules/Survey/classes/class.ilSurveySkillGUI.php");
209 $this->ctrl->forwardCommand($gui);
212 case 'ilsurveyskilldeterminationgui':
213 $ilTabs->activateTab(
"maintenance");
214 include_once(
"./Modules/Survey/classes/class.ilSurveySkillDeterminationGUI.php");
216 $this->ctrl->forwardCommand($gui);
219 case 'ilsurveyeditorgui':
221 $ilTabs->activateTab(
"survey_questions");
222 include_once(
"./Modules/Survey/classes/class.ilSurveyEditorGUI.php");
224 $this->ctrl->forwardCommand($gui);
227 case 'ilsurveyconstraintsgui':
229 $ilTabs->activateTab(
"constraints");
230 include_once(
"./Modules/Survey/classes/class.ilSurveyConstraintsGUI.php");
232 $this->ctrl->forwardCommand($gui);
235 case 'ilsurveyparticipantsgui':
237 $ilTabs->activateTab(
"maintenance");
239 $ilTabs->activateTab(
"survey_360_appraisees");
241 include_once(
"./Modules/Survey/classes/class.ilSurveyParticipantsGUI.php");
244 $this->ctrl->forwardCommand($gui);
247 case "illearningprogressgui":
248 $ilTabs->activateTab(
"learning_progress");
249 include_once(
"./Services/Tracking/classes/class.ilLearningProgressGUI.php");
252 $this->object->getRefId()
254 $this->ctrl->forwardCommand($new_gui);
258 $ilTabs->activateTab(
"export");
259 include_once(
"./Services/Export/classes/class.ilExportGUI.php");
261 $exp_gui->addFormat(
"xml");
262 $this->ctrl->forwardCommand($exp_gui);
269 $this->log->debug(
"Default cmd= $cmd");
275 if (strtolower(
$_GET[
"baseClass"]) !=
"iladministrationgui" &&
290 include_once(
"./Modules/Survey/classes/class.ilSurveyEvaluationGUI.php");
292 $this->ctrl->setCmdClass(get_class($eval_gui));
293 $this->ctrl->redirect($eval_gui,
"evaluation");
298 include_once
"Services/Administration/classes/class.ilSettingsTemplate.php";
301 foreach ($templates as $item) {
302 $a_options[
"svytpl_" . $item[
"id"]] = array($item[
"title"],
303 nl2br(trim($item[
"description"])));
308 $a_options[
"svy360_1"] = array($this->lng->txt(
"survey_360_mode"),
309 $this->lng->txt(
"survey_360_mode_info"));
312 $a_options[
"svyselfeval_1"] = array($this->lng->txt(
"svy_self_ev_mode"),
313 $this->lng->txt(
"svy_self_ev_info"));
323 $a_new_object->loadFromDb();
327 $a_new_object->applySettingsTemplate(
$tpl);
337 $svy_mode = $a_new_object->getMode();
345 $a_new_object->saveToDB();
348 ilUtil::sendSuccess($this->lng->txt(
"object_added"),
true);
350 $a_new_object->
getRefId() .
"&cmd=properties");
367 $ilHelp->setScreenIdComponent(
"svy");
369 $hidden_tabs = array();
370 $template = $this->
object->getTemplate();
372 include_once
"Services/Administration/classes/class.ilSettingsTemplate.php";
374 $hidden_tabs =
$template->getHiddenTabs();
378 $this->tabs_gui->addTab(
380 $this->lng->txt(
"survey_questions"),
381 $this->ctrl->getLinkTargetByClass(array(
"ilsurveyeditorgui",
"ilsurveypagegui"),
"renderPage")
386 $this->tabs_gui->addTab(
388 $this->lng->txt(
"info_short"),
389 $this->ctrl->getLinkTarget($this,
'infoScreen')
395 $this->tabs_gui->addTab(
397 $this->lng->txt(
"settings"),
398 $this->ctrl->getLinkTarget($this,
'properties')
401 if ($this->object->get360Mode() &&
402 $this->object->get360SelfRaters() &&
403 $this->object->isAppraisee(
$ilUser->getId()) &&
404 !$this->object->isAppraiseeClosed(
$ilUser->getId())) {
405 $this->tabs_gui->addTab(
406 "survey_360_edit_raters",
407 $this->lng->txt(
"survey_360_edit_raters"),
408 $this->ctrl->getLinkTargetByClass(
'ilsurveyparticipantsgui',
'editRaters')
417 !in_array(
"constraints", $hidden_tabs) &&
420 $this->tabs_gui->addTab(
422 $this->lng->txt(
"constraints"),
423 $this->ctrl->getLinkTargetByClass(
"ilsurveyconstraintsgui",
"constraints")
428 switch ($this->object->getMode()) {
431 include_once(
"./Services/Skill/classes/class.ilSkillManagementSettings.php");
433 if ($this->object->getSkillService() && $skmg_set->isActivated()) {
434 $this->tabs_gui->addTab(
435 "survey_competences",
436 $this->lng->txt(
"survey_competences"),
437 $this->ctrl->getLinkTargetByClass(
"ilsurveyskillgui",
"listQuestionAssignment")
440 $this->tabs_gui->addTab(
441 "survey_360_appraisees",
442 $this->lng->txt(
"survey_360_appraisees"),
443 $this->ctrl->getLinkTargetByClass(
'ilsurveyparticipantsgui',
'listAppraisees')
448 include_once(
"./Services/Skill/classes/class.ilSkillManagementSettings.php");
450 if ($this->object->getSkillService() && $skmg_set->isActivated()) {
451 $this->tabs_gui->addTab(
452 "survey_competences",
453 $this->lng->txt(
"survey_competences"),
454 $this->ctrl->getLinkTargetByClass(
"ilsurveyskillgui",
"listQuestionAssignment")
457 $this->tabs_gui->addTab(
459 $this->lng->txt(
"maintenance"),
460 $this->ctrl->getLinkTargetByClass(
'ilsurveyparticipantsgui',
'maintenance')
466 $this->tabs_gui->addTab(
468 $this->lng->txt(
"maintenance"),
469 $this->ctrl->getLinkTargetByClass(
'ilsurveyparticipantsgui',
'maintenance')
475 include_once
"./Modules/Survey/classes/class.ilObjSurveyAccess.php";
480 $this->tabs_gui->addTab(
482 $this->lng->txt(
"svy_results"),
483 $this->ctrl->getLinkTargetByClass(
"ilsurveyevaluationgui",
"evaluation")
488 include_once
"./Services/Tracking/classes/class.ilLearningProgressAccess.php";
490 $this->tabs_gui->addTarget(
492 $this->ctrl->getLinkTargetByClass(array(
"ilobjsurveygui",
"illearningprogressgui"),
""),
494 array(
"illplistofobjectsgui",
"illplistofsettingsgui",
"illearningprogressgui",
"illplistofprogressgui")
499 if (!in_array(
"meta_data", $hidden_tabs)) {
501 include_once
"Services/Object/classes/class.ilObjectMetaDataGUI.php";
503 $mdtab = $mdgui->getTab();
505 $this->tabs_gui->addTab(
507 $this->lng->txt(
"meta_data"),
513 if (!in_array(
"export", $hidden_tabs)) {
515 $this->tabs_gui->addTab(
517 $this->lng->txt(
"export"),
518 $this->ctrl->getLinkTargetByClass(
"ilexportgui",
"")
525 $this->tabs_gui->addTab(
527 $this->lng->txt(
"perm_settings"),
528 $this->ctrl->getLinkTargetByClass(array(get_class($this),
'ilpermissiongui'),
"perm")
551 if (
$form->checkInput()) {
554 if (!$this->object->get360Mode()) {
555 if (
$form->getInput(
"tut")) {
558 $tut_logins =
$form->getInput(
"tut_ids");
559 foreach ($tut_logins as $tut_login) {
561 if ($tut_id &&
$rbacsystem->checkAccessOfUser($tut_id,
"write", $this->object->getRefId())) {
562 $tut_ids[] = $tut_id;
566 $tut_ids =
$form->getItemByPostVar(
"tut_ids");
567 $tut_ids->setAlert($this->lng->txt(
"survey_notification_tutor_recipients_invalid"));
574 if (
$form->getInput(
"rmd")) {
575 $rmd_start =
$form->getItemByPostVar(
"rmd_start")->getDate();
576 $rmd_end =
$form->getItemByPostVar(
"rmd_end")->getDate();
580 $rmd_start = $rmd_end;
584 $this->
object->setReminderStatus(
true);
585 $this->
object->setReminderStart($rmd_start);
586 $this->
object->setReminderEnd($rmd_end);
587 $this->
object->setReminderFrequency(
$form->getInput(
"rmd_freq"));
588 if (!$this->object->get360Mode()) {
589 $this->
object->setReminderTarget(
$form->getInput(
"rmd_grp"));
590 $this->
object->setReminderTemplate((
$form->getInput(
"rmdt") > 0)
591 ?
$form->getInput(
"rmdt")
594 if (
$form->getInput(
"remind_appraisees") &&
$form->getInput(
"remind_raters")) {
596 } elseif (
$form->getInput(
"remind_appraisees")) {
598 } elseif (
$form->getInput(
"remind_raters")) {
601 $this->
object->setReminderTarget(0);
605 $this->
object->setReminderStatus(
false);
608 if (!$this->object->get360Mode()) {
609 if (
$form->getInput(
"tut")) {
610 $this->
object->setTutorNotificationStatus(
true);
611 $this->
object->setTutorNotificationRecipients($tut_ids);
612 $this->
object->setTutorNotificationTarget(
$form->getInput(
"tut_grp"));
614 $this->
object->setTutorNotificationStatus(
false);
619 if (
$_POST[
'online'] && count($this->object->questions) == 0) {
624 $template_settings =
null;
625 $template = $this->
object->getTemplate();
627 include_once
"Services/Administration/classes/class.ilSettingsTemplate.php";
629 $template_settings =
$template->getSettings();
632 include_once
'Services/MetaData/classes/class.ilMD.php';
633 $md_obj =
new ilMD($this->object->getId(), 0,
"svy");
634 $md_section = $md_obj->getGeneral();
638 $md_section->update();
641 $md_desc_ids = $md_section->getDescriptionIds();
643 $md_desc = $md_section->getDescription(array_pop($md_desc_ids));
648 $this->
object->setViewOwnResults(
$_POST[
"view_own"]);
649 $this->
object->setMailOwnResults(
$_POST[
"mail_own"]);
650 $this->
object->setMailConfirmation(
$_POST[
"mail_confirm"]);
655 $this->
object->setOfflineStatus((
bool) !
$_POST[
'online']);
656 $this->
object->update();
659 $period =
$form->getItemByPostVar(
"access_period");
660 if ($period->getStart() && $period->getEnd()) {
661 $this->
object->setActivationLimited(
true);
662 $this->
object->setActivationVisibility(
$_POST[
"access_visiblity"]);
663 $this->
object->setActivationStartDate($period->getStart()->get(
IL_CAL_UNIX));
664 $this->
object->setActivationEndDate($period->getEnd()->get(
IL_CAL_UNIX));
666 $this->
object->setActivationLimited(
false);
670 $obj_service->commonSettings()->legacyForm(
$form, $this->
object)->saveTileImage();
673 if (!$template_settings[
"enabled_start_date"][
"hide"]) {
677 $this->
object->setStartDateAndTime($datetime[0], $datetime[1]);
679 $this->
object->setStartDate(
null);
683 if (!$template_settings[
"enabled_end_date"][
"hide"]) {
684 $end =
$form->getItemByPostVar(
"end_date");
685 if (
$end->getDate()) {
687 $this->
object->setEndDateAndTime($datetime[0], $datetime[1]);
689 $this->
object->setEndDate(
null);
694 include_once
"./Services/AdvancedEditing/classes/class.ilObjAdvancedEditing.php";
695 $introduction =
$_POST[
"introduction"];
696 $this->
object->setIntroduction($introduction);
698 $this->
object->setOutro($outro);
700 if (!$template_settings[
"show_question_titles"][
"hide"]) {
701 $this->
object->setShowQuestionTitles(
$_POST[
"show_question_titles"]);
704 if (!$template_settings[
"use_pool"][
"hide"]) {
705 $this->
object->setPoolUsage(
$_POST[
"use_pool"]);
708 $this->
object->setMailNotification(
$_POST[
'mailnotification']);
709 $this->
object->setMailAddresses(
$_POST[
'mailaddresses']);
710 $this->
object->setMailParticipantData(
$_POST[
'mailparticipantdata']);
712 switch ($this->object->getMode()) {
714 $this->
object->set360SelfEvaluation((
bool)
$_POST[
"self_eval"]);
715 $this->
object->set360SelfAppraisee((
bool) $_POST[
"self_appr"]);
716 $this->
object->set360SelfRaters((
bool) $_POST[
"self_rate"]);
717 $this->
object->set360Results((
int) $_POST[
"ts_res"]);;
718 $this->
object->setSkillService((
int) $_POST[
"skill_service"]);
721 $this->
object->setSelfEvaluationResults($_POST[
"self_eval_res"]);
722 $this->
object->setSkillService((
int) $_POST[
"skill_service"]);
725 if (!$template_settings[
"evaluation_access"][
"hide"]) {
726 $this->
object->setEvaluationAccess($_POST[
"evaluation_access"]);
731 $hide_codes = $template_settings[
"acc_codes"][
"hide"];
732 $hide_anon = $template_settings[
"anonymization_options"][
"hide"];
733 if (!$hide_codes || !$hide_anon) {
734 $current = $this->
object->getAnonymize();
738 $codes = (bool)
$_POST[
"acc_codes"];
744 $anon = ((string)
$_POST[
"anonymization_options"] ==
"statanon");
764 $this->
object->setAnonymousUserList($_POST[
"anon_list"]);
768 unset(
$_SESSION[
"anonymous_id"][$this->object->getId()]);
774 $this->
object->saveToDb();
777 $this->object->getId(),
784 if (strcmp(
$_SESSION[
"info"],
"") != 0) {
785 ilUtil::sendSuccess(
$_SESSION[
"info"] .
"<br />" . $this->lng->txt(
"settings_saved"),
true);
787 ilUtil::sendSuccess($this->lng->txt(
"settings_saved"),
true);
789 $this->ctrl->redirect($this,
"properties");
796 $form->setValuesByPost();
809 $template_settings = $hide_rte_switch =
null;
810 $template = $this->
object->getTemplate();
812 include_once
"Services/Administration/classes/class.ilSettingsTemplate.php";
815 $template_settings =
$template->getSettings();
816 $hide_rte_switch = $template_settings[
"rte_switch"][
"hide"];
819 include_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
821 $form->setFormAction($this->ctrl->getFormAction($this));
822 $form->setTableWidth(
"100%");
823 $form->setId(
"survey_properties");
827 $header->setTitle($this->lng->txt(
"settings"));
833 include_once
'Services/MetaData/classes/class.ilMD.php';
834 $md_obj =
new ilMD($this->object->getId(), 0,
"svy");
835 $md_section = $md_obj->getGeneral();
838 $title->setRequired(
true);
839 $title->setValue($md_section->getTitle());
842 $ids = $md_section->getDescriptionIds();
844 $desc_obj = $md_section->getDescription(array_pop($ids));
849 $desc->setValue($desc_obj->getDescription());
850 $form->addItem($desc);
854 $pool_usage =
new ilRadioGroupInputGUI($this->lng->txt(
"survey_question_pool_usage"),
"use_pool");
855 $opt =
new ilRadioOption($this->lng->txt(
"survey_question_pool_usage_active"), 1);
856 $opt->setInfo($this->lng->txt(
"survey_question_pool_usage_active_info"));
857 $pool_usage->addOption($opt);
858 $opt =
new ilRadioOption($this->lng->txt(
"survey_question_pool_usage_inactive"), 0);
859 $opt->setInfo($this->lng->txt(
"survey_question_pool_usage_inactive_info"));
860 $pool_usage->addOption($opt);
861 $pool_usage->setValue($this->object->getPoolUsage());
862 $form->addItem($pool_usage);
865 if ($this->object->get360Mode()) {
866 $self_eval =
new ilCheckboxInputGUI($this->lng->txt(
"survey_360_self_evaluation"),
"self_eval");
867 $self_eval->setInfo($this->lng->txt(
"survey_360_self_evaluation_info"));
868 $self_eval->setChecked($this->object->get360SelfEvaluation());
869 $form->addItem($self_eval);
871 $self_rate =
new ilCheckboxInputGUI($this->lng->txt(
"survey_360_self_raters"),
"self_rate");
872 $self_rate->setInfo($this->lng->txt(
"survey_360_self_raters_info"));
873 $self_rate->setChecked($this->object->get360SelfRaters());
874 $form->addItem($self_rate);
876 $self_appr =
new ilCheckboxInputGUI($this->lng->txt(
"survey_360_self_appraisee"),
"self_appr");
877 $self_appr->setInfo($this->lng->txt(
"survey_360_self_appraisee_info"));
878 $self_appr->setChecked($this->object->get360SelfAppraisee());
879 $form->addItem($self_appr);
885 include_once
"Services/Object/classes/class.ilObjectActivation.php";
886 $this->lng->loadLanguageModule(
'rep');
889 $section->setTitle($this->lng->txt(
'rep_activation_availability'));
893 $act_obj_info = $act_ref_info =
"";
895 $act_obj_info =
' ' . $this->lng->txt(
'rep_activation_online_object_info');
896 $act_ref_info = $this->lng->txt(
'rep_activation_access_ref_info');
900 $online->setInfo($this->lng->txt(
'svy_activation_online_info') . $act_obj_info);
901 $online->setChecked(!$this->object->getOfflineStatus());
902 $form->addItem($online);
904 include_once
"Services/Form/classes/class.ilDateDurationInputGUI.php";
906 $dur->setShowTime(
true);
907 $date = $this->
object->getActivationStartDate();
911 $date = $this->
object->getActivationEndDate();
915 $form->addItem($dur);
917 $visible =
new ilCheckboxInputGUI($this->lng->txt(
'rep_activation_limited_visibility'),
'access_visiblity');
918 $visible->setInfo($this->lng->txt(
'svy_activation_limited_visibility_info'));
919 $visible->setChecked($this->object->getActivationVisibility());
920 $dur->addSubItem($visible);
924 $section->setTitle($this->lng->txt(
'obj_presentation'));
928 $obj_service->commonSettings()->legacyForm(
$form, $this->
object)->addTileImage();
933 $section->setTitle($this->lng->txt(
'svy_settings_section_before_start'));
938 $intro->setValue($this->object->prepareTextareaOutput($this->object->getIntroduction()));
941 $intro->setUseRte(
true);
942 $intro->setInfo($this->lng->txt(
"survey_introduction_info"));
943 include_once
"./Services/AdvancedEditing/classes/class.ilObjAdvancedEditing.php";
945 $intro->addPlugin(
"latex");
946 $intro->addButton(
"latex");
947 $intro->addButton(
"pastelatex");
948 $intro->setRTESupport($this->object->getId(),
"svy",
"survey",
null, $hide_rte_switch);
949 $form->addItem($intro);
955 $section->setTitle($this->lng->txt(
'svy_settings_section_access'));
959 $start = $this->
object->getStartDate();
962 $startingtime->setShowTime(
true);
966 $form->addItem($startingtime);
969 $end = $this->
object->getEndDate();
972 $endingtime->setShowTime(
true);
976 $form->addItem($endingtime);
979 if (!$this->object->get360Mode()) {
981 $codes->setInfo($this->lng->txt(
"survey_access_codes_info"));
982 $codes->setChecked(!$this->object->isAccessibleWithoutCode());
983 $form->addItem($codes);
986 $codes->setDisabled(
true);
994 $section->setTitle($this->lng->txt(
'svy_settings_section_question_behaviour'));
998 $show_question_titles =
new ilCheckboxInputGUI($this->lng->txt(
"svy_show_questiontitles"),
"show_question_titles");
999 $show_question_titles->setValue(1);
1000 $show_question_titles->setChecked($this->object->getShowQuestionTitles());
1001 $form->addItem($show_question_titles);
1007 $info->setTitle($this->lng->txt(
"svy_settings_section_finishing"));
1010 $view_own =
new ilCheckboxInputGUI($this->lng->txt(
"svy_results_view_own"),
"view_own");
1011 $view_own->setInfo($this->lng->txt(
"svy_results_view_own_info"));
1012 $view_own->setChecked($this->object->hasViewOwnResults());
1013 $form->addItem($view_own);
1015 $mail_confirm =
new ilCheckboxInputGUI($this->lng->txt(
"svy_results_mail_confirm"),
"mail_confirm");
1016 $mail_confirm->setInfo($this->lng->txt(
"svy_results_mail_confirm_info"));
1017 $mail_confirm->setChecked($this->object->hasMailConfirmation());
1018 $form->addItem($mail_confirm);
1020 $mail_own =
new ilCheckboxInputGUI($this->lng->txt(
"svy_results_mail_own"),
"mail_own");
1021 $mail_own->setInfo($this->lng->txt(
"svy_results_mail_own_info"));
1022 $mail_own->setChecked($this->object->hasMailOwnResults());
1023 $mail_confirm->addSubItem($mail_own);
1027 $finalstatement->setValue($this->object->prepareTextareaOutput($this->object->getOutro()));
1028 $finalstatement->setRows(10);
1029 $finalstatement->setCols(80);
1030 $finalstatement->setUseRte(
true);
1032 $finalstatement->addPlugin(
"latex");
1033 $finalstatement->addButton(
"latex");
1034 $finalstatement->addButton(
"pastelatex");
1035 $finalstatement->setRTESupport($this->object->getId(),
"svy",
"survey",
null, $hide_rte_switch);
1036 $form->addItem($finalstatement);
1039 $mailnotification =
new ilCheckboxInputGUI($this->lng->txt(
"mailnotification"),
"mailnotification");
1041 $mailnotification->setInfo($this->lng->txt(
"svy_result_mail_notification_info"));
1042 $mailnotification->setValue(1);
1043 $mailnotification->setChecked($this->object->getMailNotification());
1046 $mailaddresses =
new ilTextInputGUI($this->lng->txt(
"mailaddresses"),
"mailaddresses");
1047 $mailaddresses->setValue($this->object->getMailAddresses());
1048 $mailaddresses->setSize(80);
1049 $mailaddresses->setInfo($this->lng->txt(
'mailaddresses_info'));
1050 $mailaddresses->setRequired(
true);
1053 $participantdata =
new ilTextAreaInputGUI($this->lng->txt(
"mailparticipantdata"),
"mailparticipantdata");
1054 $participantdata->setValue($this->object->getMailParticipantData());
1055 $participantdata->setRows(6);
1056 $participantdata->setCols(80);
1057 $participantdata->setUseRte(
false);
1058 $participantdata->setInfo($this->lng->txt(
"mailparticipantdata_info"));
1061 $placeholders = array(
1062 "FIRST_NAME" =>
"firstname",
1063 "LAST_NAME" =>
"lastname",
1067 foreach ($placeholders as $placeholder => $caption) {
1068 $txt[] =
"[" . strtoupper($placeholder) .
"]: " . $this->lng->txt($caption);
1071 $participantdatainfo =
new ilNonEditableValueGUI($this->lng->txt(
"mailparticipantdata_placeholder"),
"",
true);
1072 $participantdatainfo->setValue(
$txt);
1074 $mailnotification->addSubItem($mailaddresses);
1075 $mailnotification->addSubItem($participantdata);
1076 $mailnotification->addSubItem($participantdatainfo);
1077 $form->addItem($mailnotification);
1080 if (!$this->object->get360Mode()) {
1083 $has_parent =
$tree->checkForParentType($this->object->getRefId(),
"grp");
1085 $has_parent =
$tree->checkForParentType($this->object->getRefId(),
"crs");
1087 $num_inv =
sizeof($this->
object->getInvitedUsers());
1090 $tut =
new ilCheckboxInputGUI($this->lng->txt(
"survey_notification_tutor_setting"),
"tut");
1091 $tut->setChecked($this->object->getTutorNotificationStatus());
1092 $form->addItem($tut);
1094 $tut_logins = array();
1095 $tuts = $this->
object->getTutorNotificationRecipients();
1097 foreach ($tuts as $tut_id) {
1099 if ($tmp[
"login"]) {
1100 $tut_logins[] = $tmp[
"login"];
1104 $tut_ids =
new ilTextInputGUI($this->lng->txt(
"survey_notification_tutor_recipients"),
"tut_ids");
1105 $tut_ids->setDataSource($this->ctrl->getLinkTarget($this,
"doAutoComplete",
"",
true));
1106 $tut_ids->setRequired(
true);
1107 $tut_ids->setMulti(
true);
1108 $tut_ids->setMultiValues($tut_logins);
1109 $tut_ids->setValue(array_shift($tut_logins));
1110 $tut->addSubItem($tut_ids);
1112 $tut_grp =
new ilRadioGroupInputGUI($this->lng->txt(
"survey_notification_target_group"),
"tut_grp");
1113 $tut_grp->setRequired(
true);
1114 $tut_grp->setValue($this->object->getTutorNotificationTarget());
1115 $tut->addSubItem($tut_grp);
1118 $this->lng->txt(
"survey_notification_target_group_parent_course"),
1122 $tut_grp_crs->setInfo($this->lng->txt(
"survey_notification_target_group_parent_course_inactive"));
1124 $tut_grp_crs->setInfo(sprintf(
1125 $this->lng->txt(
"survey_notification_target_group_invited_info"),
1126 count($this->object->getNotificationTargetUserIds(
false))
1129 $tut_grp->addOption($tut_grp_crs);
1132 $this->lng->txt(
"survey_notification_target_group_invited"),
1135 $tut_grp_inv->setInfo(sprintf($this->lng->txt(
"survey_notification_target_group_invited_info"), $num_inv));
1136 $tut_grp->addOption($tut_grp_inv);
1143 $info->setTitle($this->lng->txt(
"svy_settings_section_reminders"));
1147 $rmd->setChecked($this->object->getReminderStatus());
1148 $form->addItem($rmd);
1150 $rmd_start =
new ilDateTimeInputGUI($this->lng->txt(
"survey_reminder_start"),
"rmd_start");
1151 $rmd_start->setRequired(
true);
1152 $start = $this->
object->getReminderStart();
1154 $rmd_start->setDate(
$start);
1156 $rmd->addSubItem($rmd_start);
1158 $end = $this->
object->getReminderEnd();
1159 $rmd_end =
new ilDateTimeInputGUI($this->lng->txt(
"survey_reminder_end"),
"rmd_end");
1161 $rmd_end->setDate(
$end);
1163 $rmd->addSubItem($rmd_end);
1165 $rmd_freq =
new ilNumberInputGUI($this->lng->txt(
"survey_reminder_frequency"),
"rmd_freq");
1166 $rmd_freq->setRequired(
true);
1167 $rmd_freq->setSize(3);
1168 $rmd_freq->setSuffix($this->lng->txt(
"survey_reminder_frequency_days"));
1169 $rmd_freq->setValue($this->object->getReminderFrequency());
1170 $rmd_freq->setMinValue(1);
1171 $rmd->addSubItem($rmd_freq);
1174 if (!$this->object->get360Mode()) {
1175 $rmd_grp =
new ilRadioGroupInputGUI($this->lng->txt(
"survey_notification_target_group"),
"rmd_grp");
1176 $rmd_grp->setRequired(
true);
1177 $rmd_grp->setValue($this->object->getReminderTarget());
1178 $rmd->addSubItem($rmd_grp);
1181 $this->lng->txt(
"survey_notification_target_group_parent_course"),
1185 $rmd_grp_crs->setInfo($this->lng->txt(
"survey_notification_target_group_parent_course_inactive"));
1187 $rmd_grp_crs->setInfo(sprintf(
1188 $this->lng->txt(
"survey_notification_target_group_invited_info"),
1189 count($this->object->getNotificationTargetUserIds(
false))
1192 $rmd_grp->addOption($rmd_grp_crs);
1195 $this->lng->txt(
"survey_notification_target_group_invited"),
1198 $rmd_grp_inv->setInfo(sprintf($this->lng->txt(
"survey_notification_target_group_invited_info"), $num_inv));
1199 $rmd_grp->addOption($rmd_grp_inv);
1201 $mtmpl = $this->
object->getReminderMailTemplates();
1204 $rmdt->setRequired(
true);
1205 $rmdt->addOption(
new ilRadioOption($this->lng->txt(
"svy_reminder_mail_template_none"), -1));
1206 foreach ($mtmpl as $mtmpl_id => $mtmpl_caption) {
1208 $rmdt->addOption($option);
1211 $reminderTemplateValue = -1;
1212 if ($this->object->getReminderTemplate()) {
1213 $reminderTemplateValue = $this->
object->getReminderTemplate();
1215 $rmdt->setValue($reminderTemplateValue);
1216 $rmd->addSubItem($rmdt);
1220 $cb =
new ilCheckboxInputGUI($this->lng->txt(
"survey_notification_target_group"),
"remind_appraisees");
1221 $cb->setOptionTitle($this->lng->txt(
"survey_360_appraisees"));
1222 $cb->setInfo($this->lng->txt(
"survey_360_appraisees_remind_info"));
1224 $cb->setChecked(in_array(
1225 $this->object->getReminderTarget(),
1228 $rmd->addSubItem($cb);
1232 $cb->setOptionTitle($this->lng->txt(
"survey_360_raters"));
1233 $cb->setInfo($this->lng->txt(
"survey_360_raters_remind_info"));
1235 $cb->setChecked(in_array(
1236 $this->object->getReminderTarget(),
1239 $rmd->addSubItem($cb);
1246 $results->setTitle($this->lng->txt(
"results"));
1250 switch ($this->object->getMode()) {
1253 $ts_results->setValue($this->object->get360Results());
1256 $option->setInfo($this->lng->txt(
"survey_360_results_none_info"));
1257 $ts_results->addOption($option);
1260 $option->setInfo($this->lng->txt(
"survey_360_results_own_info"));
1261 $ts_results->addOption($option);
1264 $option->setInfo($this->lng->txt(
"survey_360_results_all_info"));
1265 $ts_results->addOption($option);
1267 $form->addItem($ts_results);
1272 $evaluation_access =
new ilRadioGroupInputGUI($this->lng->txt(
'evaluation_access'),
"self_eval_res");
1273 $evaluation_access->setValue($this->object->getSelfEvaluationResults());
1276 $evaluation_access->addOption($option);
1279 $evaluation_access->addOption($option);
1282 $evaluation_access->addOption($option);
1284 $form->addItem($evaluation_access);
1288 $evaluation_access =
new ilRadioGroupInputGUI($this->lng->txt(
'evaluation_access'),
"evaluation_access");
1291 $option->setInfo($this->lng->txt(
"svy_evaluation_access_off_info"));
1292 $evaluation_access->addOption($option);
1295 $option->setInfo($this->lng->txt(
"svy_evaluation_access_all_info"));
1296 $evaluation_access->addOption($option);
1299 $option->setInfo($this->lng->txt(
"svy_evaluation_access_participants_info"));
1300 $evaluation_access->addOption($option);
1302 $evaluation_access->setValue($this->object->getEvaluationAccess());
1303 $form->addItem($evaluation_access);
1305 $anonymization_options =
new ilRadioGroupInputGUI($this->lng->txt(
"survey_results_anonymization"),
"anonymization_options");
1307 $option =
new ilCheckboxOption($this->lng->txt(
"survey_results_personalized"),
"statpers");
1308 $option->setInfo($this->lng->txt(
"survey_results_personalized_info"));
1309 $anonymization_options->addOption($option);
1311 $option =
new ilCheckboxOption($this->lng->txt(
"survey_results_anonymized"),
"statanon");
1312 $option->setInfo($this->lng->txt(
"survey_results_anonymized_info"));
1313 $anonymization_options->addOption($option);
1314 $anonymization_options->setValue($this->object->hasAnonymizedResults()
1317 $form->addItem($anonymization_options);
1319 $surveySetting =
new ilSetting(
"survey");
1320 if ($surveySetting->get(
"anonymous_participants",
false)) {
1322 if ($surveySetting->get(
"anonymous_participants_min", 0)) {
1323 $min =
" (" . $this->lng->txt(
"svy_anonymous_participants_min") .
": " .
1324 $surveySetting->get(
"anonymous_participants_min") .
")";
1327 $anon_list =
new ilCheckboxInputGUI($this->lng->txt(
"svy_anonymous_participants_svy"),
"anon_list");
1328 $anon_list->setInfo($this->lng->txt(
"svy_anonymous_participants_svy_info") . $min);
1329 $anon_list->setChecked($this->object->hasAnonymousUserList());
1330 $option->addSubItem($anon_list);
1333 if ($this->object->_hasDatasets($this->object->getSurveyId())) {
1334 $anonymization_options->setDisabled(
true);
1336 $anon_list->setDisabled(
true);
1344 include_once(
"./Services/Skill/classes/class.ilSkillManagementSettings.php");
1346 $svy_mode = $this->
object->getMode();
1349 $other->setTitle($this->lng->txt(
"other"));
1350 $form->addItem($other);
1352 $skill_service =
new ilCheckboxInputGUI($this->lng->txt(
"survey_activate_skill_service"),
"skill_service");
1353 $skill_service->setInfo($this->lng->txt(
"survey_activate_skill_service_info"));
1354 $skill_service->setChecked($this->object->getSkillService());
1355 $form->addItem($skill_service);
1359 ->getObjectPositionSettingsByType($this->object->getType());
1361 if ($position_settings->isActive()) {
1364 $feat->setTitle($this->lng->txt(
'obj_features'));
1365 $form->addItem($feat);
1369 $this->object->getId(),
1377 $form->addCommandButton(
"saveProperties", $this->lng->txt(
"save"));
1380 if ($template_settings) {
1381 foreach ($template_settings as
$id => $item) {
1382 if ($item[
"hide"]) {
1383 if (
$id ==
"enabled_end_date") {
1386 if (
$id ==
"enabled_start_date") {
1389 $form->removeItemByPostVar(
$id,
true);
1402 if ($a_section ==
'settings') {
1403 $this->tabs_gui->addSubTabTarget(
1405 $this->ctrl->getLinkTarget($this,
'properties')
1409 if ($lti_settings->hasSettingsAccess()) {
1410 $this->tabs_gui->addSubTabTarget(
1412 $this->ctrl->getLinkTargetByClass(ilLTIProviderObjectSettingGUI::class)
1432 $ilTabs->activateTab(
"settings");
1433 $ilTabs->activateSubTab(
'settings');
1435 if ($this->object->get360Mode()) {
1436 $ilHelp->setScreenId(
"settings_360");
1445 if ($this->object->getTemplate()) {
1446 $link = $this->ctrl->getLinkTarget($this,
"confirmResetTemplate");
1447 $link =
"<a href=\"" . $link .
"\">" . $this->lng->txt(
"survey_using_template_link") .
"</a>";
1448 $message =
"<div style=\"margin-top:10px\">" .
1449 $this->tpl->getMessageHTML(sprintf(
1450 $this->lng->txt(
"survey_using_template"),
1457 $this->tpl->setContent($a_form->getHTML() .
$message);
1462 $fields = array(
'login',
'firstname',
'lastname',
'email');
1464 include_once
'./Services/User/classes/class.ilUserAutoComplete.php';
1466 $auto->setSearchFields($fields);
1467 $auto->setResultField(
'login');
1468 $auto->enableFieldSearchableCheck(
true);
1469 $auto->setMoreLinkAvailable(
true);
1471 if (($_REQUEST[
'fetchall'])) {
1485 $this->tpl->addBlockFile(
"ADM_CONTENT",
"adm_content",
"tpl.il_svy_svy_confirm_resettemplate.html",
"Modules/Survey");
1486 $this->tpl->setCurrentBlock(
"adm_content");
1487 $this->tpl->setVariable(
"BTN_CONFIRM_REMOVE", $this->lng->txt(
"confirm"));
1488 $this->tpl->setVariable(
"BTN_CANCEL_REMOVE", $this->lng->txt(
"cancel"));
1489 $this->tpl->setVariable(
"FORM_ACTION", $this->ctrl->getFormAction($this,
"resetTemplateObject"));
1490 $this->tpl->parseCurrentBlock();
1498 $this->
object->setTemplate(
null);
1499 $this->
object->saveToDB();
1501 ilUtil::sendSuccess($this->lng->txt(
"survey_template_reset"),
true);
1502 $this->ctrl->redirect($this,
"properties");
1513 include_once(
"Services/Form/classes/class.ilPropertyFormGUI.php");
1515 $form->setTarget(
"_top");
1516 $form->setFormAction($this->ctrl->getFormAction($this));
1517 $form->setTitle($this->lng->txt(
"import_svy"));
1519 include_once(
"./Services/Form/classes/class.ilFileInputGUI.php");
1520 $fi =
new ilFileInputGUI($this->lng->txt(
"import_file"),
"importfile");
1521 $fi->setSuffixes(array(
"zip"));
1522 $fi->setRequired(
true);
1523 $form->addItem($fi);
1525 include_once(
"./Modules/Survey/classes/class.ilObjSurvey.php");
1527 $questionspools = $svy->getAvailableQuestionpools(
true,
true,
true);
1529 $pools =
new ilSelectInputGUI($this->lng->txt(
"select_questionpool_short"),
"spl");
1530 $pools->setOptions(array(
"" => $this->lng->txt(
"dont_use_questionpool")) + $questionspools);
1531 $pools->setRequired(
false);
1532 $form->addItem($pools);
1534 $form->addCommandButton(
"importSurvey", $this->lng->txt(
"import"));
1535 $form->addCommandButton(
"cancel", $this->lng->txt(
"cancel"));
1547 $parent_id =
$_GET[
"ref_id"];
1548 $new_type = $_REQUEST[
"new_type"];
1553 $this->lng->loadLanguageModule($new_type);
1554 $this->ctrl->setParameter($this,
"new_type", $new_type);
1557 if (
$form->checkInput()) {
1558 include_once(
"./Modules/Survey/classes/class.ilObjSurvey.php");
1560 $newObj->setType($new_type);
1561 $newObj->setTitle(
"dummy");
1562 $newObj->create(
true);
1567 $this->log->debug(
"form->getInput(spl) = " .
$form->getInput(
"spl"));
1569 $error = $newObj->importObject($_FILES[
"importfile"],
$form->getInput(
"spl"));
1570 if (strlen($error)) {
1576 ilUtil::sendSuccess($this->lng->txt(
"object_imported"),
true);
1578 "&baseClass=ilObjSurveyGUI");
1581 include_once
"Services/Administration/classes/class.ilSettingsTemplate.php";
1585 $tpl->addJavaScript(
"./Modules/Scorm2004/scripts/questions/jquery.js");
1588 $this->tpl->setCurrentBlock(
"template_option");
1589 $this->tpl->setVariable(
"VAL_TEMPLATE_OPTION",
"");
1590 $this->tpl->setVariable(
"TXT_TEMPLATE_OPTION", $this->lng->txt(
"none"));
1591 $this->tpl->parseCurrentBlock();
1593 foreach ($templates as $item) {
1594 $this->tpl->setCurrentBlock(
"template_option");
1595 $this->tpl->setVariable(
"VAL_TEMPLATE_OPTION", $item[
"id"]);
1596 $this->tpl->setVariable(
"TXT_TEMPLATE_OPTION", $item[
"title"]);
1597 $this->tpl->parseCurrentBlock();
1599 $desc = str_replace(
"\n",
"", nl2br($item[
"description"]));
1600 $desc = str_replace(
"\r",
"", $desc);
1602 $this->tpl->setCurrentBlock(
"js_data");
1603 $this->tpl->setVariable(
"JS_DATA_ID", $item[
"id"]);
1604 $this->tpl->setVariable(
"JS_DATA_TEXT", $desc);
1605 $this->tpl->parseCurrentBlock();
1608 $this->tpl->setCurrentBlock(
"templates");
1609 $this->tpl->setVariable(
"TXT_TEMPLATE", $this->lng->txt(
"svy_settings_template"));
1610 $this->tpl->parseCurrentBlock();
1615 $form->setValuesByPost();
1631 $this->ctrl->setCmd(
"showSummary");
1632 $this->ctrl->setCmdClass(
"ilinfoscreengui");
1646 if (!$this->external_rater_360) {
1652 $ilTabs->activateTab(
"info_short");
1654 include_once
"./Modules/Survey/classes/class.ilSurveyExecutionGUI.php";
1657 include_once(
"./Services/InfoScreen/classes/class.ilInfoScreenGUI.php");
1659 $info->enablePrivateNotes();
1662 $is_appraisee =
false;
1665 if ($this->object->get360Mode() &&
1666 $this->object->isAppraisee(
$ilUser->getId())) {
1667 $is_appraisee =
true;
1669 $info->addSection($this->lng->txt(
"survey_360_appraisee_info"));
1671 $appr_data = $this->
object->getAppraiseesData();
1672 $appr_data = $appr_data[
$ilUser->getId()];
1673 $info->addProperty($this->lng->txt(
"survey_360_raters_status_info"), $appr_data[
"finished"]);
1675 if (!$appr_data[
"closed"]) {
1676 include_once
"Services/UIComponent/Button/classes/class.ilLinkButton.php";
1678 $button->setCaption(
"survey_360_appraisee_close_action");
1679 $button->setUrl($this->ctrl->getLinkTargetByClass(
"ilsurveyparticipantsgui",
"confirmappraiseeclose"));
1680 $close_button_360 =
'<div>' . $button->render() .
'</div>';
1682 $txt =
"survey_360_appraisee_close_action_info";
1683 if ($this->object->getSkillService()) {
1687 $this->lng->txt(
"status"),
1688 $close_button_360 . $this->lng->txt(
$txt)
1695 $this->lng->txt(
"status"),
1697 $this->lng->txt(
"survey_360_appraisee_close_action_status"),
1708 $code_input =
false;
1709 $anonymous_code =
$_POST[
"anonymous_id"];
1710 if ($anonymous_code) {
1713 if (!$this->object->checkSurveyCode($anonymous_code)) {
1714 $anonymous_code =
null;
1717 $this->
object->bindSurveyCodeToUser(
$ilUser->getId(), $anonymous_code);
1720 if ($anonymous_code) {
1721 $_SESSION[
"anonymous_id"][$this->
object->getId()] = $anonymous_code;
1723 $anonymous_code =
$_SESSION[
"anonymous_id"][$this->
object->getId()];
1724 if ($anonymous_code) {
1730 if ($this->object->getAnonymize() && !$anonymous_code) {
1731 $anonymous_code = $this->
object->findCodeForUser(
$ilUser->getId());
1735 $participant_status = $this->
object->getUserSurveyExecutionStatus($anonymous_code);
1736 if ($participant_status) {
1737 $anonymous_code = $participant_status[
"code"];
1738 $participant_status = $participant_status[
"runs"];
1742 if (!$this->object->isAccessibleWithoutCode() &&
1745 (!$anonymous_code || !$this->object->isAnonymousKey($anonymous_code))) {
1746 $anonymous_code =
null;
1751 $_SESSION[
"anonymous_id"][$this->
object->getId()] = $anonymous_code;
1753 $survey_started = $this->
object->isSurveyStarted(
$ilUser->getId(), $anonymous_code);
1755 $showButtons = $big_button =
false;
1758 if (!$this->object->get360Mode() &&
1759 ($survey_started === 1 &&
1760 !(!$this->object->isAccessibleWithoutCode() && !$anonymous_code &&
$ilUser->getId() == ANONYMOUS_USER_ID))) {
1763 if (
$ilUser->getId() != ANONYMOUS_USER_ID) {
1764 if ($this->object->hasViewOwnResults()) {
1765 include_once
"Services/UIComponent/Button/classes/class.ilLinkButton.php";
1767 $button->setCaption(
"svy_view_own_results");
1768 $button->setUrl($this->ctrl->getLinkTarget($this,
"viewUserResults"));
1769 $ilToolbar->addButtonInstance($button);
1773 if ($this->object->hasMailConfirmation()) {
1774 if ($this->object->hasViewOwnResults()) {
1775 $ilToolbar->addSeparator();
1778 if (
$ilUser->getId() == ANONYMOUS_USER_ID ||
1780 require_once
"Services/Form/classes/class.ilTextInputGUI.php";
1783 $mail->setValue(
$ilUser->getEmail());
1784 $ilToolbar->addInputItem($mail,
true);
1787 $ilToolbar->setFormAction($this->ctrl->getFormAction($this,
"mailUserResults"));
1789 include_once
"Services/UIComponent/Button/classes/class.ilSubmitButton.php";
1791 $button->setCaption(
"svy_mail_send_confirmation");
1792 $button->setCommand(
"mailUserResults");
1793 $ilToolbar->addButtonInstance($button);
1798 $canStart = $this->
object->canStartSurvey(
null, $this->external_rater_360);
1800 $showButtons = $canStart[
"result"];
1801 if (!$showButtons) {
1802 if ($canStart[
"edit_settings"] &&
1803 $ilAccess->checkAccess(
"write",
"", $this->ref_id)) {
1804 $canStart[
"messages"][] =
"<a href=\"" . $this->ctrl->getLinkTarget($this,
"properties") .
"\">» " .
1805 $this->lng->txt(
"survey_edit_settings") .
"</a>";
1813 if (!$is_appraisee &&
1815 !$this->object->isAccessibleWithoutCode()) {
1816 $info->setFormAction($this->ctrl->getFormAction($this,
"infoScreen"));
1817 $info->addSection($this->lng->txt(
"anonymization"));
1818 $info->addProperty(
"", $this->lng->txt(
"anonymize_anonymous_introduction"));
1819 $info->addPropertyTextinput($this->lng->txt(
"enter_anonymous_id"),
"anonymous_id",
"", 8,
"infoScreen", $this->lng->txt(
"submit"),
true);
1822 if (!$this->object->get360Mode()) {
1823 if ($anonymous_code) {
1824 $info->addHiddenElement(
"anonymous_id", $anonymous_code);
1826 if ($survey_started === 0) {
1827 $big_button = array(
"resume", $this->lng->txt(
"resume_survey"));
1828 } elseif ($survey_started ===
false) {
1829 $big_button = array(
"start", $this->lng->txt(
"start_survey"));
1834 $appr_ids = array();
1837 if ($anonymous_code) {
1838 $anonymous_id = $this->
object->getAnonymousIdByCode($anonymous_code);
1839 if ($anonymous_id) {
1840 $appr_ids = $this->
object->getAppraiseesToRate(0, $anonymous_id);
1846 if (!$appr_ids &&
$ilUser->getId() != ANONYMOUS_USER_ID) {
1847 $appr_ids = $this->
object->getAppraiseesToRate(
$ilUser->getId());
1850 if (
sizeof($appr_ids)) {
1852 $active_appraisees = array();
1853 if ($participant_status) {
1854 foreach ($participant_status as $item) {
1855 $active_appraisees[$item[
"appr_id"]] = $item[
"finished"];
1861 foreach ($appr_ids as $appr_id) {
1862 if ($this->object->isAppraiseeClosed($appr_id)) {
1864 $list[$appr_id] = $this->lng->txt(
"survey_360_appraisee_is_closed");
1865 } elseif (array_key_exists($appr_id, $active_appraisees)) {
1867 if ($active_appraisees[$appr_id]) {
1868 $list[$appr_id] = $this->lng->txt(
"already_completed_survey");
1872 $list[$appr_id] = array(
"resume", $this->lng->txt(
"resume_survey"));
1876 $list[$appr_id] = array(
"start", $this->lng->txt(
"start_survey"));
1880 $info->addSection($this->lng->txt(
"survey_360_rate_other_appraisees"));
1882 include_once
"Services/User/classes/class.ilUserUtil.php";
1883 foreach (
$list as $appr_id => $item) {
1886 if (!is_array($item)) {
1887 $info->addProperty($appr_name, $item);
1889 $this->ctrl->setParameter($output_gui,
"appr_id", $appr_id);
1890 $href = $this->ctrl->getLinkTarget($output_gui, $item[0]);
1891 $this->ctrl->setParameter($output_gui,
"appr_id",
"");
1893 include_once
"Services/UIComponent/Button/classes/class.ilLinkButton.php";
1895 $button->setCaption($item[1],
false);
1896 $button->setUrl($href);
1897 $big_button_360 =
'<div>' . $button->render() .
'</div>';
1899 $info->addProperty($appr_name, $big_button_360);
1902 } elseif (!$is_appraisee) {
1908 if ($this->object->get360Mode() &&
1909 $this->object->get360SelfAppraisee() &&
1910 !$this->object->isAppraisee(
$ilUser->getId()) &&
1911 $ilUser->getId() != ANONYMOUS_USER_ID) {
1912 $link = $this->ctrl->getLinkTargetByClass(
"ilsurveyparticipantsgui",
"addSelfAppraisee");
1913 $link =
'<a href="' . $link .
'">' . $this->lng->txt(
"survey_360_add_self_appraisee") .
'</a>';
1914 $info->addProperty(
" ", $link);
1919 $ilToolbar->setFormAction($this->ctrl->getFormAction($output_gui,
"infoScreen"));
1921 include_once
"Services/UIComponent/Button/classes/class.ilSubmitButton.php";
1923 $button->setCaption($big_button[1],
false);
1924 $button->setCommand($big_button[0]);
1925 $button->setPrimary(
true);
1926 $ilToolbar->addButtonInstance($button);
1928 $ilToolbar->setCloseFormTag(
false);
1929 $info->setOpenFormTag(
false);
1938 if (strlen($this->object->getIntroduction())) {
1939 $introduction = $this->
object->getIntroduction();
1940 $info->addSection($this->lng->txt(
"introduction"));
1941 $info->addProperty(
"", $this->object->prepareTextareaOutput($introduction) .
1942 "<br />" .
$info->getHiddenToggleButton());
1944 $info->addSection(
"");
1945 $info->addProperty(
"",
$info->getHiddenToggleButton());
1948 $info->hideFurtherSections(
false);
1950 if (!$this->object->get360Mode()) {
1951 $info->addSection($this->lng->txt(
"svy_general_properties"));
1954 $this->lng->txt(
"survey_results_anonymization"),
1955 !$this->object->hasAnonymizedResults()
1956 ? $this->lng->txt(
"survey_results_personalized_info")
1957 : $this->lng->txt(
"survey_results_anonymized_info")
1960 include_once
"./Modules/Survey/classes/class.ilObjSurveyAccess.php";
1963 $info->addProperty($this->lng->txt(
"evaluation_access"), $this->lng->txt(
"evaluation_access_info"));
1967 $info->addMetaDataSections($this->object->getId(), 0, $this->object->getType());
1969 $this->ctrl->forwardCommand(
$info);
1975 switch ($this->ctrl->getCmd()) {
1980 case "redirectQuestion":
1981 $ilLocator->addItem($this->object->getTitle(), $this->ctrl->getLinkTarget($this,
"infoScreen"),
"",
$_GET[
"ref_id"]);
1984 case "checkEvaluationAccess":
1985 case "evaluationdetails":
1986 case "evaluationuser":
1987 $ilLocator->addItem($this->object->getTitle(), $this->ctrl->getLinkTargetByClass(
"ilsurveyevaluationgui",
"evaluation"),
"",
$_GET[
"ref_id"]);
1992 case "importSurvey":
1996 $ilLocator->addItem($this->object->getTitle(), $this->ctrl->getLinkTarget($this,
"infoScreen"),
"",
$_GET[
"ref_id"]);
1999 $ilLocator->addItem($this->object->getTitle(), $this->ctrl->getLinkTarget($this,
"infoScreen"),
"",
$_GET[
"ref_id"]);
2002 if ((
int)
$_GET[
"q_id"] && !(
int) $_REQUEST[
"new_for_survey"]) {
2005 $q_id = (int)
$_GET[
"q_id"];
2006 include_once
"./Modules/SurveyQuestionPool/classes/class.SurveyQuestion.php";
2008 $this->ctrl->setParameterByClass($q_type,
"q_id", $q_id);
2009 $ilLocator->addItem(
2011 $this->ctrl->getLinkTargetByClass(array(
"ilSurveyEditorGUI", $q_type),
"editQuestion")
2025 public static function _goto($a_target, $a_access_code =
"")
2029 $ilAccess =
$DIC->access();
2033 if (strlen($a_access_code)) {
2035 $_GET[
"baseClass"] =
"ilObjSurveyGUI";
2036 $_GET[
"cmd"] =
"infoScreen";
2037 $_GET[
"ref_id"] = $a_target;
2038 include(
"ilias.php");
2042 if ($ilAccess->checkAccess(
"visible",
"", $a_target) ||
2043 $ilAccess->checkAccess(
"read",
"", $a_target)) {
2044 $_GET[
"baseClass"] =
"ilObjSurveyGUI";
2045 $_GET[
"cmd"] =
"infoScreen";
2046 $_GET[
"ref_id"] = $a_target;
2047 include(
"ilias.php");
2049 } elseif ($ilAccess->checkAccess(
"read",
"", ROOT_FOLDER_ID)) {
2051 $lng->txt(
"msg_no_perm_read_item"),
2060 $rtpl =
new ilTemplate(
"tpl.svy_view_user_results.html",
true,
true,
"Modules/Survey");
2062 $show_titles = (bool) $this->object->getShowQuestionTitles();
2064 foreach ($this->object->getSurveyPages() as $page) {
2065 if (count($page) > 0) {
2067 if (count($page) > 1) {
2068 if ((
bool) $page[0][
"questionblock_show_blocktitle"]) {
2069 $rtpl->setVariable(
"BLOCK_TITLE", trim($page[0][
"questionblock_title"]));
2074 foreach ($page as $question) {
2075 $question_gui = $this->
object->getQuestionGUI($question[
"type_tag"], $question[
"question_id"]);
2076 if (is_object($question_gui)) {
2077 $rtpl->setCurrentBlock(
"question_bl");
2080 if (strlen($question[
"heading"])) {
2081 $rtpl->setVariable(
"HEADING", trim($question[
"heading"]));
2086 $question_gui->getPrintView(
2088 (
bool) $question[
"questionblock_show_questiontext"],
2089 $this->object->getId(),
2090 $this->object->loadWorkingData($question[
"question_id"], $a_active_id)
2094 $rtpl->parseCurrentBlock();
2098 $rtpl->setCurrentBlock(
"block_bl");
2099 $rtpl->parseCurrentBlock();
2103 return $rtpl->get();
2112 $anonymous_code =
$_SESSION[
"anonymous_id"][$this->
object->getId()];
2113 $active_id = $this->
object->getActiveID(
$ilUser->getId(), $anonymous_code, 0);
2114 if ($this->object->isSurveyStarted(
$ilUser->getId(), $anonymous_code) !== 1 ||
2116 $this->ctrl->redirect($this,
"infoScreen");
2119 $ilTabs->clearTargets();
2120 $ilTabs->setBackTarget(
2121 $this->lng->txt(
"btn_back"),
2122 $this->ctrl->getLinkTarget($this,
"infoScreen")
2133 $show_titles = (bool) $this->object->getShowQuestionTitles();
2135 foreach ($this->object->getSurveyPages() as $page) {
2136 if (count($page) > 0) {
2137 $res[] =
"\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n";
2140 if (count($page) > 1) {
2141 if ((
bool) $page[0][
"questionblock_show_blocktitle"]) {
2142 $res[$this->lng->txt(
"questionblock")] = trim($page[0][
"questionblock_title"]) .
"\n";
2148 $page_res = array();
2150 foreach ($page as $question) {
2151 $question_gui = $this->
object->getQuestionGUI($question[
"type_tag"], $question[
"question_id"]);
2152 if (is_object($question_gui)) {
2153 $question_parts = array();
2156 if (strlen($question[
"heading"])) {
2157 $question_parts[$this->lng->txt(
"heading")] = trim($question[
"heading"]);
2161 $question_parts[$this->lng->txt(
"title")] = trim($question[
"title"]);
2164 if ((
bool) $question[
"questionblock_show_questiontext"]) {
2165 $question_parts[$this->lng->txt(
"question")] = trim(strip_tags($question_gui->object->getQuestionText()));
2168 $answers = $question_gui->getParsedAnswers(
2169 $this->object->loadWorkingData($question[
"question_id"], $a_active_id),
2173 if (
sizeof($answers)) {
2175 if (
sizeof($answers) > 1 ||
2176 get_class($question_gui) ==
"SurveyTextQuestionGUI") {
2181 foreach ($answers as $answer) {
2183 if ($answer[
"textanswer"]) {
2184 $text =
' ("' . $answer[
"textanswer"] .
'")';
2186 if (!isset($answer[
"cols"])) {
2187 if (isset($answer[
"title"])) {
2188 $parts[] = $answer[
"title"] .
$text;
2189 } elseif (isset($answer[
"value"])) {
2190 $parts[] = $answer[
"value"];
2192 $parts[] = substr(
$text, 2, -1);
2198 foreach ($answer[
"cols"] as $col) {
2199 $tmp[] = $col[
"title"];
2201 $parts[] = $answer[
"title"] .
": " . implode(
", ", $tmp) .
$text;
2204 $question_parts[$this->lng->txt(
"answer")] =
2205 ($multiline ?
"\n" :
"") . implode(
"\n", $parts);
2209 foreach ($question_parts as
$type => $value) {
2210 $tmp[] =
$type .
": " . $value;
2212 $page_res[] = implode(
"\n", $tmp);
2216 $res[] = implode(
"\n\n-------------------------------\n\n", $page_res);
2220 $res[] =
"\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n";
2222 return implode(
"\n",
$res);
2229 $finished = $this->
object->getSurveyParticipants(array($a_active_id));
2230 $finished = array_pop($finished);
2233 require_once
"Services/Mail/classes/class.ilMail.php";
2234 require_once
"Services/Link/classes/class.ilLink.php";
2237 $body .= $this->lng->txt(
"svy_mail_own_results_body") .
"\n";
2238 $body .=
"\n" . $this->lng->txt(
"obj_svy") .
": " . $this->
object->getTitle() .
"\n";
2240 $body .=
"\n" . $this->lng->txt(
"survey_results_finished") .
": " . $finished .
"\n\n";
2242 if ($this->object->hasMailOwnResults()) {
2243 $subject =
"svy_mail_own_results_subject";
2246 $subject =
"svy_mail_confirmation_subject";
2252 require_once
"Services/Mail/classes/class.ilMail.php";
2253 $mail =
new ilMail(ANONYMOUS_USER_ID);
2254 $mail->sendMimeMail(
2258 sprintf($this->lng->txt($subject), $this->object->getTitle()),
2269 $anonymous_code =
$_SESSION[
"anonymous_id"][$this->
object->getId()];
2270 $active_id = $this->
object->getActiveID(
$ilUser->getId(), $anonymous_code, 0);
2271 if ($this->object->isSurveyStarted(
$ilUser->getId(), $anonymous_code) !== 1 ||
2273 $this->ctrl->redirect($this,
"infoScreen");
2276 $recipient =
$_POST[
"mail"];
2278 $recipient =
$ilUser->getEmail();
2281 $this->ctrl->redirect($this,
"infoScreen");
2286 ilUtil::sendSuccess($this->lng->txt(
"mail_sent"),
true);
2287 $this->ctrl->redirect($this,
"infoScreen");
2299 return $access->checkRbacOrPositionPermissionAccess(
2301 $a_position_permission,
2302 $this->object->getRefId()
An exception for terminatinating execution or to throw for unit testing.
static _getTitle($question_id)
Returns the question title of a question with a given id.
static _getQuestionType($question_id)
Returns the question type of a question with a given id.
This class represents an option in a checkbox group.
static getInstanceFromAjaxCall()
(Re-)Build instance from ajax call
static formatDate(ilDateTime $date, $a_skip_day=false, $a_include_wd=false, $include_seconds=false)
Format a date @access public.
static setUseRelativeDates($a_status)
set use relative dates
@classDescription Date and time handling
Export User Interface Class.
GUI class for LTI provider object settings.
static checkAccess($a_ref_id, $a_allow_only_read=true)
check access to learning progress
const LP_CONTEXT_REPOSITORY
Class ilObjUserTrackingGUI.
static _getLink($a_ref_id, $a_type='', $a_params=array(), $append="")
static getLogger($a_component_id)
Get component logger.
static _getInstallationSignature()
static getSalutation($a_usr_id, ilLanguage $a_language=null)
This class represents a non editable value in a property form.
static _getUsedHTMLTags($a_module="")
Returns an array of all allowed HTML tags for text editing.
static _hasEvaluationAccess($a_obj_id, $user_id)
propertiesObject(ilPropertyFormGUI $a_form=null)
Display and fill the properties form of the test.
afterSave(ilObject $a_new_object)
save object @access public
initPropertiesForm()
Init survey settings form.
infoScreenObject()
this one is called from the info button in the repository not very nice to set cmdClass/Cmd manually,...
static _goto($a_target, $a_access_code="")
redirect script
sendUserResultsMail($a_active_id, $a_recipient)
initImportForm($a_new_type)
Init object import form.
savePropertiesObject()
Save the survey properties.
getUserResultsPlain($a_active_id)
addSubTabs($a_section)
Add subtabs for tabs.
addDidacticTemplateOptions(array &$a_options)
Add custom templates.
executeCommand()
execute command
importSurveyObject()
form for new survey object import
infoScreen()
show information screen
evaluationObject()
Redirects the evaluation object call to the ilSurveyEvaluationGUI class.
resetTemplateObject()
Enable all settings - remove template.
addLocatorItems()
should be overwritten to add object specific items (repository items are preloaded)
confirmResetTemplateObject()
Enable all settings - Confirmation.
getTabs()
adds tabs to tab gui object
getUserResultsTable($a_active_id)
checkRbacOrPositionPermission($a_rbac_permission, $a_position_permission)
Check rbac or position permission.
const EVALUATION_ACCESS_PARTICIPANTS
const RESULTS_SELF_EVAL_NONE
const NOTIFICATION_INVITED_USERS
const RESULTS_SELF_EVAL_ALL
const NOTIFICATION_PARENT_COURSE
const EVALUATION_ACCESS_ALL
static _hasDatasets($survey_id)
const NOTIFICATION_APPRAISEES_AND_RATERS
const ANONYMIZE_FREEACCESS
const EVALUATION_ACCESS_OFF
static validateExternalRaterCode($a_ref_id, $a_code)
const RESULTS_SELF_EVAL_OWN
const NOTIFICATION_APPRAISEES
const NOTIFICATION_RATERS
static _lookupId($a_user_str)
Lookup id by login.
static _lookupName($a_user_id)
lookup user name
GUI class for the workflow of copying objects.
Class ilObjectGUI Basic methods of all Output classes.
checkPermission($a_perm, $a_cmd="", $a_type="", $a_ref_id=null)
Check permission and redirect on error.
getDidacticTemplateVar($a_type)
Get didactic template setting from creation screen.
putObjectInTree(ilObject $a_obj, $a_parent_node_id=null)
Add object to tree at given position.
prepareOutput($a_show_subobjects=true)
prepare output
static _gotoRepositoryRoot($a_raise_error=false)
Goto repository root.
getCreationMode()
get creation mode
checkPermissionBool($a_perm, $a_cmd="", $a_type="", $a_ref_id=null)
Check permission.
addHeaderAction()
Add header action menu.
const ORGU_POSITION_ACCESS
static initServiceSettingsForm($a_obj_id, ilPropertyFormGUI $form, $services)
Init service settings form.
static updateServiceSettingsForm($a_obj_id, ilPropertyFormGUI $form, $services)
Update service settings.
Class ilObject Basic functions for all objects.
static _lookupObjId($a_id)
static _lookupTitle($a_id)
lookup object title
getRefId()
get reference id @access public
static _getAllReferences($a_id)
get all reference ids of object
static getInstance()
Get instance.
New PermissionGUI (extends from old ilPermission2GUI) RBAC related output.
This class represents an option in a radio group.
Settings template application class.
static getAllSettingsTemplates($a_type, $a_include_auto_generated=false)
Get all settings templates of type.
static lookupTitle($a_id)
Lookup title.
Skill management settings.
Class ilSurveyConstraintsGUI.
Survey evaluation graphical output.
Survey execution graphical output.
Class ilSurveyParticipantsGUI.
Survey skill determination GUI class.
Survey skill service GUI class.
special template class to simplify handling of ITX/PEAR
This class represents a text area property in a property form.
This class represents a text property in a property form.
Auto completion class for user lists.
static getNamePresentation( $a_user_id, $a_user_image=false, $a_profile_link=false, $a_profile_back_link="", $a_force_first_lastname=false, $a_omit_login=false, $a_sortable=true, $a_return_data_array=false, $a_ctrl_path="ilpublicuserprofilegui")
Default behaviour is:
static sendQuestion($a_info="", $a_keep=false)
Send Question to Screen.
static getStyleSheetLocation($mode="output", $a_css_name="", $a_css_location="")
get full style sheet file name (path inclusive) of current user
static redirect($a_script)
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
static is_email($a_email, ilMailRfc822AddressParserFactory $mailAddressParserFactory=null)
This preg-based function checks whether an e-mail address is formally valid.
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
if(!array_key_exists('StateId', $_REQUEST)) $id
catch(Exception $e) $message
$GLOBALS['JPEG_Segment_Names']
Global Variable: XMP_tag_captions.
if(isset($_POST['submit'])) $form
if(isset($_REQUEST['delete'])) $list
foreach($_POST as $key=> $value) $res