4 include_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"];
66 $lng = $DIC->language();
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');
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");
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");
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";
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();
966 $form->addItem($startingtime);
969 $end = $this->
object->getEndDate();
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");
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);
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");
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");
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");
1163 $rmd->addSubItem($rmd_end);
1165 $rmd_freq =
new ilNumberInputGUI($this->lng->txt(
"survey_reminder_frequency"),
"rmd_freq");
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");
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();
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");
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());
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");
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();
2030 $lng = $DIC->language();
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()
Class ilSurveyParticipantsGUI.
static _lookupName($a_user_id)
lookup user name
This class represents an option in a radio group.
Survey skill service GUI class.
static getAllSettingsTemplates($a_type, $a_include_auto_generated=false)
Get all settings templates of type.
if(isset($_REQUEST['delete'])) $list
setDataSource($href, $a_delimiter=null)
set datasource link for js autocomplete
static _goto($a_target, $a_access_code="")
redirect script
setValue($a_value)
Set Value.
This class represents an option in a checkbox group.
resetTemplateObject()
Enable all settings - remove template.
const EVALUATION_ACCESS_OFF
GUI class for the workflow of copying objects.
static validateExternalRaterCode($a_ref_id, $a_code)
static is_email($a_email, ilMailRfc822AddressParserFactory $mailAddressParserFactory=null)
This preg-based function checks whether an e-mail address is formally valid.
Skill management settings.
const EVALUATION_ACCESS_PARTICIPANTS
static getStyleSheetLocation($mode="output", $a_css_name="", $a_css_location="")
get full style sheet file name (path inclusive) of current user
Class ilSurveyConstraintsGUI.
static _hasDatasets($survey_id)
static _getTitle($question_id)
Returns the question title of a question with a given id.
static _getUsedHTMLTags($a_module="")
Returns an array of all allowed HTML tags for text editing.
const NOTIFICATION_APPRAISEES
if(!array_key_exists('StateId', $_REQUEST)) $id
setValue($a_value)
Set Value.
static _gotoRepositoryRoot($a_raise_error=false)
Goto repository root.
static _getQuestionType($question_id)
Returns the question type of a question with a given id.
static _lookupId($a_user_str)
Lookup id by login.
static setUseRelativeDates($a_status)
set use relative dates
static _lookupTitle($a_id)
lookup object title
getUserResultsPlain($a_active_id)
setInfo($a_info)
Set Info.
initImportForm($a_new_type)
static formatDate(ilDateTime $date, $a_skip_day=false, $a_include_wd=false, $include_seconds=false)
Format a date public.
savePropertiesObject()
Save the survey properties.
static _getAllReferences($a_id)
get all reference ids of object
checkRbacOrPositionPermission($a_rbac_permission, $a_position_permission)
Check rbac or position permission.
Auto completion class for user lists.
static getInstance()
Get instance.
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
Export User Interface Class.
static checkAccess($a_ref_id, $a_allow_only_read=true)
check access to learning progress
setCustomRolesForSelection($a_roles)
Set custom roles for mapping to LTI roles.
prepareOutput($a_show_subobjects=true)
prepare output
catch(Exception $e) $message
addDidacticTemplateOptions(array &$a_options)
importSurveyObject()
form for new survey object import
foreach($_POST as $key=> $value) $res
if(isset($_POST['submit'])) $form
GUI class for LTI provider object settings.
afterSave(ilObject $a_new_object)
save object public
const ANONYMIZE_FREEACCESS
const NOTIFICATION_PARENT_COURSE
const RESULTS_SELF_EVAL_OWN
const NOTIFICATION_APPRAISEES_AND_RATERS
Survey execution graphical output.
Class ilObjectGUI Basic methods of all Output classes.
static _lookupObjId($a_id)
special template class to simplify handling of ITX/PEAR
setSize($a_size)
Set Size.
This class represents a text property in a property form.
infoScreenObject()
this one is called from the info button in the repository not very nice to set cmdClass/Cmd manually...
setCols($a_cols)
Set Cols.
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
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 lookupTitle($a_id)
Lookup title.
static sendQuestion($a_info="", $a_keep=false)
Send Question to Screen.
const NOTIFICATION_INVITED_USERS
static updateServiceSettingsForm($a_obj_id, ilPropertyFormGUI $form, $services)
Update service settings.
infoScreen()
show information screen
evaluationObject()
Redirects the evaluation object call to the ilSurveyEvaluationGUI class.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
const EVALUATION_ACCESS_ALL
static _hasEvaluationAccess($a_obj_id, $user_id)
sendUserResultsMail($a_active_id, $a_recipient)
propertiesObject(ilPropertyFormGUI $a_form=null)
Display and fill the properties form of the test.
confirmResetTemplateObject()
Enable all settings - Confirmation.
This class represents a non editable value in a property form.
const LP_CONTEXT_REPOSITORY
This class represents a text area property in a property form.
static initServiceSettingsForm($a_obj_id, ilPropertyFormGUI $form, $services)
Init service settings form.
getTabs()
adds tabs to tab gui object
const RESULTS_SELF_EVAL_NONE
getCreationMode()
get creation mode
getRefId()
get reference id public
addSubTabs($a_section)
Add subtabs for tabs.
putObjectInTree(ilObject $a_obj, $a_parent_node_id=null)
Add object to tree at given position.
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.
New PermissionGUI (extends from old ilPermission2GUI) RBAC related output.
static getLogger($a_component_id)
Get component logger.
Survey skill determination GUI class.
Survey evaluation graphical output.
getUserResultsTable($a_active_id)
const NOTIFICATION_RATERS
setValue($a_value)
Set Value.
const ORGU_POSITION_ACCESS
static redirect($a_script)
addHeaderAction()
Add header action menu.
checkPermissionBool($a_perm, $a_cmd="", $a_type="", $a_ref_id=null)
Check permission.
Class ilObjUserTrackingGUI.
const RESULTS_SELF_EVAL_ALL
static _getLink($a_ref_id, $a_type='', $a_params=array(), $append="")
Settings template application class.
static getInstanceFromAjaxCall()
(Re-)Build instance from ajax call
$GLOBALS['JPEG_Segment_Names']
Global Variable: XMP_tag_captions.
static _getInstallationSignature()
static getSalutation($a_usr_id, ilLanguage $a_language=null)
initPropertiesForm()
Init survey settings form.