ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
ILIAS\Survey\Settings\SettingsFormGUI Class Reference

Settings form. More...

+ Collaboration diagram for ILIAS\Survey\Settings\SettingsFormGUI:

Public Member Functions

 __construct (InternalGUIService $ui_service, InternalDomainService $domain_service, \ilObjectService $object_service, \ilObjSurvey $survey, UIModifier $modifier)
 
 checkForm (\ilPropertyFormGUI $form)
 
 getForm (string $target_class)
 
 withGeneral (\ilPropertyFormGUI $form)
 add general section More...
 
 withActivation (\ilPropertyFormGUI $form)
 add activation section More...
 
 withPresentation (\ilPropertyFormGUI $form)
 add presentation section More...
 
 withBeforeStart (\ilPropertyFormGUI $form)
 add "before start" section More...
 
 withAccess (\ilPropertyFormGUI $form)
 add access section More...
 
 withQuestionBehaviour (\ilPropertyFormGUI $form)
 add question behaviour section More...
 
 withAfterEnd (\ilPropertyFormGUI $form, string $target_class)
 add "after ending" section More...
 
 withReminders (\ilPropertyFormGUI $form)
 add reminders section More...
 
 withResults (\ilPropertyFormGUI $form)
 add results section More...
 
 withOther (\ilPropertyFormGUI $form)
 add "other" section More...
 
 saveForm (\ilPropertyFormGUI $form)
 

Protected Member Functions

 getTutorIdsFromForm (\ilPropertyFormGUI $form)
 
 getTutorResIdsFromForm (\ilPropertyFormGUI $form)
 
 hasGroupCourseParent ()
 Check for group course parent. More...
 

Protected Attributes

InternalGUIService $ui_service
 
ilObjectService $object_service
 
ilObjSurvey $survey
 
UIModifier $modifier
 
InternalDomainService $domain_service
 
ILIAS Survey Mode FeatureConfig $feature_config
 
ilRbacSystem $rbacsystem
 

Private Attributes

ilGlobalTemplateInterface $main_tpl
 

Detailed Description

Settings form.

Author
Alexander Killing killi.nosp@m.ng@l.nosp@m.eifos.nosp@m..de

Definition at line 31 of file class.SettingsFormGUI.php.

Constructor & Destructor Documentation

◆ __construct()

ILIAS\Survey\Settings\SettingsFormGUI::__construct ( InternalGUIService  $ui_service,
InternalDomainService  $domain_service,
\ilObjectService  $object_service,
\ilObjSurvey  $survey,
UIModifier  $modifier 
)

Definition at line 42 of file class.SettingsFormGUI.php.

48 {
49 global $DIC;
50 $this->main_tpl = $DIC->ui()->mainTemplate();
51
52 $this->rbacsystem = $DIC->rbac()->system();
53
54 $this->survey = $survey;
55 $this->object_service = $object_service;
56 $this->ui_service = $ui_service;
57 $this->domain_service = $domain_service;
58 $this->modifier = $modifier;
59 $this->feature_config = $this->domain_service->modeFeatureConfig($survey->getMode());
60 }
global $DIC
Definition: shib_login.php:26

References $DIC, ILIAS\Survey\Settings\SettingsFormGUI\$domain_service, ILIAS\Survey\Settings\SettingsFormGUI\$modifier, ILIAS\Survey\Settings\SettingsFormGUI\$object_service, ILIAS\Survey\Settings\SettingsFormGUI\$survey, ILIAS\Survey\Settings\SettingsFormGUI\$ui_service, and ilObjSurvey\getMode().

+ Here is the call graph for this function:

Member Function Documentation

◆ checkForm()

ILIAS\Survey\Settings\SettingsFormGUI::checkForm ( \ilPropertyFormGUI  $form)

Definition at line 62 of file class.SettingsFormGUI.php.

62 : bool
63 {
65 $lng = $this->ui_service->lng();
66
67 $valid = false;
68
69 if ($form->checkInput()) {
70 $valid = true;
71
72 if ($feature_config->supportsTutorNotification()) {
73 if ($form->getInput("tut")) {
74 $tut_ids = $this->getTutorIdsFromForm($form);
75 // check if given "tutors" have write permission
76 if (!$tut_ids) {
77 $tut_ids = $form->getItemByPostVar("tut_ids");
78 $tut_ids->setAlert($lng->txt("survey_notification_tutor_recipients_invalid"));
79 $valid = false;
80 }
81 }
82 if ($form->getInput("tut_res")) {
83 $end = $form->getItemByPostVar("end_date");
84 if (!$end->getDate()) {
85 $tut_res = $form->getItemByPostVar("tut_res");
86 $tut_res->setAlert($lng->txt("svy_notification_tutor_results_alert"));
87 $valid = false;
88 }
89
90 // check if given "tutors" have write permission
91 $tut_res_ids = $this->getTutorResIdsFromForm($form);
92 if (!$tut_res_ids) {
93 $tut_res_ids = $form->getItemByPostVar("tut_res_ids");
94 $tut_res_ids->setAlert($lng->txt("survey_notification_tutor_recipients_invalid"));
95 $valid = false;
96 }
97 }
98 }
99 }
100
101 return $valid;
102 }
getTutorResIdsFromForm(\ilPropertyFormGUI $form)
ILIAS Survey Mode FeatureConfig $feature_config
$valid
global $lng
Definition: privfeed.php:31

References ILIAS\Survey\Settings\SettingsFormGUI\$feature_config, $lng, $valid, ilPropertyFormGUI\checkInput(), ilPropertyFormGUI\getInput(), ilPropertyFormGUI\getItemByPostVar(), ILIAS\Survey\Settings\SettingsFormGUI\getTutorIdsFromForm(), and ILIAS\Survey\Settings\SettingsFormGUI\getTutorResIdsFromForm().

+ Here is the call graph for this function:

◆ getForm()

ILIAS\Survey\Settings\SettingsFormGUI::getForm ( string  $target_class)
Exceptions

ilCtrlException

Exceptions

ilDateTimeException

Definition at line 148 of file class.SettingsFormGUI.php.

151 $ctrl = $this->ui_service->ctrl();
152 $lng = $this->ui_service->lng();
153
154 $form = new \ilPropertyFormGUI();
155 $form->setFormAction($ctrl->getFormActionByClass(
156 $target_class
157 ));
158 $form->setId("survey_properties");
159
160 $form = $this->withGeneral($form);
161 $form = $this->withActivation($form);
162 $form = $this->withPresentation($form);
163 $form = $this->withBeforeStart($form);
164 $form = $this->withAccess($form);
165 $form = $this->withQuestionBehaviour($form);
166 $form = $this->withAfterEnd($form, $target_class);
167 $form = $this->withReminders($form);
168 $form = $this->withResults($form);
169 $form = $this->withOther($form);
170
171 $form->addCommandButton("saveProperties", $lng->txt("save"));
172
173 return $form;
174 }
withAfterEnd(\ilPropertyFormGUI $form, string $target_class)
add "after ending" section
withGeneral(\ilPropertyFormGUI $form)
add general section
withAccess(\ilPropertyFormGUI $form)
add access section
withReminders(\ilPropertyFormGUI $form)
add reminders section
withResults(\ilPropertyFormGUI $form)
add results section
withActivation(\ilPropertyFormGUI $form)
add activation section
withBeforeStart(\ilPropertyFormGUI $form)
add "before start" section
withPresentation(\ilPropertyFormGUI $form)
add presentation section
withOther(\ilPropertyFormGUI $form)
add "other" section
withQuestionBehaviour(\ilPropertyFormGUI $form)
add question behaviour section
This class represents a property form user interface.

◆ getTutorIdsFromForm()

ILIAS\Survey\Settings\SettingsFormGUI::getTutorIdsFromForm ( \ilPropertyFormGUI  $form)
protected
Parameters
\ilPropertyFormGUI$form
Returns
array

Definition at line 108 of file class.SettingsFormGUI.php.

108 : array
109 {
112
113 $tut_ids = array();
114 $tut_logins = $form->getInput("tut_ids");
115 foreach ($tut_logins as $tut_login) {
116 $tut_id = \ilObjUser::_lookupId($tut_login);
117 if ($tut_id && $rbacsystem->checkAccessOfUser($tut_id, "write", $survey->getRefId())) {
118 $tut_ids[] = $tut_id;
119 }
120 }
121 return $tut_ids;
122 }
static _lookupId(string|array $a_user_str)
checkAccessOfUser(int $a_user_id, string $a_operations, int $a_ref_id, string $a_type="")

References ILIAS\Survey\Settings\SettingsFormGUI\$rbacsystem, ILIAS\Survey\Settings\SettingsFormGUI\$survey, ilObjUser\_lookupId(), ilRbacSystem\checkAccessOfUser(), ilPropertyFormGUI\getInput(), and ilObject\getRefId().

Referenced by ILIAS\Survey\Settings\SettingsFormGUI\checkForm().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getTutorResIdsFromForm()

ILIAS\Survey\Settings\SettingsFormGUI::getTutorResIdsFromForm ( \ilPropertyFormGUI  $form)
protected
Parameters
\ilPropertyFormGUI$form
Returns
array

Definition at line 128 of file class.SettingsFormGUI.php.

128 : array
129 {
132
133 $tut_res_ids = array();
134 $tut_logins = $form->getInput("tut_res_ids");
135 foreach ($tut_logins as $tut_login) {
136 $tut_id = \ilObjUser::_lookupId($tut_login);
137 if ($tut_id && $rbacsystem->checkAccessOfUser($tut_id, "write", $survey->getRefId())) {
138 $tut_res_ids[] = $tut_id;
139 }
140 }
141 return $tut_res_ids;
142 }

References ILIAS\Survey\Settings\SettingsFormGUI\$rbacsystem, ILIAS\Survey\Settings\SettingsFormGUI\$survey, ilObjUser\_lookupId(), ilRbacSystem\checkAccessOfUser(), ilPropertyFormGUI\getInput(), and ilObject\getRefId().

Referenced by ILIAS\Survey\Settings\SettingsFormGUI\checkForm().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ hasGroupCourseParent()

ILIAS\Survey\Settings\SettingsFormGUI::hasGroupCourseParent ( )
protected

Check for group course parent.

Definition at line 590 of file class.SettingsFormGUI.php.

590 : bool
591 {
593
594 $tree = $this->domain_service->repositoryTree();
595 $has_parent = $tree->checkForParentType($survey->getRefId(), "grp");
596 if (!$has_parent) {
597 $has_parent = $tree->checkForParentType($survey->getRefId(), "crs");
598 }
599 return (bool) $has_parent;
600 }

◆ saveForm()

ILIAS\Survey\Settings\SettingsFormGUI::saveForm ( \ilPropertyFormGUI  $form)

Definition at line 790 of file class.SettingsFormGUI.php.

792 : void {
795 $obj_service = $this->object_service;
796 $lng = $this->ui_service->lng();
797
798 if ($form->getInput("rmd")) {
799 $rmd_start = $form->getItemByPostVar("rmd_start")->getDate();
800 $rmd_end = $form->getItemByPostVar("rmd_end")->getDate();
801 if ($rmd_end && $rmd_start->get(IL_CAL_UNIX) > $rmd_end->get(IL_CAL_UNIX)) {
802 $tmp = $rmd_start;
803 $rmd_start = $rmd_end;
804 $rmd_end = $tmp;
805 }
807 $survey->setReminderStart($rmd_start);
808 $survey->setReminderEnd($rmd_end);
809 $survey->setReminderFrequency((int) $form->getInput("rmd_freq"));
810 if ($feature_config->supportsMemberReminder()) {
811 $survey->setReminderTarget((int) $form->getInput("rmd_grp"));
812 $survey->setReminderTemplate(($form->getInput("rmdt") > 0)
813 ? (int) $form->getInput("rmdt")
814 : null);
815 }
816 } else {
818 }
819
820 if ($feature_config->supportsTutorNotification()) {
821 // "one mail after all participants finished"
822 if ($form->getInput("tut")) {
823 $tut_ids = $this->getTutorIdsFromForm($form);
825 $survey->setTutorNotificationRecipients($tut_ids); // see above
826 $survey->setTutorNotificationTarget((int) $form->getInput("tut_grp"));
827 } else {
829 }
830
831 /*
832 if ($form->getInput("tut_res")) {
833 $tut_res_ids = $this->getTutorResIdsFromForm($form);
834 $survey->setTutorResultsStatus(true);
835 $survey->setTutorResultsRecipients($tut_res_ids); // see above
836 } else {
837 $survey->setTutorResultsStatus(false);
838 }*/
839 }
840
841 // #10055
842 if ($form->getInput('online') && count($survey->questions) === 0) {
843 $this->main_tpl->setOnScreenMessage('failure', $lng->txt("cannot_switch_to_online_no_questions"), true);
844 } else {
845 $survey->setOfflineStatus(!$form->getInput('online'));
846 }
847
848 $survey->setMailOwnResults((bool) $form->getInput("mail_own"));
849 $survey->setMailConfirmation((bool) $form->getInput("mail_confirm"));
850
851 // both are saved in object, too
852 $survey->setTitle($form->getInput('title'));
853 $survey->setDescription($form->getInput('description'));
854 $survey->update();
855
856 // activation
857 $period = $form->getItemByPostVar("access_period");
858 $tb = $form->getInput("time_based_avail");
859 if ($tb && $period->getStart() && $period->getEnd()) {
861 $survey->setActivationVisibility((bool) $form->getInput("access_visiblity"));
862 $survey->setActivationStartDate($period->getStart()->get(IL_CAL_UNIX));
863 $survey->setActivationEndDate($period->getEnd()->get(IL_CAL_UNIX));
864 } else {
866 }
867
868 // tile image
869 $obj_service->commonSettings()->legacyForm($form, $survey)->saveTileImage();
870
871 $start = $form->getItemByPostVar("start_date");
872 if ($start->getDate()) {
873 $datetime = explode(" ", $start->getDate()->get(IL_CAL_DATETIME));
875 } else {
877 }
878
879 $end = $form->getItemByPostVar("end_date");
880 if ($end->getDate()) {
881 $datetime = explode(" ", $end->getDate()->get(IL_CAL_DATETIME));
883 } else {
884 $survey->setEndDate("");
885 }
886 $survey->setIntroduction($form->getInput("introduction"));
887 $survey->setOutro($form->getInput("outro"));
888 $survey->setShowQuestionTitles((bool) $form->getInput("show_question_titles"));
889
890 // "separate mail for each participant finished"
891 $survey->setMailNotification((bool) $form->getInput('mailnotification'));
892 $survey->setMailAddresses($form->getInput('mailaddresses'));
893 $survey->setMailParticipantData($form->getInput('mailparticipantdata'));
894
895 if ($feature_config->usesAppraisees()) {
896 $survey->set360SelfAppraisee((bool) $form->getInput("self_appr"));
897 $survey->set360SelfRaters((bool) $form->getInput("self_rate"));
898 }
899
900 if ($feature_config->supportsCompetences()) {
901 $survey->setSkillService((bool) $form->getInput("skill_service"));
902 }
903
904 foreach ($this->modifier->getSurveySettingsResults(
905 $survey,
906 $this->ui_service
907 ) as $item) {
908 $this->modifier->setValuesFromForm($survey, $form);
909 }
910
911 $survey->saveToDb();
912
914 $survey->getId(),
915 $form,
916 array(
918 )
919 );
920 }
$datetime
const IL_CAL_UNIX
const IL_CAL_DATETIME
set360SelfAppraisee(bool $a_value)
setEndDateAndTime(string $end_date, string $end_time)
setStartDateAndTime(string $start_date, string $start_time)
setReminderStatus(bool $a_value)
update($a_upload=false)
setTutorNotificationStatus(bool $a_value)
Activates mail being sent to tutors after all participants have finished the survey.
setOutro(string $outro="")
setReminderTemplate(?int $a_value)
setSkillService(bool $a_val)
setActivationEndDate(?int $ending_time=null)
setIntroduction(string $introduction="")
setEndDate(string $end_date="")
setStartDate(string $start_date="")
setReminderFrequency(int $a_value)
setShowQuestionTitles(bool $a_show)
setActivationStartDate(?int $starting_time=null)
setActivationVisibility(bool $a_value)
setMailNotification(bool $a_notification)
Activate mail to tutors each time a participant finishes the survey.
setTutorNotificationRecipients(array $a_value)
Set tutor recipients for "all participants have finished" mail.
setReminderTarget(int $a_value)
setMailParticipantData(string $a_data)
Set preceding text (incl.
setTutorNotificationTarget(int $a_value)
setMailConfirmation(bool $a_value)
setReminderStart(?ilDate $a_value=null)
setReminderEnd(?ilDate $a_value=null)
set360SelfRaters(bool $a_value)
setMailAddresses(string $a_addresses)
Set (Tutor) Recipients of "single participant has finished" mails.
setActivationLimited(bool $a_value)
setMailOwnResults(bool $a_value)
static updateServiceSettingsForm(int $obj_id, ilPropertyFormGUI $form, array $services)
setTitle(string $title)
setOfflineStatus(bool $status)
setDescription(string $description)

References ILIAS\Survey\Mode\$feature_config, ilPropertyFormGUI\getInput(), ilPropertyFormGUI\getItemByPostVar(), IL_CAL_UNIX, and ILIAS\Survey\Mode\FeatureConfig\supportsMemberReminder().

+ Here is the call graph for this function:

◆ withAccess()

ILIAS\Survey\Settings\SettingsFormGUI::withAccess ( \ilPropertyFormGUI  $form)

add access section

Definition at line 343 of file class.SettingsFormGUI.php.

347 $lng = $this->ui_service->lng();
349
350 // access
351
352 $section = new \ilFormSectionHeaderGUI();
353 $section->setTitle($lng->txt('svy_settings_section_access'));
354 $form->addItem($section);
355
356 // enable start date
357 $start = $survey->getStartDate();
358 // start date
359 $startingtime = new \ilDateTimeInputGUI($lng->txt("start_date"), 'start_date');
360 $startingtime->setShowTime(true);
361 if ($start) {
362 $startingtime->setDate(new \ilDateTime($start, IL_CAL_TIMESTAMP));
363 }
364 $form->addItem($startingtime);
365
366 // enable end date
367 $end = $survey->getEndDate();
368 // end date
369 $endingtime = new \ilDateTimeInputGUI($lng->txt("end_date"), 'end_date');
370 $endingtime->setShowTime(true);
371 if ($end) {
372 $endingtime->setDate(new \ilDateTime($end, IL_CAL_TIMESTAMP));
373 }
374 $form->addItem($endingtime);
375
376 // anonymization
377 if ($feature_config->supportsAccessCodes()) {
378 $codes = new \ilCheckboxInputGUI($lng->txt("survey_access_codes"), "acc_codes");
379 $codes->setInfo($lng->txt("survey_access_codes_info"));
380 $codes->setChecked(!$survey->isAccessibleWithoutCode());
381 $form->addItem($codes);
382
384 $codes->setDisabled(true);
385 }
386 }
387
388 return $form;
389 }
const IL_CAL_TIMESTAMP
@classDescription Date and time handling
static _hasDatasets(int $survey_id)

◆ withActivation()

ILIAS\Survey\Settings\SettingsFormGUI::withActivation ( \ilPropertyFormGUI  $form)

add activation section

Exceptions

ilDateTimeException

Definition at line 239 of file class.SettingsFormGUI.php.

242 $lng = $this->ui_service->lng();
244
245 // activation
246 $lng->loadLanguageModule('rep');
247
248 $section = new \ilFormSectionHeaderGUI();
249 $section->setTitle($lng->txt('rep_activation_availability'));
250 $form->addItem($section);
251
252 // additional info only with multiple references
253 $act_obj_info = $act_ref_info = "";
254 if (count(\ilObject::_getAllReferences($survey->getId())) > 1) {
255 $act_obj_info = ' ' . $lng->txt('rep_activation_online_object_info');
256 $act_ref_info = $lng->txt('rep_activation_access_ref_info');
257 }
258
259 $online = new \ilCheckboxInputGUI($lng->txt('rep_activation_online'), 'online');
260 $online->setInfo($lng->txt('svy_activation_online_info') . $act_obj_info);
261 $online->setChecked(!$survey->getOfflineStatus());
262 $form->addItem($online);
263
264 $time_based_aval = new \ilCheckboxInputGUI($lng->txt('rep_time_based_availability'), 'time_based_avail');
265 $time_based_aval->setChecked(
266 (int) $survey->getActivationStartDate() > 0 ||
267 (int) $survey->getActivationEndDate() > 0
268 );
269 $form->addItem($time_based_aval);
270
271 $dur = new \ilDateDurationInputGUI($lng->txt('rep_time_period'), "access_period");
272 $dur->setShowTime(true);
274 $dur->setStart($date
275 ? new \ilDateTime($date, IL_CAL_UNIX)
276 : null);
277 $date = $survey->getActivationEndDate();
278 $dur->setEnd($date
279 ? new \ilDateTime($date, IL_CAL_UNIX)
280 : null);
281 $time_based_aval->addSubItem($dur);
282
283 $visible = new \ilCheckboxInputGUI($lng->txt('rep_activation_limited_visibility'), 'access_visiblity');
284 $visible->setInfo($lng->txt('svy_activation_limited_visibility_info'));
285 $visible->setChecked($survey->getActivationVisibility());
286 $time_based_aval->addSubItem($visible);
287
288 return $form;
289 }
static _getAllReferences(int $id)
get all reference ids for object ID

◆ withAfterEnd()

ILIAS\Survey\Settings\SettingsFormGUI::withAfterEnd ( \ilPropertyFormGUI  $form,
string  $target_class 
)

add "after ending" section

Definition at line 418 of file class.SettingsFormGUI.php.

423 $lng = $this->ui_service->lng();
425 $ctrl = $this->ui_service->ctrl();
426 $invitation_manager = $this->domain_service->participants()->invitations();
427
428 // finishing
429
430 $info = new \ilFormSectionHeaderGUI();
431 $info->setTitle($lng->txt("svy_settings_section_finishing"));
432 $form->addItem($info);
433
434 $mail_confirm = new \ilCheckboxInputGUI($lng->txt("svy_results_mail_confirm"), "mail_confirm");
435 $mail_confirm->setInfo($lng->txt("svy_results_mail_confirm_info"));
436 $mail_confirm->setChecked($survey->hasMailConfirmation());
437 $form->addItem($mail_confirm);
438
439 $mail_own = new \ilCheckboxInputGUI($lng->txt("svy_results_mail_own"), "mail_own");
440 $mail_own->setInfo($lng->txt("svy_results_mail_own_info"));
441 $mail_own->setChecked($survey->hasMailOwnResults());
442 $mail_confirm->addSubItem($mail_own);
443
444 // final statement
445 $finalstatement = new \ilTextAreaInputGUI($lng->txt("outro"), "outro");
446 $finalstatement->setValue($survey->prepareTextareaOutput($survey->getOutro()));
447 $finalstatement->setRows(10);
448 $finalstatement->setCols(80);
449 if ((new \ilRTESettings($this->domain_service->lng(), $this->domain_service->user()))->getRichTextEditor() === "tinymce") {
450 $finalstatement->setUseRte(true);
451 $finalstatement->setRteTagSet("mini");
452 }
453 $form->addItem($finalstatement);
454
455 // mail notification
456 $mailnotification = new \ilCheckboxInputGUI($lng->txt("mailnotification"), "mailnotification");
457 // $mailnotification->setOptionTitle($lng->txt("activate"));
458 $mailnotification->setInfo($lng->txt("svy_result_mail_notification_info")); // #11762
459 $mailnotification->setValue("1");
460 $mailnotification->setChecked($survey->getMailNotification());
461
462 // addresses
463 $mailaddresses = new \ilTextInputGUI($lng->txt("survey_notification_tutor_recipients"), "mailaddresses");
464 $mailaddresses->setValue($survey->getMailAddresses());
465 $mailaddresses->setSize(80);
466 $mailaddresses->setInfo($lng->txt('mailaddresses_info'));
467 $mailaddresses->setRequired(true);
468
469 // participant data
470 $participantdata = new \ilTextAreaInputGUI($lng->txt("mailparticipantdata"), "mailparticipantdata");
471 $participantdata->setValue($survey->getMailParticipantData());
472 $participantdata->setRows(6);
473 $participantdata->setCols(80);
474 $participantdata->setUseRte(false);
475 $participantdata->setInfo($lng->txt("mailparticipantdata_info"));
476
477 // #12755 - because of privacy concerns we restrict user data to a minimum
478 $placeholders = array(
479 "FIRST_NAME" => "firstname",
480 "LAST_NAME" => "lastname",
481 "LOGIN" => "login"
482 );
483 $txt = array();
484 foreach ($placeholders as $placeholder => $caption) {
485 $txt[] = "[" . strtoupper($placeholder) . "]: " . $lng->txt($caption);
486 }
487 $txt = implode("<br />", $txt);
488 $participantdatainfo = new \ilNonEditableValueGUI($lng->txt("svy_placeholders_label"), "", true);
489 $participantdatainfo->setValue($lng->txt("mailparticipantdata_placeholder") . "<br />" . $txt);
490
491 $mailnotification->addSubItem($mailaddresses);
492 $mailnotification->addSubItem($participantdata);
493 $mailnotification->addSubItem($participantdatainfo);
494 $form->addItem($mailnotification);
495
496 // tutor notification - currently not available for 360°
497 if ($feature_config->supportsTutorNotification()) {
498 $num_inv = count($invitation_manager->getAllForSurvey($survey->getSurveyId()));
499
500 // notification, if "all participants" have finished the survey
501 $tut = new \ilCheckboxInputGUI($lng->txt("survey_notification_tutor_setting"), "tut");
502 $tut->setChecked($survey->getTutorNotificationStatus());
503 $form->addItem($tut);
504
505 $tut_logins = array();
507 if ($tuts) {
508 foreach ($tuts as $tut_id) {
509 $tmp = \ilObjUser::_lookupName((int) $tut_id);
510 if ($tmp["login"]) {
511 $tut_logins[] = $tmp["login"];
512 }
513 }
514 }
515 $tut_ids = new \ilTextInputGUI($lng->txt("survey_notification_tutor_recipients"), "tut_ids");
516 $tut_ids->setDataSource($ctrl->getLinkTargetByClass($target_class, "doAutoComplete", "", true));
517 $tut_ids->setRequired(true);
518 $tut_ids->setMulti(true);
519 $tut_ids->setMultiValues($tut_logins);
520 $tut_ids->setValue(array_shift($tut_logins));
521 $tut->addSubItem($tut_ids);
522
523 // radio to define who are "all participants"
524 $tut_grp = new \ilRadioGroupInputGUI($lng->txt("survey_notification_target_group"), "tut_grp");
525 $tut_grp->setRequired(true);
526 $tut_grp->setValue((string) $survey->getTutorNotificationTarget());
527 $tut->addSubItem($tut_grp);
528
529 // (a) ... the member of the parent group or course
530 $tut_grp_crs = new \ilRadioOption(
531 $lng->txt("survey_notification_target_group_parent_course"),
533 );
534 if (!$this->hasGroupCourseParent()) {
535 $tut_grp_crs->setInfo($lng->txt("survey_notification_target_group_parent_course_inactive"));
536 } else {
537 $tut_grp_crs->setInfo(sprintf(
538 $lng->txt("survey_notification_target_group_invited_info"),
540 ));
541 }
542 $tut_grp->addOption($tut_grp_crs);
543
544 // (b) ... all invited users
545 $tut_grp_inv = new \ilRadioOption(
546 $lng->txt("survey_notification_target_group_invited"),
548 );
549 $tut_grp_inv->setInfo(sprintf($lng->txt("survey_notification_target_group_invited_info"), $num_inv));
550 $tut_grp->addOption($tut_grp_inv);
551
552 /*
553 $tut_res = new \ilCheckboxInputGUI($lng->txt("svy_notification_tutor_results"), "tut_res");
554 $tut_res->setInfo($lng->txt("svy_notification_tutor_results_info"));
555 $tut_res->setChecked($survey->getTutorResultsStatus());
556 $form->addItem($tut_res);
557
558 $tut_res_logins = array();
559 $tuts = $survey->getTutorResultsRecipients();
560 if ($tuts) {
561 foreach ($tuts as $tut_id) {
562 $tmp = \ilObjUser::_lookupName((int) $tut_id);
563 if ($tmp["login"]) {
564 $tut_res_logins[] = $tmp["login"];
565 }
566 }
567 }
568 $tut_res_ids = new \ilTextInputGUI($lng->txt("survey_notification_tutor_recipients"), "tut_res_ids");
569 $tut_res_ids->setDataSource(
570 $ctrl->getLinkTargetByClass(
571 $target_class,
572 "doAutoComplete",
573 "",
574 true
575 )
576 );
577 $tut_res_ids->setRequired(true);
578 $tut_res_ids->setMulti(true);
579 $tut_res_ids->setMultiValues($tut_res_logins);
580 $tut_res_ids->setValue(array_shift($tut_res_logins));
581 $tut_res->addSubItem($tut_res_ids);*/
582 }
583
584 return $form;
585 }
hasGroupCourseParent()
Check for group course parent.
prepareTextareaOutput(string $txt_output)
Prepares a string for a text area output in surveys.
getTutorNotificationRecipients()
Mail being sent to tutors after all participants have finished the survey?
const NOTIFICATION_INVITED_USERS
const NOTIFICATION_PARENT_COURSE
getTutorNotificationTarget()
Group that is checked for the "all participants have finished" mail Either a) all members of a parent...
getNotificationTargetUserIds(bool $a_use_invited)
These users must finish the survey to trigger the tutor notification "all users finished the survey" ...
getMailParticipantData()
Preceding text (incl.
getMailAddresses()
(Tutor) Recipients of "single participant has finished" mails
getMailNotification()
Send mail to tutors each time a participant finishes the survey?
static _lookupName(int $a_user_id)
$info
Definition: entry_point.php:21
$txt
Definition: error.php:31

◆ withBeforeStart()

ILIAS\Survey\Settings\SettingsFormGUI::withBeforeStart ( \ilPropertyFormGUI  $form)

add "before start" section

Definition at line 315 of file class.SettingsFormGUI.php.

319 $lng = $this->ui_service->lng();
320
321 $section = new \ilFormSectionHeaderGUI();
322 $section->setTitle($lng->txt('svy_settings_section_before_start'));
323 $form->addItem($section);
324
325 // introduction
326 $intro = new \ilTextAreaInputGUI($lng->txt("introduction"), "introduction");
328 $intro->setRows(10);
329 $intro->setCols(80);
330 $intro->setInfo($lng->txt("survey_introduction_info"));
331 if ((new \ilRTESettings($this->domain_service->lng(), $this->domain_service->user()))->getRichTextEditor() === "tinymce") {
332 $intro->setUseRte(true);
333 $intro->setRteTagSet("mini");
334 }
335 $form->addItem($intro);
336
337 return $form;
338 }

◆ withGeneral()

ILIAS\Survey\Settings\SettingsFormGUI::withGeneral ( \ilPropertyFormGUI  $form)

add general section

Definition at line 179 of file class.SettingsFormGUI.php.

183 $lng = $this->ui_service->lng();
185
186 // general properties
187 $header = new \ilFormSectionHeaderGUI();
188 $header->setTitle($lng->txt("settings"));
189 $form->addItem($header);
190
191 // title & description (meta data)
192 //$md_obj = new ilMD($this->object->getId(), 0, "svy");
193 //$md_section = $md_obj->getGeneral();
194
195 $title = new \ilTextInputGUI($lng->txt("title"), "title");
196 $title->setRequired(true);
197 $title->setValue($survey->getTitle());
198 $form->addItem($title);
199
200 //$ids = $md_section->getDescriptionIds();
201 //if ($ids) {
202 // $desc_obj = $md_section->getDescription(array_pop($ids));
203
204 $desc = new \ilTextAreaInputGUI($lng->txt("description"), "description");
205 $desc->setRows(4);
206 $desc->setValue($survey->getLongDescription());
207 $form->addItem($desc);
208
209 $ne = new \ilNonEditableValueGUI($lng->txt("type"));
210 $ne->setValue(
211 $this->domain_service
212 ->modeProvider($survey->getMode())
213 ->getTitle()
214 );
215 $form->addItem($ne);
216
217 if ($feature_config->usesAppraisees()) {
218 $self_rate = new \ilCheckboxInputGUI($lng->txt("survey_360_self_raters"), "self_rate");
219 $self_rate->setInfo($lng->txt("survey_360_self_raters_info"));
220 $self_rate->setChecked($survey->get360SelfRaters());
221 $form->addItem($self_rate);
222
223 $self_appr = new \ilCheckboxInputGUI($lng->txt("survey_360_self_appraisee"), "self_appr");
224 $self_appr->setInfo($lng->txt("survey_360_self_appraisee_info"));
225 $self_appr->setChecked($survey->get360SelfAppraisee());
226 $form->addItem($self_appr);
227 }
228
229 foreach ($this->modifier->getSurveySettingsGeneral($survey) as $item) {
230 $form->addItem($item);
231 }
232 return $form;
233 }
getLongDescription()
get object long description (stored in object_description)

◆ withOther()

ILIAS\Survey\Settings\SettingsFormGUI::withOther ( \ilPropertyFormGUI  $form)

add "other" section

Definition at line 741 of file class.SettingsFormGUI.php.

744 $lng = $this->ui_service->lng();
747
748 $other_items = [];
749
750 // competence service activation for 360 mode
751
752 $skmg_set = new \ilSkillManagementSettings();
753
754 if ($feature_config->supportsCompetences() && $skmg_set->isActivated()) {
755 $skill_service = new \ilCheckboxInputGUI($lng->txt("survey_activate_skill_service"), "skill_service");
756 $skill_service->setInfo($lng->txt("survey_activate_skill_service_info"));
757 $skill_service->setChecked($survey->getSkillService());
758 $other_items[] = $skill_service;
759 }
760
761 $position_settings = \ilOrgUnitGlobalSettings::getInstance()
762 ->getObjectPositionSettingsByType($survey->getType());
763
764 if (count($other_items) > 0 ||
765 $position_settings->isActive()
766 ) {
767 $feat = new \ilFormSectionHeaderGUI();
768 $feat->setTitle($lng->txt('obj_features'));
769 $form->addItem($feat);
770
771 foreach ($other_items as $item) {
772 $form->addItem($item);
773 }
774 }
775
776 if ($position_settings->isActive()) {
777 // add orgunit settings
779 $survey->getId(),
780 $form,
781 array(
783 )
784 );
785 }
786
787 return $form;
788 }
static initServiceSettingsForm(int $obj_id, ilPropertyFormGUI $form, array $services)

◆ withPresentation()

ILIAS\Survey\Settings\SettingsFormGUI::withPresentation ( \ilPropertyFormGUI  $form)

add presentation section

Definition at line 294 of file class.SettingsFormGUI.php.

297 $obj_service = $this->object_service;
299 $lng = $this->ui_service->lng();
300
301 // presentation
302 $section = new \ilFormSectionHeaderGUI();
303 $section->setTitle($lng->txt('obj_presentation'));
304 $form->addItem($section);
305
306 // tile image
307 $obj_service->commonSettings()->legacyForm($form, $survey)->addTileImage();
308
309 return $form;
310 }

◆ withQuestionBehaviour()

ILIAS\Survey\Settings\SettingsFormGUI::withQuestionBehaviour ( \ilPropertyFormGUI  $form)

add question behaviour section

Definition at line 394 of file class.SettingsFormGUI.php.

398 $lng = $this->ui_service->lng();
399
400 // question behaviour
401
402 $section = new \ilFormSectionHeaderGUI();
403 $section->setTitle($lng->txt('svy_settings_section_question_behaviour'));
404 $form->addItem($section);
405
406 // show question titles
407 $show_question_titles = new \ilCheckboxInputGUI($lng->txt("svy_show_questiontitles"), "show_question_titles");
408 $show_question_titles->setValue("1");
409 $show_question_titles->setChecked($survey->getShowQuestionTitles());
410 $form->addItem($show_question_titles);
411
412 return $form;
413 }

◆ withReminders()

ILIAS\Survey\Settings\SettingsFormGUI::withReminders ( \ilPropertyFormGUI  $form)

add reminders section

Definition at line 605 of file class.SettingsFormGUI.php.

609 $lng = $this->ui_service->lng();
611 $invitation_manager = $this->domain_service->participants()->invitations();
612
613 // reminders
614
615 $info = new \ilFormSectionHeaderGUI();
616 $info->setTitle($lng->txt("svy_settings_section_reminders"));
617 $form->addItem($info);
618
619 $rmd = new \ilCheckboxInputGUI($lng->txt("survey_reminder_setting"), "rmd");
620 $rmd->setChecked($survey->getReminderStatus());
621 $form->addItem($rmd);
622
623 $rmd_start = new \ilDateTimeInputGUI($lng->txt("survey_reminder_start"), "rmd_start");
624 $rmd_start->setRequired(true);
625 $start = $survey->getReminderStart();
626 if ($start) {
627 $rmd_start->setDate($start);
628 }
629 $rmd->addSubItem($rmd_start);
630
631 $end = $survey->getReminderEnd();
632 $rmd_end = new \ilDateTimeInputGUI($lng->txt("survey_reminder_end"), "rmd_end");
633 if ($end) {
634 $rmd_end->setDate($end);
635 }
636 $rmd->addSubItem($rmd_end);
637
638 $rmd_freq = new \ilNumberInputGUI($lng->txt("survey_reminder_frequency"), "rmd_freq");
639 $rmd_freq->setRequired(true);
640 $rmd_freq->setSize(3);
641 $rmd_freq->setSuffix($lng->txt("survey_reminder_frequency_days"));
642 $rmd_freq->setValue((string) $survey->getReminderFrequency());
643 $rmd_freq->setMinValue(1);
644 $rmd->addSubItem($rmd_freq);
645
646 if ($feature_config->supportsMemberReminder()) {
647 $rmd_grp = new \ilRadioGroupInputGUI($lng->txt("survey_notification_target_group"), "rmd_grp");
648 $rmd_grp->setRequired(true);
649 $rmd_grp->setValue((string) $survey->getReminderTarget());
650 $rmd->addSubItem($rmd_grp);
651
652 $rmd_grp_crs = new \ilRadioOption(
653 $lng->txt("survey_notification_target_group_parent_course"),
655 );
656 if (!$this->hasGroupCourseParent()) {
657 $rmd_grp_crs->setInfo($lng->txt("survey_notification_target_group_parent_course_inactive"));
658 } else {
659 $rmd_grp_crs->setInfo(sprintf(
660 $lng->txt("survey_notification_target_group_invited_info"),
662 ));
663 }
664 $rmd_grp->addOption($rmd_grp_crs);
665
666 $rmd_grp_inv = new \ilRadioOption(
667 $lng->txt("survey_notification_target_group_invited"),
669 );
670 $num_inv = count($invitation_manager->getAllForSurvey($survey->getSurveyId()));
671 $rmd_grp_inv->setInfo(sprintf($lng->txt("survey_notification_target_group_invited_info"), $num_inv));
672 $rmd_grp->addOption($rmd_grp_inv);
673
675 if ($mtmpl) {
676 $rmdt = new \ilRadioGroupInputGUI($lng->txt("svy_reminder_mail_template"), "rmdt");
677 $rmdt->setRequired(true);
678 $rmdt->addOption(new \ilRadioOption($lng->txt("svy_reminder_mail_template_none"), "-1"));
679 foreach ($mtmpl as $mtmpl_id => $mtmpl_caption) {
680 $option = new \ilRadioOption($mtmpl_caption, (string) $mtmpl_id);
681 $rmdt->addOption($option);
682 }
683
684 $reminderTemplateValue = -1;
686 $reminderTemplateValue = $survey->getReminderTemplate();
687 }
688 $rmdt->setValue((string) $reminderTemplateValue);
689 $rmd->addSubItem($rmdt);
690 }
691 }
692
693 foreach ($this->modifier->getSurveySettingsReminderTargets(
694 $survey,
695 $this->ui_service
696 ) as $item) {
697 $rmd->addSubItem($item);
698 }
699
700 return $form;
701 }
getReminderTemplate(bool $selectDefault=false)
getReminderMailTemplates(?int &$defaultTemplateId=null)
This class represents an option in a radio group.

◆ withResults()

ILIAS\Survey\Settings\SettingsFormGUI::withResults ( \ilPropertyFormGUI  $form)

add results section

Definition at line 706 of file class.SettingsFormGUI.php.

709 $lng = $this->ui_service->lng();
712
713 // results
714
715 $results = new \ilFormSectionHeaderGUI();
716 $results->setTitle($lng->txt("results"));
717 $form->addItem($results);
718
719 if ($feature_config->supportsSumScore()) {
720 // calculate sum score
721 $sum_score = new \ilCheckboxInputGUI($lng->txt("survey_calculate_sum_score"), "calculate_sum_score");
722 $sum_score->setInfo($lng->txt("survey_calculate_sum_score_info"));
723 $sum_score->setValue("1");
724 $sum_score->setChecked($survey->getCalculateSumScore());
725 $form->addItem($sum_score);
726 }
727
728 foreach ($this->modifier->getSurveySettingsResults(
729 $survey,
730 $this->ui_service
731 ) as $item) {
732 $form->addItem($item);
733 }
734
735 return $form;
736 }
$results

Field Documentation

◆ $domain_service

InternalDomainService ILIAS\Survey\Settings\SettingsFormGUI::$domain_service
protected

◆ $feature_config

ILIAS Survey Mode FeatureConfig ILIAS\Survey\Settings\SettingsFormGUI::$feature_config
protected

◆ $main_tpl

ilGlobalTemplateInterface ILIAS\Survey\Settings\SettingsFormGUI::$main_tpl
private

Definition at line 40 of file class.SettingsFormGUI.php.

◆ $modifier

UIModifier ILIAS\Survey\Settings\SettingsFormGUI::$modifier
protected

◆ $object_service

ilObjectService ILIAS\Survey\Settings\SettingsFormGUI::$object_service
protected

◆ $rbacsystem

ilRbacSystem ILIAS\Survey\Settings\SettingsFormGUI::$rbacsystem
protected

◆ $survey

◆ $ui_service

InternalGUIService ILIAS\Survey\Settings\SettingsFormGUI::$ui_service
protected

The documentation for this class was generated from the following file: