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()] &&
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':
236 if (!$this->
object->get360Mode()) {
237 $ilTabs->activateTab(
"maintenance");
239 $ilTabs->activateTab(
"survey_360_appraisees");
241 include_once(
"./Modules/Survey/classes/class.ilSurveyParticipantsGUI.php");
243 $this->ctrl->forwardCommand($gui);
246 case "illearningprogressgui":
247 $ilTabs->activateTab(
"learning_progress");
248 include_once(
"./Services/Tracking/classes/class.ilLearningProgressGUI.php");
253 $this->ctrl->forwardCommand($new_gui);
257 $ilTabs->activateTab(
"export");
258 include_once(
"./Services/Export/classes/class.ilExportGUI.php");
260 $exp_gui->addFormat(
"xml");
261 $this->ctrl->forwardCommand($exp_gui);
268 $this->log->debug(
"Default cmd= $cmd");
274 if (strtolower(
$_GET[
"baseClass"]) !=
"iladministrationgui" &&
289 include_once(
"./Modules/Survey/classes/class.ilSurveyEvaluationGUI.php");
291 $this->ctrl->setCmdClass(get_class($eval_gui));
292 $this->ctrl->redirect($eval_gui,
"evaluation");
297 include_once
"Services/Administration/classes/class.ilSettingsTemplate.php";
300 foreach ($templates as $item) {
301 $a_options[
"svytpl_" . $item[
"id"]] =
array($item[
"title"],
302 nl2br(trim($item[
"description"])));
307 $a_options[
"svy360_1"] =
array($this->lng->txt(
"survey_360_mode"),
308 $this->lng->txt(
"survey_360_mode_info"));
318 $a_new_object->loadFromDb();
322 $a_new_object->applySettingsTemplate(
$tpl);
326 if ($a_new_object->get360Mode()) {
331 $a_new_object->saveToDB();
336 $a_new_object->
getRefId() .
"&cmd=properties");
353 $ilHelp->setScreenIdComponent(
"svy");
355 $hidden_tabs =
array();
356 $template = $this->
object->getTemplate();
358 include_once
"Services/Administration/classes/class.ilSettingsTemplate.php";
360 $hidden_tabs =
$template->getHiddenTabs();
364 $this->tabs_gui->addTab(
366 $this->lng->txt(
"survey_questions"),
367 $this->ctrl->getLinkTargetByClass(
array(
"ilsurveyeditorgui",
"ilsurveypagegui"),
"renderPage")
372 $this->tabs_gui->addTab(
374 $this->lng->txt(
"info_short"),
375 $this->ctrl->getLinkTarget($this,
'infoScreen')
381 $this->tabs_gui->addTab(
383 $this->lng->txt(
"settings"),
384 $this->ctrl->getLinkTarget($this,
'properties')
387 if ($this->
object->get360Mode() &&
388 $this->
object->get360SelfRaters() &&
389 $this->
object->isAppraisee(
$ilUser->getId()) &&
391 $this->tabs_gui->addTab(
392 "survey_360_edit_raters",
393 $this->lng->txt(
"survey_360_edit_raters"),
394 $this->ctrl->getLinkTargetByClass(
'ilsurveyparticipantsgui',
'editRaters')
403 !in_array(
"constraints", $hidden_tabs) &&
404 !$this->
object->get360Mode()) {
406 $this->tabs_gui->addTab(
408 $this->lng->txt(
"constraints"),
409 $this->ctrl->getLinkTargetByClass(
"ilsurveyconstraintsgui",
"constraints")
415 if ($this->
object->get360Mode()) {
417 include_once(
"./Services/Skill/classes/class.ilSkillManagementSettings.php");
419 if ($this->
object->get360SkillService() && $skmg_set->isActivated()) {
420 $this->tabs_gui->addTab(
421 "survey_competences",
422 $this->lng->txt(
"survey_competences"),
423 $this->ctrl->getLinkTargetByClass(
"ilsurveyskillgui",
"listQuestionAssignment")
427 $this->tabs_gui->addTab(
428 "survey_360_appraisees",
429 $this->lng->txt(
"survey_360_appraisees"),
430 $this->ctrl->getLinkTargetByClass(
'ilsurveyparticipantsgui',
'listAppraisees')
434 $this->tabs_gui->addTab(
436 $this->lng->txt(
"maintenance"),
437 $this->ctrl->getLinkTargetByClass(
'ilsurveyparticipantsgui',
'maintenance')
442 include_once
"./Modules/Survey/classes/class.ilObjSurveyAccess.php";
446 $this->tabs_gui->addTab(
448 $this->lng->txt(
"svy_results"),
449 $this->ctrl->getLinkTargetByClass(
"ilsurveyevaluationgui",
"evaluation")
454 include_once
"./Services/Tracking/classes/class.ilLearningProgressAccess.php";
456 $this->tabs_gui->addTarget(
458 $this->ctrl->getLinkTargetByClass(
array(
"ilobjsurveygui",
"illearningprogressgui"),
""),
460 array(
"illplistofobjectsgui",
"illplistofsettingsgui",
"illearningprogressgui",
"illplistofprogressgui")
465 if (!in_array(
"meta_data", $hidden_tabs)) {
467 include_once
"Services/Object/classes/class.ilObjectMetaDataGUI.php";
469 $mdtab = $mdgui->getTab();
471 $this->tabs_gui->addTab(
473 $this->lng->txt(
"meta_data"),
479 if (!in_array(
"export", $hidden_tabs)) {
481 $this->tabs_gui->addTab(
483 $this->lng->txt(
"export"),
484 $this->ctrl->getLinkTargetByClass(
"ilexportgui",
"")
491 $this->tabs_gui->addTab(
493 $this->lng->txt(
"perm_settings"),
494 $this->ctrl->getLinkTargetByClass(
array(get_class($this),
'ilpermissiongui'),
"perm")
516 if (
$form->checkInput()) {
519 if (!$this->
object->get360Mode()) {
520 if (
$form->getInput(
"tut")) {
523 $tut_logins =
$form->getInput(
"tut_ids");
524 foreach ($tut_logins as $tut_login) {
526 if ($tut_id &&
$rbacsystem->checkAccessOfUser($tut_id,
"write", $this->object->getRefId())) {
527 $tut_ids[] = $tut_id;
531 $tut_ids =
$form->getItemByPostVar(
"tut_ids");
532 $tut_ids->setAlert($this->lng->txt(
"survey_notification_tutor_recipients_invalid"));
539 if (
$form->getInput(
"rmd")) {
540 $rmd_start =
$form->getItemByPostVar(
"rmd_start")->getDate();
541 $rmd_end =
$form->getItemByPostVar(
"rmd_end")->getDate();
545 $rmd_start = $rmd_end;
549 $this->
object->setReminderStatus(
true);
550 $this->
object->setReminderStart($rmd_start);
551 $this->
object->setReminderEnd($rmd_end);
552 $this->
object->setReminderFrequency(
$form->getInput(
"rmd_freq"));
553 if (!$this->
object->get360Mode()) {
554 $this->
object->setReminderTarget(
$form->getInput(
"rmd_grp"));
555 $this->
object->setReminderTemplate((
$form->getInput(
"rmdt") > 0)
556 ?
$form->getInput(
"rmdt")
559 if (
$form->getInput(
"remind_appraisees") &&
$form->getInput(
"remind_raters")) {
561 } elseif (
$form->getInput(
"remind_appraisees")) {
563 } elseif (
$form->getInput(
"remind_raters")) {
566 $this->
object->setReminderTarget(0);
570 $this->
object->setReminderStatus(
false);
573 if (!$this->
object->get360Mode()) {
574 if (
$form->getInput(
"tut")) {
575 $this->
object->setTutorNotificationStatus(
true);
576 $this->
object->setTutorNotificationRecipients($tut_ids);
577 $this->
object->setTutorNotificationTarget(
$form->getInput(
"tut_grp"));
579 $this->
object->setTutorNotificationStatus(
false);
584 if (
$_POST[
'online'] && count($this->
object->questions) == 0) {
589 $template_settings = null;
590 $template = $this->
object->getTemplate();
592 include_once
"Services/Administration/classes/class.ilSettingsTemplate.php";
594 $template_settings =
$template->getSettings();
597 include_once
'Services/MetaData/classes/class.ilMD.php';
598 $md_obj =
new ilMD($this->
object->getId(), 0,
"svy");
606 $md_desc_ids = $md_section->getDescriptionIds();
608 $md_desc = $md_section->getDescription(array_pop($md_desc_ids));
613 $this->
object->setViewOwnResults(
$_POST[
"view_own"]);
614 $this->
object->setMailOwnResults(
$_POST[
"mail_own"]);
615 $this->
object->setMailConfirmation(
$_POST[
"mail_confirm"]);
620 $this->
object->update();
622 $this->
object->setStatus(
$_POST[
'online']);
625 $period =
$form->getItemByPostVar(
"access_period");
626 if ($period->getStart() && $period->getEnd()) {
627 $this->
object->setActivationLimited(
true);
628 $this->
object->setActivationVisibility(
$_POST[
"access_visiblity"]);
629 $this->
object->setActivationStartDate($period->getStart()->get(
IL_CAL_UNIX));
630 $this->
object->setActivationEndDate($period->getEnd()->get(
IL_CAL_UNIX));
632 $this->
object->setActivationLimited(
false);
635 if (!$template_settings[
"enabled_start_date"][
"hide"]) {
636 $start =
$form->getItemByPostVar(
"start_date");
637 if ($start->getDate()) {
639 $this->
object->setStartDateAndTime($datetime[0], $datetime[1]);
641 $this->
object->setStartDate(null);
645 if (!$template_settings[
"enabled_end_date"][
"hide"]) {
646 $end =
$form->getItemByPostVar(
"end_date");
647 if (
$end->getDate()) {
649 $this->
object->setEndDateAndTime($datetime[0], $datetime[1]);
651 $this->
object->setEndDate(null);
656 include_once
"./Services/AdvancedEditing/classes/class.ilObjAdvancedEditing.php";
657 $introduction =
$_POST[
"introduction"];
658 $this->
object->setIntroduction($introduction);
660 $this->
object->setOutro($outro);
662 if (!$template_settings[
"show_question_titles"][
"hide"]) {
663 $this->
object->setShowQuestionTitles(
$_POST[
"show_question_titles"]);
666 if (!$template_settings[
"use_pool"][
"hide"]) {
667 $this->
object->setPoolUsage(
$_POST[
"use_pool"]);
670 $this->
object->setMailNotification(
$_POST[
'mailnotification']);
671 $this->
object->setMailAddresses(
$_POST[
'mailaddresses']);
672 $this->
object->setMailParticipantData(
$_POST[
'mailparticipantdata']);
675 if ($this->
object->get360Mode()) {
676 $this->
object->set360SelfEvaluation((
bool)
$_POST[
"self_eval"]);
677 $this->
object->set360SelfAppraisee((
bool) $_POST[
"self_appr"]);
678 $this->
object->set360SelfRaters((
bool) $_POST[
"self_rate"]);
679 $this->
object->set360Results((
int) $_POST[
"ts_res"]);
681 $this->
object->set360SkillService((
int) $_POST[
"skill_service"]);
683 if (!$template_settings[
"evaluation_access"][
"hide"]) {
684 $this->
object->setEvaluationAccess(
$_POST[
"evaluation_access"]);
689 $hide_codes = $template_settings[
"acc_codes"][
"hide"];
690 $hide_anon = $template_settings[
"anonymization_options"][
"hide"];
691 if (!$hide_codes || !$hide_anon) {
692 $current = $this->
object->getAnonymize();
696 $codes = (bool)
$_POST[
"acc_codes"];
702 $anon = ((
string)
$_POST[
"anonymization_options"] ==
"statanon");
722 $this->
object->setAnonymousUserList(
$_POST[
"anon_list"]);
731 $this->
object->saveToDb();
733 if (strcmp(
$_SESSION[
"info"],
"") != 0) {
738 $this->ctrl->redirect($this,
"properties");
745 $form->setValuesByPost();
756 $template_settings = $hide_rte_switch = null;
757 $template = $this->
object->getTemplate();
759 include_once
"Services/Administration/classes/class.ilSettingsTemplate.php";
762 $template_settings =
$template->getSettings();
763 $hide_rte_switch = $template_settings[
"rte_switch"][
"hide"];
766 include_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
768 $form->setFormAction($this->ctrl->getFormAction($this));
769 $form->setTableWidth(
"100%");
770 $form->setId(
"survey_properties");
774 $header->setTitle($this->lng->txt(
"settings"));
780 include_once
'Services/MetaData/classes/class.ilMD.php';
781 $md_obj =
new ilMD($this->
object->getId(), 0,
"svy");
785 $title->setRequired(
true);
786 $title->setValue($md_section->getTitle());
789 $ids = $md_section->getDescriptionIds();
791 $desc_obj = $md_section->getDescription(array_pop($ids));
796 $desc->setValue($desc_obj->getDescription());
797 $form->addItem($desc);
801 $pool_usage =
new ilRadioGroupInputGUI($this->lng->txt(
"survey_question_pool_usage"),
"use_pool");
802 $opt =
new ilRadioOption($this->lng->txt(
"survey_question_pool_usage_active"), 1);
803 $opt->
setInfo($this->lng->txt(
"survey_question_pool_usage_active_info"));
804 $pool_usage->addOption($opt);
805 $opt =
new ilRadioOption($this->lng->txt(
"survey_question_pool_usage_inactive"), 0);
806 $opt->
setInfo($this->lng->txt(
"survey_question_pool_usage_inactive_info"));
807 $pool_usage->addOption($opt);
808 $pool_usage->setValue($this->
object->getPoolUsage());
809 $form->addItem($pool_usage);
812 if ($this->
object->get360Mode()) {
813 $self_eval =
new ilCheckboxInputGUI($this->lng->txt(
"survey_360_self_evaluation"),
"self_eval");
814 $self_eval->
setInfo($this->lng->txt(
"survey_360_self_evaluation_info"));
815 $self_eval->setChecked($this->
object->get360SelfEvaluation());
816 $form->addItem($self_eval);
818 $self_rate =
new ilCheckboxInputGUI($this->lng->txt(
"survey_360_self_raters"),
"self_rate");
819 $self_rate->
setInfo($this->lng->txt(
"survey_360_self_raters_info"));
820 $self_rate->setChecked($this->
object->get360SelfRaters());
821 $form->addItem($self_rate);
823 $self_appr =
new ilCheckboxInputGUI($this->lng->txt(
"survey_360_self_appraisee"),
"self_appr");
824 $self_appr->
setInfo($this->lng->txt(
"survey_360_self_appraisee_info"));
825 $self_appr->setChecked($this->
object->get360SelfAppraisee());
826 $form->addItem($self_appr);
832 include_once
"Services/Object/classes/class.ilObjectActivation.php";
833 $this->lng->loadLanguageModule(
'rep');
836 $section->setTitle($this->lng->txt(
'rep_activation_availability'));
840 $act_obj_info = $act_ref_info =
"";
842 $act_obj_info =
' ' . $this->lng->txt(
'rep_activation_online_object_info');
843 $act_ref_info = $this->lng->txt(
'rep_activation_access_ref_info');
847 $online->
setInfo($this->lng->txt(
'svy_activation_online_info') . $act_obj_info);
848 $online->setChecked($this->
object->isOnline());
849 $form->addItem($online);
851 include_once
"Services/Form/classes/class.ilDateDurationInputGUI.php";
854 $date = $this->
object->getActivationStartDate();
858 $date = $this->
object->getActivationEndDate();
862 $form->addItem($dur);
864 $visible =
new ilCheckboxInputGUI($this->lng->txt(
'rep_activation_limited_visibility'),
'access_visiblity');
865 $visible->
setInfo($this->lng->txt(
'svy_activation_limited_visibility_info'));
866 $visible->setChecked($this->
object->getActivationVisibility());
867 $dur->addSubItem($visible);
873 $section->setTitle($this->lng->txt(
'svy_settings_section_before_start'));
878 $intro->
setValue($this->
object->prepareTextareaOutput($this->object->getIntroduction()));
881 $intro->setUseRte(
true);
882 $intro->setInfo($this->lng->txt(
"survey_introduction_info"));
883 include_once
"./Services/AdvancedEditing/classes/class.ilObjAdvancedEditing.php";
885 $intro->addPlugin(
"latex");
886 $intro->addButton(
"latex");
887 $intro->addButton(
"pastelatex");
888 $intro->setRTESupport($this->
object->getId(),
"svy",
"survey", null, $hide_rte_switch);
889 $form->addItem($intro);
895 $section->setTitle($this->lng->txt(
'svy_settings_section_access'));
899 $start = $this->
object->getStartDate();
906 $form->addItem($startingtime);
909 $end = $this->
object->getEndDate();
916 $form->addItem($endingtime);
919 if (!$this->
object->get360Mode()) {
921 $codes->
setInfo($this->lng->txt(
"survey_access_codes_info"));
922 $codes->setChecked(!$this->
object->isAccessibleWithoutCode());
923 $form->addItem($codes);
926 $codes->setDisabled(
true);
934 $section->setTitle($this->lng->txt(
'svy_settings_section_question_behaviour'));
938 $show_question_titles =
new ilCheckboxInputGUI($this->lng->txt(
"svy_show_questiontitles"),
"show_question_titles");
940 $show_question_titles->setChecked($this->
object->getShowQuestionTitles());
941 $form->addItem($show_question_titles);
947 $info->setTitle($this->lng->txt(
"svy_settings_section_finishing"));
950 $view_own =
new ilCheckboxInputGUI($this->lng->txt(
"svy_results_view_own"),
"view_own");
951 $view_own->
setInfo($this->lng->txt(
"svy_results_view_own_info"));
952 $view_own->setChecked($this->
object->hasViewOwnResults());
953 $form->addItem($view_own);
955 $mail_confirm =
new ilCheckboxInputGUI($this->lng->txt(
"svy_results_mail_confirm"),
"mail_confirm");
956 $mail_confirm->
setInfo($this->lng->txt(
"svy_results_mail_confirm_info"));
957 $mail_confirm->setChecked($this->
object->hasMailConfirmation());
958 $form->addItem($mail_confirm);
960 $mail_own =
new ilCheckboxInputGUI($this->lng->txt(
"svy_results_mail_own"),
"mail_own");
961 $mail_own->
setInfo($this->lng->txt(
"svy_results_mail_own_info"));
962 $mail_own->setChecked($this->
object->hasMailOwnResults());
963 $mail_confirm->addSubItem($mail_own);
967 $finalstatement->
setValue($this->
object->prepareTextareaOutput($this->object->getOutro()));
968 $finalstatement->setRows(10);
969 $finalstatement->setCols(80);
970 $finalstatement->setUseRte(
true);
972 $finalstatement->addPlugin(
"latex");
973 $finalstatement->addButton(
"latex");
974 $finalstatement->addButton(
"pastelatex");
975 $finalstatement->setRTESupport($this->
object->getId(),
"svy",
"survey", null, $hide_rte_switch);
976 $form->addItem($finalstatement);
979 $mailnotification =
new ilCheckboxInputGUI($this->lng->txt(
"mailnotification"),
"mailnotification");
981 $mailnotification->
setInfo($this->lng->txt(
"svy_result_mail_notification_info"));
982 $mailnotification->setValue(1);
983 $mailnotification->setChecked($this->
object->getMailNotification());
986 $mailaddresses =
new ilTextInputGUI($this->lng->txt(
"mailaddresses"),
"mailaddresses");
988 $mailaddresses->setSize(80);
989 $mailaddresses->setInfo($this->lng->txt(
'mailaddresses_info'));
990 $mailaddresses->setRequired(
true);
993 $participantdata =
new ilTextAreaInputGUI($this->lng->txt(
"mailparticipantdata"),
"mailparticipantdata");
994 $participantdata->
setValue($this->
object->getMailParticipantData());
995 $participantdata->setRows(6);
996 $participantdata->setCols(80);
997 $participantdata->setUseRte(
false);
998 $participantdata->setInfo($this->lng->txt(
"mailparticipantdata_info"));
1001 $placeholders =
array(
1002 "FIRST_NAME" =>
"firstname",
1003 "LAST_NAME" =>
"lastname",
1007 foreach ($placeholders as $placeholder => $caption) {
1008 $txt[] =
"[" . strtoupper($placeholder) .
"]: " . $this->lng->txt($caption);
1011 $participantdatainfo =
new ilNonEditableValueGUI($this->lng->txt(
"mailparticipantdata_placeholder"),
"",
true);
1014 $mailnotification->addSubItem($mailaddresses);
1015 $mailnotification->addSubItem($participantdata);
1016 $mailnotification->addSubItem($participantdatainfo);
1017 $form->addItem($mailnotification);
1020 if (!$this->
object->get360Mode()) {
1023 $has_parent =
$tree->checkForParentType($this->
object->getRefId(),
"grp");
1025 $has_parent =
$tree->checkForParentType($this->
object->getRefId(),
"crs");
1027 $num_inv =
sizeof($this->
object->getInvitedUsers());
1030 $tut =
new ilCheckboxInputGUI($this->lng->txt(
"survey_notification_tutor_setting"),
"tut");
1032 $form->addItem($tut);
1034 $tut_logins =
array();
1035 $tuts = $this->
object->getTutorNotificationRecipients();
1037 foreach ($tuts as $tut_id) {
1039 if ($tmp[
"login"]) {
1040 $tut_logins[] = $tmp[
"login"];
1044 $tut_ids =
new ilTextInputGUI($this->lng->txt(
"survey_notification_tutor_recipients"),
"tut_ids");
1045 $tut_ids->
setDataSource($this->ctrl->getLinkTarget($this,
"doAutoComplete",
"",
true));
1046 $tut_ids->setRequired(
true);
1047 $tut_ids->setMulti(
true);
1048 $tut_ids->setMultiValues($tut_logins);
1049 $tut_ids->setValue(array_shift($tut_logins));
1050 $tut->addSubItem($tut_ids);
1052 $tut_grp =
new ilRadioGroupInputGUI($this->lng->txt(
"survey_notification_target_group"),
"tut_grp");
1054 $tut_grp->setValue($this->
object->getTutorNotificationTarget());
1055 $tut->addSubItem($tut_grp);
1058 $this->lng->txt(
"survey_notification_target_group_parent_course"),
1062 $tut_grp_crs->
setInfo($this->lng->txt(
"survey_notification_target_group_parent_course_inactive"));
1064 $tut_grp_crs->setInfo(sprintf(
1065 $this->lng->txt(
"survey_notification_target_group_invited_info"),
1066 count($this->
object->getNotificationTargetUserIds(
false))
1069 $tut_grp->addOption($tut_grp_crs);
1072 $this->lng->txt(
"survey_notification_target_group_invited"),
1075 $tut_grp_inv->
setInfo(sprintf($this->lng->txt(
"survey_notification_target_group_invited_info"), $num_inv));
1076 $tut_grp->addOption($tut_grp_inv);
1083 $info->setTitle($this->lng->txt(
"svy_settings_section_reminders"));
1088 $form->addItem($rmd);
1090 $rmd_start =
new ilDateTimeInputGUI($this->lng->txt(
"survey_reminder_start"),
"rmd_start");
1092 $start = $this->
object->getReminderStart();
1094 $rmd_start->setDate($start);
1096 $rmd->addSubItem($rmd_start);
1098 $end = $this->
object->getReminderEnd();
1099 $rmd_end =
new ilDateTimeInputGUI($this->lng->txt(
"survey_reminder_end"),
"rmd_end");
1103 $rmd->addSubItem($rmd_end);
1105 $rmd_freq =
new ilNumberInputGUI($this->lng->txt(
"survey_reminder_frequency"),
"rmd_freq");
1107 $rmd_freq->setSize(3);
1108 $rmd_freq->setSuffix($this->lng->txt(
"survey_reminder_frequency_days"));
1109 $rmd_freq->setValue($this->
object->getReminderFrequency());
1110 $rmd_freq->setMinValue(1);
1111 $rmd->addSubItem($rmd_freq);
1114 if (!$this->
object->get360Mode()) {
1115 $rmd_grp =
new ilRadioGroupInputGUI($this->lng->txt(
"survey_notification_target_group"),
"rmd_grp");
1117 $rmd_grp->setValue($this->
object->getReminderTarget());
1118 $rmd->addSubItem($rmd_grp);
1121 $this->lng->txt(
"survey_notification_target_group_parent_course"),
1125 $rmd_grp_crs->
setInfo($this->lng->txt(
"survey_notification_target_group_parent_course_inactive"));
1127 $rmd_grp_crs->setInfo(sprintf(
1128 $this->lng->txt(
"survey_notification_target_group_invited_info"),
1129 count($this->
object->getNotificationTargetUserIds(
false))
1132 $rmd_grp->addOption($rmd_grp_crs);
1135 $this->lng->txt(
"survey_notification_target_group_invited"),
1138 $rmd_grp_inv->
setInfo(sprintf($this->lng->txt(
"survey_notification_target_group_invited_info"), $num_inv));
1139 $rmd_grp->addOption($rmd_grp_inv);
1141 $mtmpl = $this->
object->getReminderMailTemplates();
1145 $rmdt->addOption(
new ilRadioOption($this->lng->txt(
"svy_reminder_mail_template_none"), -1));
1146 foreach ($mtmpl as $mtmpl_id => $mtmpl_caption) {
1148 $rmdt->addOption($option);
1150 $rmdt->setValue($this->
object->getReminderTemplate()
1151 ? $this->
object->getReminderTemplate()
1153 $rmd->addSubItem($rmdt);
1157 $cb =
new ilCheckboxInputGUI($this->lng->txt(
"survey_notification_target_group"),
"remind_appraisees");
1159 $cb->setInfo($this->lng->txt(
"survey_360_appraisees_remind_info"));
1161 $cb->setChecked(in_array(
1162 $this->
object->getReminderTarget(),
1165 $rmd->addSubItem($cb);
1169 $cb->setOptionTitle($this->lng->txt(
"survey_360_raters"));
1170 $cb->setInfo($this->lng->txt(
"survey_360_raters_remind_info"));
1172 $cb->setChecked(in_array(
1173 $this->
object->getReminderTarget(),
1176 $rmd->addSubItem($cb);
1183 $results->setTitle($this->lng->txt(
"results"));
1187 if (!$this->
object->get360Mode()) {
1188 $evaluation_access =
new ilRadioGroupInputGUI($this->lng->txt(
'evaluation_access'),
"evaluation_access");
1191 $option->
setInfo($this->lng->txt(
"svy_evaluation_access_off_info"));
1192 $evaluation_access->addOption($option);
1195 $option->
setInfo($this->lng->txt(
"svy_evaluation_access_all_info"));
1196 $evaluation_access->addOption($option);
1199 $option->
setInfo($this->lng->txt(
"svy_evaluation_access_participants_info"));
1200 $evaluation_access->addOption($option);
1202 $evaluation_access->setValue($this->
object->getEvaluationAccess());
1203 $form->addItem($evaluation_access);
1206 $anonymization_options =
new ilRadioGroupInputGUI($this->lng->txt(
"survey_results_anonymization"),
"anonymization_options");
1208 $option =
new ilCheckboxOption($this->lng->txt(
"survey_results_personalized"),
"statpers");
1209 $option->
setInfo($this->lng->txt(
"survey_results_personalized_info"));
1210 $anonymization_options->addOption($option);
1212 $option =
new ilCheckboxOption($this->lng->txt(
"survey_results_anonymized"),
"statanon");
1213 $option->
setInfo($this->lng->txt(
"survey_results_anonymized_info"));
1214 $anonymization_options->addOption($option);
1215 $anonymization_options->setValue($this->
object->hasAnonymizedResults()
1218 $form->addItem($anonymization_options);
1220 $surveySetting =
new ilSetting(
"survey");
1221 if ($surveySetting->get(
"anonymous_participants",
false)) {
1223 if ($surveySetting->get(
"anonymous_participants_min", 0)) {
1224 $min =
" (" . $this->lng->txt(
"svy_anonymous_participants_min") .
": " .
1225 $surveySetting->get(
"anonymous_participants_min") .
")";
1228 $anon_list =
new ilCheckboxInputGUI($this->lng->txt(
"svy_anonymous_participants_svy"),
"anon_list");
1229 $anon_list->
setInfo($this->lng->txt(
"svy_anonymous_participants_svy_info") . $min);
1230 $anon_list->setChecked($this->
object->hasAnonymousUserList());
1234 if ($this->
object->_hasDatasets($this->object->getSurveyId())) {
1235 $anonymization_options->setDisabled(
true);
1237 $anon_list->setDisabled(
true);
1247 $option->
setInfo($this->lng->txt(
"survey_360_results_none_info"));
1248 $ts_results->addOption($option);
1251 $option->
setInfo($this->lng->txt(
"survey_360_results_own_info"));
1252 $ts_results->addOption($option);
1255 $option->
setInfo($this->lng->txt(
"survey_360_results_all_info"));
1256 $ts_results->addOption($option);
1257 $form->addItem($ts_results);
1263 include_once(
"./Services/Skill/classes/class.ilSkillManagementSettings.php");
1265 if ($this->
object->get360Mode() && $skmg_set->isActivated()) {
1267 $other->setTitle($this->lng->txt(
"other"));
1268 $form->addItem($other);
1270 $skill_service =
new ilCheckboxInputGUI($this->lng->txt(
"survey_activate_skill_service"),
"skill_service");
1271 $skill_service->
setInfo($this->lng->txt(
"survey_activate_skill_service_info"));
1272 $skill_service->setChecked($this->
object->get360SkillService());
1273 $form->addItem($skill_service);
1277 $form->addCommandButton(
"saveProperties", $this->lng->txt(
"save"));
1280 if ($template_settings) {
1281 foreach ($template_settings as
$id => $item) {
1282 if ($item[
"hide"]) {
1283 if (
$id ==
"enabled_end_date") {
1286 if (
$id ==
"enabled_start_date") {
1289 $form->removeItemByPostVar(
$id,
true);
1302 if ($a_section ==
'settings') {
1303 $this->tabs_gui->addSubTabTarget(
1305 $this->ctrl->getLinkTarget($this,
'properties')
1309 if ($lti_settings->hasSettingsAccess()) {
1310 $this->tabs_gui->addSubTabTarget(
1312 $this->ctrl->getLinkTargetByClass(ilLTIProviderObjectSettingGUI::class)
1332 $ilTabs->activateTab(
"settings");
1333 $ilTabs->activateSubTab(
'settings');
1335 if ($this->
object->get360Mode()) {
1336 $ilHelp->setScreenId(
"settings_360");
1345 if ($this->
object->getTemplate()) {
1346 $link = $this->ctrl->getLinkTarget($this,
"confirmResetTemplate");
1347 $link =
"<a href=\"" . $link .
"\">" . $this->lng->txt(
"survey_using_template_link") .
"</a>";
1348 $message =
"<div style=\"margin-top:10px\">" .
1349 $this->tpl->getMessageHTML(sprintf(
1350 $this->lng->txt(
"survey_using_template"),
1357 $this->tpl->setContent($a_form->getHTML() .
$message);
1362 $fields =
array(
'login',
'firstname',
'lastname',
'email');
1364 include_once
'./Services/User/classes/class.ilUserAutoComplete.php';
1366 $auto->setSearchFields($fields);
1367 $auto->setResultField(
'login');
1368 $auto->enableFieldSearchableCheck(
true);
1369 $auto->setMoreLinkAvailable(
true);
1371 if (($_REQUEST[
'fetchall'])) {
1385 $this->tpl->addBlockFile(
"ADM_CONTENT",
"adm_content",
"tpl.il_svy_svy_confirm_resettemplate.html",
"Modules/Survey");
1386 $this->tpl->setCurrentBlock(
"adm_content");
1387 $this->tpl->setVariable(
"BTN_CONFIRM_REMOVE", $this->lng->txt(
"confirm"));
1388 $this->tpl->setVariable(
"BTN_CANCEL_REMOVE", $this->lng->txt(
"cancel"));
1389 $this->tpl->setVariable(
"FORM_ACTION", $this->ctrl->getFormAction($this,
"resetTemplateObject"));
1390 $this->tpl->parseCurrentBlock();
1398 $this->
object->setTemplate(null);
1399 $this->
object->saveToDB();
1402 $this->ctrl->redirect($this,
"properties");
1413 include_once(
"Services/Form/classes/class.ilPropertyFormGUI.php");
1415 $form->setTarget(
"_top");
1416 $form->setFormAction($this->ctrl->getFormAction($this));
1417 $form->setTitle($this->lng->txt(
"import_svy"));
1419 include_once(
"./Services/Form/classes/class.ilFileInputGUI.php");
1420 $fi =
new ilFileInputGUI($this->lng->txt(
"import_file"),
"importfile");
1422 $fi->setRequired(
true);
1423 $form->addItem($fi);
1425 include_once(
"./Modules/Survey/classes/class.ilObjSurvey.php");
1427 $questionspools = $svy->getAvailableQuestionpools(
true,
true,
true);
1429 $pools =
new ilSelectInputGUI($this->lng->txt(
"select_questionpool_short"),
"spl");
1430 $pools->
setOptions(
array(
""=>$this->lng->txt(
"dont_use_questionpool")) + $questionspools);
1431 $pools->setRequired(
false);
1432 $form->addItem($pools);
1434 $form->addCommandButton(
"importSurvey", $this->lng->txt(
"import"));
1435 $form->addCommandButton(
"cancel", $this->lng->txt(
"cancel"));
1447 $parent_id =
$_GET[
"ref_id"];
1448 $new_type = $_REQUEST[
"new_type"];
1453 $this->lng->loadLanguageModule($new_type);
1454 $this->ctrl->setParameter($this,
"new_type", $new_type);
1457 if (
$form->checkInput()) {
1458 include_once(
"./Modules/Survey/classes/class.ilObjSurvey.php");
1460 $newObj->setType($new_type);
1461 $newObj->setTitle(
"dummy");
1462 $newObj->setDescription(
"dummy");
1463 $newObj->create(
true);
1468 $this->log->debug(
"form->getInput(spl) = " .
$form->getInput(
"spl"));
1470 $error = $newObj->importObject($_FILES[
"importfile"],
$form->getInput(
"spl"));
1479 "&baseClass=ilObjSurveyGUI");
1482 include_once
"Services/Administration/classes/class.ilSettingsTemplate.php";
1486 $tpl->addJavaScript(
"./Modules/Scorm2004/scripts/questions/jquery.js");
1489 $this->tpl->setCurrentBlock(
"template_option");
1490 $this->tpl->setVariable(
"VAL_TEMPLATE_OPTION",
"");
1491 $this->tpl->setVariable(
"TXT_TEMPLATE_OPTION", $this->lng->txt(
"none"));
1492 $this->tpl->parseCurrentBlock();
1494 foreach ($templates as $item) {
1495 $this->tpl->setCurrentBlock(
"template_option");
1496 $this->tpl->setVariable(
"VAL_TEMPLATE_OPTION", $item[
"id"]);
1497 $this->tpl->setVariable(
"TXT_TEMPLATE_OPTION", $item[
"title"]);
1498 $this->tpl->parseCurrentBlock();
1500 $desc = str_replace(
"\n",
"", nl2br($item[
"description"]));
1501 $desc = str_replace(
"\r",
"", $desc);
1503 $this->tpl->setCurrentBlock(
"js_data");
1504 $this->tpl->setVariable(
"JS_DATA_ID", $item[
"id"]);
1505 $this->tpl->setVariable(
"JS_DATA_TEXT", $desc);
1506 $this->tpl->parseCurrentBlock();
1509 $this->tpl->setCurrentBlock(
"templates");
1510 $this->tpl->setVariable(
"TXT_TEMPLATE", $this->lng->txt(
"svy_settings_template"));
1511 $this->tpl->parseCurrentBlock();
1516 $form->setValuesByPost();
1532 $this->ctrl->setCmd(
"showSummary");
1533 $this->ctrl->setCmdClass(
"ilinfoscreengui");
1547 if (!$this->external_rater_360) {
1553 $ilTabs->activateTab(
"info_short");
1555 include_once
"./Modules/Survey/classes/class.ilSurveyExecutionGUI.php";
1558 include_once(
"./Services/InfoScreen/classes/class.ilInfoScreenGUI.php");
1560 $info->enablePrivateNotes();
1563 $is_appraisee =
false;
1566 if ($this->
object->get360Mode() &&
1567 $this->
object->isAppraisee(
$ilUser->getId())) {
1568 $is_appraisee =
true;
1570 $info->addSection($this->lng->txt(
"survey_360_appraisee_info"));
1572 $appr_data = $this->
object->getAppraiseesData();
1573 $appr_data = $appr_data[
$ilUser->getId()];
1574 $info->addProperty($this->lng->txt(
"survey_360_raters_status_info"), $appr_data[
"finished"]);
1576 if (!$appr_data[
"closed"]) {
1577 include_once
"Services/UIComponent/Button/classes/class.ilLinkButton.php";
1579 $button->setCaption(
"survey_360_appraisee_close_action");
1580 $button->setUrl($this->ctrl->getLinkTargetByClass(
"ilsurveyparticipantsgui",
"confirmappraiseeclose"));
1581 $close_button_360 =
'<div>' . $button->render() .
'</div>';
1583 $txt =
"survey_360_appraisee_close_action_info";
1584 if ($this->
object->get360SkillService()) {
1588 $this->lng->txt(
"status"),
1589 $close_button_360 . $this->lng->txt(
$txt)
1596 $this->lng->txt(
"status"),
1598 $this->lng->txt(
"survey_360_appraisee_close_action_status"),
1609 $code_input =
false;
1610 $anonymous_code =
$_POST[
"anonymous_id"];
1611 if ($anonymous_code) {
1614 if (!$this->
object->checkSurveyCode($anonymous_code)) {
1615 $anonymous_code = null;
1618 $this->
object->bindSurveyCodeToUser(
$ilUser->getId(), $anonymous_code);
1621 if ($anonymous_code) {
1622 $_SESSION[
"anonymous_id"][$this->
object->getId()] = $anonymous_code;
1624 $anonymous_code =
$_SESSION[
"anonymous_id"][$this->
object->getId()];
1625 if ($anonymous_code) {
1631 if ($this->
object->getAnonymize() && !$anonymous_code) {
1632 $anonymous_code = $this->
object->findCodeForUser(
$ilUser->getId());
1636 $participant_status = $this->
object->getUserSurveyExecutionStatus($anonymous_code);
1637 if ($participant_status) {
1638 $anonymous_code = $participant_status[
"code"];
1639 $participant_status = $participant_status[
"runs"];
1643 if (!$this->
object->isAccessibleWithoutCode() &&
1646 (!$anonymous_code || !$this->
object->isAnonymousKey($anonymous_code))) {
1647 $anonymous_code = null;
1652 $_SESSION[
"anonymous_id"][$this->
object->getId()] = $anonymous_code;
1653 $survey_started = $this->
object->isSurveyStarted(
$ilUser->getId(), $anonymous_code);
1655 $showButtons = $big_button =
false;
1658 if (!$this->
object->get360Mode() &&
1659 ($survey_started === 1 &&
1660 !(!$this->
object->isAccessibleWithoutCode() && !$anonymous_code &&
$ilUser->getId() == ANONYMOUS_USER_ID))) {
1663 if (
$ilUser->getId() != ANONYMOUS_USER_ID) {
1664 if ($this->
object->hasViewOwnResults()) {
1665 include_once
"Services/UIComponent/Button/classes/class.ilLinkButton.php";
1667 $button->setCaption(
"svy_view_own_results");
1668 $button->setUrl($this->ctrl->getLinkTarget($this,
"viewUserResults"));
1669 $ilToolbar->addButtonInstance($button);
1673 if ($this->
object->hasMailConfirmation()) {
1674 if ($this->
object->hasViewOwnResults()) {
1675 $ilToolbar->addSeparator();
1678 if (
$ilUser->getId() == ANONYMOUS_USER_ID ||
1680 require_once
"Services/Form/classes/class.ilTextInputGUI.php";
1683 $mail->setValue(
$ilUser->getEmail());
1684 $ilToolbar->addInputItem($mail,
true);
1687 $ilToolbar->setFormAction($this->ctrl->getFormAction($this,
"mailUserResults"));
1689 include_once
"Services/UIComponent/Button/classes/class.ilSubmitButton.php";
1691 $button->setCaption(
"svy_mail_send_confirmation");
1692 $button->setCommand(
"mailUserResults");
1693 $ilToolbar->addButtonInstance($button);
1698 $canStart = $this->
object->canStartSurvey(null, $this->external_rater_360);
1700 $showButtons = $canStart[
"result"];
1701 if (!$showButtons) {
1702 if ($canStart[
"edit_settings"] &&
1703 $ilAccess->checkAccess(
"write",
"", $this->ref_id)) {
1704 $canStart[
"messages"][] =
"<a href=\"" . $this->ctrl->getLinkTarget($this,
"properties") .
"\">» " .
1705 $this->lng->txt(
"survey_edit_settings") .
"</a>";
1713 if (!$is_appraisee &&
1715 !$this->
object->isAccessibleWithoutCode()) {
1716 $info->setFormAction($this->ctrl->getFormAction($this,
"infoScreen"));
1717 $info->addSection($this->lng->txt(
"anonymization"));
1718 $info->addProperty(
"", $this->lng->txt(
"anonymize_anonymous_introduction"));
1719 $info->addPropertyTextinput($this->lng->txt(
"enter_anonymous_id"),
"anonymous_id",
"", 8,
"infoScreen", $this->lng->txt(
"submit"),
true);
1722 if (!$this->
object->get360Mode()) {
1723 if ($anonymous_code) {
1724 $info->addHiddenElement(
"anonymous_id", $anonymous_code);
1726 if ($survey_started === 0) {
1727 $big_button =
array(
"resume", $this->lng->txt(
"resume_survey"));
1728 } elseif ($survey_started ===
false) {
1729 $big_button =
array(
"start", $this->lng->txt(
"start_survey"));
1734 $appr_ids =
array();
1737 if ($anonymous_code) {
1738 $anonymous_id = $this->
object->getAnonymousIdByCode($anonymous_code);
1739 if ($anonymous_id) {
1740 $appr_ids = $this->
object->getAppraiseesToRate(0, $anonymous_id);
1746 if (!$appr_ids &&
$ilUser->getId() != ANONYMOUS_USER_ID) {
1747 $appr_ids = $this->
object->getAppraiseesToRate(
$ilUser->getId());
1750 if (
sizeof($appr_ids)) {
1752 $active_appraisees =
array();
1753 if ($participant_status) {
1754 foreach ($participant_status as $item) {
1755 $active_appraisees[$item[
"appr_id"]] = $item[
"finished"];
1761 foreach ($appr_ids as $appr_id) {
1762 if ($this->
object->isAppraiseeClosed($appr_id)) {
1764 $list[$appr_id] = $this->lng->txt(
"survey_360_appraisee_is_closed");
1765 } elseif (array_key_exists($appr_id, $active_appraisees)) {
1767 if ($active_appraisees[$appr_id]) {
1768 $list[$appr_id] = $this->lng->txt(
"already_completed_survey");
1772 $list[$appr_id] =
array(
"resume", $this->lng->txt(
"resume_survey"));
1776 $list[$appr_id] =
array(
"start", $this->lng->txt(
"start_survey"));
1780 $info->addSection($this->lng->txt(
"survey_360_rate_other_appraisees"));
1782 include_once
"Services/User/classes/class.ilUserUtil.php";
1783 foreach (
$list as $appr_id => $item) {
1786 if (!is_array($item)) {
1787 $info->addProperty($appr_name, $item);
1789 $this->ctrl->setParameter($output_gui,
"appr_id", $appr_id);
1790 $href = $this->ctrl->getLinkTarget($output_gui, $item[0]);
1791 $this->ctrl->setParameter($output_gui,
"appr_id",
"");
1793 include_once
"Services/UIComponent/Button/classes/class.ilLinkButton.php";
1795 $button->setCaption($item[1],
false);
1796 $button->setUrl($href);
1797 $big_button_360 =
'<div>' . $button->render() .
'</div>';
1799 $info->addProperty($appr_name, $big_button_360);
1802 } elseif (!$is_appraisee) {
1808 if ($this->
object->get360Mode() &&
1809 $this->
object->get360SelfAppraisee() &&
1810 !$this->
object->isAppraisee(
$ilUser->getId()) &&
1811 $ilUser->getId() != ANONYMOUS_USER_ID) {
1812 $link = $this->ctrl->getLinkTargetByClass(
"ilsurveyparticipantsgui",
"addSelfAppraisee");
1813 $link =
'<a href="' . $link .
'">' . $this->lng->txt(
"survey_360_add_self_appraisee") .
'</a>';
1814 $info->addProperty(
" ", $link);
1819 $ilToolbar->setFormAction($this->ctrl->getFormAction($output_gui,
"infoScreen"));
1821 include_once
"Services/UIComponent/Button/classes/class.ilSubmitButton.php";
1823 $button->setCaption($big_button[1],
false);
1824 $button->setCommand($big_button[0]);
1825 $button->setPrimary(
true);
1826 $ilToolbar->addButtonInstance($button);
1828 $ilToolbar->setCloseFormTag(
false);
1829 $info->setOpenFormTag(
false);
1838 if (strlen($this->
object->getIntroduction())) {
1839 $introduction = $this->
object->getIntroduction();
1840 $info->addSection($this->lng->txt(
"introduction"));
1841 $info->addProperty(
"", $this->
object->prepareTextareaOutput($introduction) .
1842 "<br />" .
$info->getHiddenToggleButton());
1844 $info->addSection(
"");
1845 $info->addProperty(
"",
$info->getHiddenToggleButton());
1848 $info->hideFurtherSections(
false);
1850 if (!$this->
object->get360Mode()) {
1851 $info->addSection($this->lng->txt(
"svy_general_properties"));
1854 $this->lng->txt(
"survey_results_anonymization"),
1855 !$this->
object->hasAnonymizedResults()
1856 ? $this->lng->txt(
"survey_results_personalized_info")
1857 : $this->lng->txt(
"survey_results_anonymized_info")
1860 include_once
"./Modules/Survey/classes/class.ilObjSurveyAccess.php";
1863 $info->addProperty($this->lng->txt(
"evaluation_access"), $this->lng->txt(
"evaluation_access_info"));
1867 $info->addMetaDataSections($this->
object->getId(), 0, $this->
object->getType());
1869 $this->ctrl->forwardCommand(
$info);
1875 switch ($this->ctrl->getCmd()) {
1880 case "redirectQuestion":
1881 $ilLocator->addItem($this->
object->getTitle(), $this->ctrl->getLinkTarget($this,
"infoScreen"),
"",
$_GET[
"ref_id"]);
1884 case "checkEvaluationAccess":
1885 case "evaluationdetails":
1886 case "evaluationuser":
1887 $ilLocator->addItem($this->
object->getTitle(), $this->ctrl->getLinkTargetByClass(
"ilsurveyevaluationgui",
"evaluation"),
"",
$_GET[
"ref_id"]);
1892 case "importSurvey":
1896 $ilLocator->addItem($this->
object->getTitle(), $this->ctrl->getLinkTarget($this,
"infoScreen"),
"",
$_GET[
"ref_id"]);
1899 $ilLocator->addItem($this->
object->getTitle(), $this->ctrl->getLinkTarget($this,
"infoScreen"),
"",
$_GET[
"ref_id"]);
1902 if ((
int)
$_GET[
"q_id"] && !(int) $_REQUEST[
"new_for_survey"]) {
1905 $q_id = (int)
$_GET[
"q_id"];
1906 include_once
"./Modules/SurveyQuestionPool/classes/class.SurveyQuestion.php";
1908 $this->ctrl->setParameterByClass($q_type,
"q_id", $q_id);
1909 $ilLocator->addItem(
1911 $this->ctrl->getLinkTargetByClass(
array(
"ilSurveyEditorGUI", $q_type),
"editQuestion")
1925 public static function _goto($a_target, $a_access_code =
"")
1929 $ilAccess = $DIC->access();
1930 $lng = $DIC->language();
1933 if (strlen($a_access_code)) {
1935 $_GET[
"baseClass"] =
"ilObjSurveyGUI";
1936 $_GET[
"cmd"] =
"infoScreen";
1937 $_GET[
"ref_id"] = $a_target;
1938 include(
"ilias.php");
1942 if ($ilAccess->checkAccess(
"visible",
"", $a_target) ||
1943 $ilAccess->checkAccess(
"read",
"", $a_target)) {
1944 $_GET[
"baseClass"] =
"ilObjSurveyGUI";
1945 $_GET[
"cmd"] =
"infoScreen";
1946 $_GET[
"ref_id"] = $a_target;
1947 include(
"ilias.php");
1949 } elseif ($ilAccess->checkAccess(
"read",
"", ROOT_FOLDER_ID)) {
1951 $lng->txt(
"msg_no_perm_read_item"),
1960 $rtpl =
new ilTemplate(
"tpl.svy_view_user_results.html",
true,
true,
"Modules/Survey");
1962 $show_titles = (bool) $this->
object->getShowQuestionTitles();
1964 foreach ($this->
object->getSurveyPages() as $page) {
1965 if (count($page) > 0) {
1967 if (count($page) > 1) {
1968 if ((
bool) $page[0][
"questionblock_show_blocktitle"]) {
1969 $rtpl->setVariable(
"BLOCK_TITLE", trim($page[0][
"questionblock_title"]));
1974 foreach ($page as $question) {
1975 $question_gui = $this->
object->getQuestionGUI($question[
"type_tag"], $question[
"question_id"]);
1976 if (is_object($question_gui)) {
1977 $rtpl->setCurrentBlock(
"question_bl");
1980 if (strlen($question[
"heading"])) {
1981 $rtpl->setVariable(
"HEADING", trim($question[
"heading"]));
1986 $question_gui->getPrintView(
1988 (
bool) $question[
"questionblock_show_questiontext"],
1989 $this->object->getId(),
1990 $this->
object->loadWorkingData($question[
"question_id"], $a_active_id)
1994 $rtpl->parseCurrentBlock();
1998 $rtpl->setCurrentBlock(
"block_bl");
1999 $rtpl->parseCurrentBlock();
2003 return $rtpl->get();
2012 $anonymous_code =
$_SESSION[
"anonymous_id"][$this->
object->getId()];
2013 $active_id = $this->
object->getActiveID(
$ilUser->getId(), $anonymous_code, 0);
2014 if ($this->
object->isSurveyStarted(
$ilUser->getId(), $anonymous_code) !== 1 ||
2016 $this->ctrl->redirect($this,
"infoScreen");
2019 $ilTabs->clearTargets();
2020 $ilTabs->setBackTarget(
2021 $this->lng->txt(
"btn_back"),
2022 $this->ctrl->getLinkTarget($this,
"infoScreen")
2033 $show_titles = (bool) $this->
object->getShowQuestionTitles();
2035 foreach ($this->
object->getSurveyPages() as $page) {
2036 if (count($page) > 0) {
2037 $res[] =
"\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n";
2040 if (count($page) > 1) {
2041 if ((
bool) $page[0][
"questionblock_show_blocktitle"]) {
2042 $res[$this->lng->txt(
"questionblock")] = trim($page[0][
"questionblock_title"]) .
"\n";
2048 $page_res =
array();
2050 foreach ($page as $question) {
2051 $question_gui = $this->
object->getQuestionGUI($question[
"type_tag"], $question[
"question_id"]);
2052 if (is_object($question_gui)) {
2053 $question_parts =
array();
2056 if (strlen($question[
"heading"])) {
2057 $question_parts[$this->lng->txt(
"heading")] = trim($question[
"heading"]);
2061 $question_parts[$this->lng->txt(
"title")] = trim($question[
"title"]);
2064 if ((
bool) $question[
"questionblock_show_questiontext"]) {
2065 $question_parts[$this->lng->txt(
"question")] = trim(strip_tags($question_gui->object->getQuestionText()));
2068 $answers = $question_gui->getParsedAnswers(
2069 $this->
object->loadWorkingData($question[
"question_id"], $a_active_id),
2073 if (
sizeof($answers)) {
2075 if (
sizeof($answers) > 1 ||
2076 get_class($question_gui) ==
"SurveyTextQuestionGUI") {
2081 foreach ($answers as $answer) {
2083 if ($answer[
"textanswer"]) {
2084 $text =
' ("' . $answer[
"textanswer"] .
'")';
2086 if (!isset($answer[
"cols"])) {
2087 if (isset($answer[
"title"])) {
2088 $parts[] = $answer[
"title"] .
$text;
2089 } elseif (isset($answer[
"value"])) {
2090 $parts[] = $answer[
"value"];
2092 $parts[] = substr(
$text, 2, -1);
2098 foreach ($answer[
"cols"] as $col) {
2099 $tmp[] = $col[
"title"];
2101 $parts[] = $answer[
"title"] .
": " . implode(
", ", $tmp) .
$text;
2104 $question_parts[$this->lng->txt(
"answer")] =
2105 ($multiline ?
"\n" :
"") . implode(
"\n", $parts);
2109 foreach ($question_parts as
$type => $value) {
2110 $tmp[] =
$type .
": " . $value;
2112 $page_res[] = implode(
"\n", $tmp);
2116 $res[] = implode(
"\n\n-------------------------------\n\n", $page_res);
2120 $res[] =
"\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n";
2122 return implode(
"\n",
$res);
2129 $finished = $this->
object->getSurveyParticipants(
array($a_active_id));
2130 $finished = array_pop($finished);
2133 require_once
"Services/Mail/classes/class.ilMail.php";
2134 require_once
"Services/Link/classes/class.ilLink.php";
2137 $body .= $this->lng->txt(
"svy_mail_own_results_body") .
"\n";
2138 $body .=
"\n" . $this->lng->txt(
"obj_svy") .
": " . $this->
object->getTitle() .
"\n";
2140 $body .=
"\n" . $this->lng->txt(
"survey_results_finished") .
": " . $finished .
"\n\n";
2142 if ($this->
object->hasMailOwnResults()) {
2143 $subject =
"svy_mail_own_results_subject";
2146 $subject =
"svy_mail_confirmation_subject";
2152 require_once
"Services/Mail/classes/class.ilMail.php";
2153 $mail =
new ilMail(ANONYMOUS_USER_ID);
2154 $mail->sendMimeMail(
2158 sprintf($this->lng->txt($subject), $this->
object->getTitle()),
2169 $anonymous_code =
$_SESSION[
"anonymous_id"][$this->
object->getId()];
2170 $active_id = $this->
object->getActiveID(
$ilUser->getId(), $anonymous_code, 0);
2171 if ($this->
object->isSurveyStarted(
$ilUser->getId(), $anonymous_code) !== 1 ||
2173 $this->ctrl->redirect($this,
"infoScreen");
2176 $recipient =
$_POST[
"mail"];
2178 $recipient =
$ilUser->getEmail();
2181 $this->ctrl->redirect($this,
"infoScreen");
2187 $this->ctrl->redirect($this,
"infoScreen");
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
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 formatDate(ilDateTime $date, $a_skip_day=false, $a_include_wd=false)
Format a date public.
static _getUsedHTMLTags($a_module="")
Returns an array of all allowed HTML tags for text editing.
$GLOBALS['loaded']
Global hash that tracks already loaded includes.
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)
savePropertiesObject()
Save the survey properties.
static _getAllReferences($a_id)
get all reference ids of object
Auto completion class for user lists.
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 NOTIFICATION_APPRAISEES_AND_RATERS
This class handles base functions for mail handling.
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
infoScreen()
show information screen
evaluationObject()
Redirects the evaluation object call to the ilSurveyEvaluationGUI class.
Create styles array
The data for the language used.
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.
Create new PHPExcel object
obj_idprivate
const LP_CONTEXT_REPOSITORY
This class represents a text area property in a property form.
getTabs()
adds tabs to tab gui object
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.
static redirect($a_script)
addHeaderAction()
Add header action menu.
checkPermissionBool($a_perm, $a_cmd="", $a_type="", $a_ref_id=null)
Check permission.
Class ilObjUserTrackingGUI.
static _getLink($a_ref_id, $a_type='', $a_params=array(), $append="")
Settings template application class.
static getInstanceFromAjaxCall()
(Re-)Build instance from ajax call
static _getInstallationSignature()
static getSalutation($a_usr_id, ilLanguage $a_language=null)
initPropertiesForm()
Init survey settings form.