4 include_once
"./Services/Object/classes/class.ilObjectGUI.php";
29 $lng->loadLanguageModule(
"survey");
31 $this->ctrl->saveParameter($this,
"ref_id");
33 parent::__construct(
"", (
int)
$_GET[
"ref_id"],
true,
false);
38 global $ilAccess, $ilNavigationHistory,
$ilErr, $ilTabs;
40 $this->external_rater_360 =
false;
41 if(!$this->creation_mode &&
42 $this->object->get360Mode() &&
43 $_SESSION[
"anonymous_id"][$this->
object->getId()] &&
45 $_SESSION[
"anonymous_id"][$this->
object->getId()]))
47 $this->external_rater_360 =
true;
50 if(!$this->external_rater_360)
52 if (!$ilAccess->checkAccess(
"read",
"", $this->ref_id) &&
53 !$ilAccess->checkAccess(
"visible",
"", $this->ref_id))
55 $ilErr->raiseError($this->lng->txt(
"permission_denied"), $ilErr->MESSAGE);
60 $ilAccess->checkAccess(
"read",
"", $this->ref_id))
62 $this->ctrl->setParameterByClass(
"ilobjsurveygui",
"ref_id", $this->ref_id);
63 $link = $this->ctrl->getLinkTargetByClass(
"ilobjsurveygui",
"");
64 $ilNavigationHistory->addItem($this->ref_id, $link,
"svy");
68 $cmd = $this->ctrl->getCmd(
"properties");
71 if (
$cmd ==
"saveTags")
73 $this->ctrl->setCmdClass(
"ilinfoscreengui");
77 if(!$this->ctrl->getCmdClass() &&
$cmd ==
"questionsrepo")
80 $this->ctrl->setCmd(
"questions");
81 $this->ctrl->setCmdClass(
"ilsurveyeditorgui");
84 $next_class = $this->ctrl->getNextClass($this);
85 $this->ctrl->setReturn($this,
"properties");
91 case "ilinfoscreengui":
92 if(!in_array($this->ctrl->getCmdClass(),
93 array(
'ilpublicuserprofilegui',
'ilobjportfoliogui')))
101 $ilTabs->clearTargets();
102 include_once(
"./Services/InfoScreen/classes/class.ilInfoScreenGUI.php");
104 $this->ctrl->forwardCommand($info);
108 case 'ilmdeditorgui':
110 $ilTabs->activateTab(
"meta_data");
112 include_once
'Services/MetaData/classes/class.ilMDEditorGUI.php';
113 $md_gui =&
new ilMDEditorGUI($this->object->getId(), 0, $this->
object->getType());
114 $md_gui->
addObserver($this->
object,
'MDUpdateListener',
'General');
116 $this->ctrl->forwardCommand($md_gui);
119 case "ilsurveyevaluationgui":
120 $ilTabs->activateTab(
"svy_results");
122 include_once(
"./Modules/Survey/classes/class.ilSurveyEvaluationGUI.php");
124 $this->ctrl->forwardCommand($eval_gui);
127 case "ilsurveyexecutiongui":
128 $ilTabs->clearTargets();
129 include_once(
"./Modules/Survey/classes/class.ilSurveyExecutionGUI.php");
131 $this->ctrl->forwardCommand($exec_gui);
134 case 'ilpermissiongui':
135 $ilTabs->activateTab(
"perm_settings");
137 include_once(
"Services/AccessControl/classes/class.ilPermissionGUI.php");
139 $this->ctrl->forwardCommand($perm_gui);
142 case 'ilobjectcopygui':
143 include_once
'./Services/Object/classes/class.ilObjectCopyGUI.php';
146 $this->ctrl->forwardCommand($cp);
149 case "ilcommonactiondispatchergui":
150 include_once(
"Services/Object/classes/class.ilCommonActionDispatcherGUI.php");
152 $this->ctrl->forwardCommand($gui);
156 case 'ilsurveyskillgui':
157 $ilTabs->activateTab(
"survey_competences");
158 include_once(
"./Modules/Survey/classes/class.ilSurveySkillGUI.php");
160 $this->ctrl->forwardCommand($gui);
163 case 'ilsurveyskilldeterminationgui':
164 $ilTabs->activateTab(
"maintenance");
165 include_once(
"./Modules/Survey/classes/class.ilSurveySkillDeterminationGUI.php");
167 $this->ctrl->forwardCommand($gui);
170 case 'ilsurveyeditorgui':
172 $ilTabs->activateTab(
"survey_questions");
173 include_once(
"./Modules/Survey/classes/class.ilSurveyEditorGUI.php");
175 $this->ctrl->forwardCommand($gui);
178 case 'ilsurveyconstraintsgui':
180 $ilTabs->activateTab(
"constraints");
181 include_once(
"./Modules/Survey/classes/class.ilSurveyConstraintsGUI.php");
183 $this->ctrl->forwardCommand($gui);
186 case 'ilsurveyparticipantsgui':
187 if(!$this->object->get360Mode())
189 $ilTabs->activateTab(
"maintenance");
193 $ilTabs->activateTab(
"survey_360_appraisees");
195 include_once(
"./Modules/Survey/classes/class.ilSurveyParticipantsGUI.php");
197 $this->ctrl->forwardCommand($gui);
207 if (strtolower(
$_GET[
"baseClass"]) !=
"iladministrationgui" &&
223 include_once(
"./Modules/Survey/classes/class.ilSurveyEvaluationGUI.php");
225 $this->ctrl->setCmdClass(get_class($eval_gui));
226 $this->ctrl->redirect($eval_gui,
"evaluation");
231 include_once
"Services/Administration/classes/class.ilSettingsTemplate.php";
235 foreach($templates as $item)
237 $a_options[
"svytpl_".$item[
"id"]] = array($item[
"title"],
238 nl2br(trim($item[
"description"])));
243 $a_options[
"svy360_1"] = array($this->lng->txt(
"survey_360_mode"),
244 $this->lng->txt(
"survey_360_mode_info"));
254 $a_new_object->loadFromDb();
259 $a_new_object->applySettingsTemplate(
$tpl);
263 if($a_new_object->get360Mode())
269 $a_new_object->saveToDB();
274 $a_new_object->
getRefId().
"&cmd=properties");
284 global $ilAccess,
$ilUser, $ilHelp;
291 $ilHelp->setScreenIdComponent(
"svy");
293 $hidden_tabs = array();
294 $template = $this->
object->getTemplate();
297 include_once
"Services/Administration/classes/class.ilSettingsTemplate.php";
299 $hidden_tabs = $template->getHiddenTabs();
302 if ($ilAccess->checkAccess(
"write",
"", $this->ref_id))
304 $tabs_gui->addTab(
"survey_questions",
305 $this->lng->txt(
"survey_questions"),
306 $this->ctrl->getLinkTargetByClass(array(
"ilsurveyeditorgui",
"ilsurveypagegui"),
"renderPage"));
309 if ($ilAccess->checkAccess(
"visible",
"", $this->ref_id))
311 $tabs_gui->addTab(
"info_short",
312 $this->lng->txt(
"info_short"),
313 $this->ctrl->getLinkTarget($this,
'infoScreen'));
317 if ($ilAccess->checkAccess(
"write",
"", $this->ref_id))
319 $tabs_gui->addTab(
"settings",
320 $this->lng->txt(
"settings"),
321 $this->ctrl->getLinkTarget($this,
'properties'));
323 else if ($ilAccess->checkAccess(
"read",
"", $this->ref_id))
325 if($this->object->get360Mode() &&
326 $this->
object->get360SelfRaters() &&
327 $this->
object->isAppraisee($ilUser->getId()) &&
328 !$this->object->isAppraiseeClosed($ilUser->getId()))
330 $tabs_gui->addTab(
"survey_360_edit_raters",
331 $this->lng->txt(
"survey_360_edit_raters"),
332 $this->ctrl->getLinkTargetByClass(
'ilsurveyparticipantsgui',
'editRaters'));
339 if ($ilAccess->checkAccess(
"write",
"", $this->ref_id) &&
340 !in_array(
"constraints", $hidden_tabs) &&
341 !$this->
object->get360Mode())
344 $tabs_gui->addTab(
"constraints",
345 $this->lng->txt(
"constraints"),
346 $this->ctrl->getLinkTargetByClass(
"ilsurveyconstraintsgui",
"constraints"));
349 if ($ilAccess->checkAccess(
"write",
"", $this->ref_id))
352 if($this->object->get360Mode())
355 include_once(
"./Services/Skill/classes/class.ilSkillManagementSettings.php");
357 if ($this->object->get360SkillService() && $skmg_set->isActivated())
359 $tabs_gui->addTab(
"survey_competences",
360 $this->lng->txt(
"survey_competences"),
361 $this->ctrl->getLinkTargetByClass(
"ilsurveyskillgui",
"listQuestionAssignment"));
364 $tabs_gui->addTab(
"survey_360_appraisees",
365 $this->lng->txt(
"survey_360_appraisees"),
366 $this->ctrl->getLinkTargetByClass(
'ilsurveyparticipantsgui',
'listAppraisees'));
371 $tabs_gui->addTab(
"maintenance",
372 $this->lng->txt(
"maintenance"),
373 $this->ctrl->getLinkTargetByClass(
'ilsurveyparticipantsgui',
'maintenance'));
377 include_once
"./Modules/Survey/classes/class.ilObjSurveyAccess.php";
378 if ($ilAccess->checkAccess(
"write",
"", $this->ref_id) ||
382 $tabs_gui->addTab(
"svy_results",
383 $this->lng->txt(
"svy_results"),
384 $this->ctrl->getLinkTargetByClass(
"ilsurveyevaluationgui",
"evaluation"));
387 if ($ilAccess->checkAccess(
"write",
"", $this->ref_id))
389 if(!in_array(
"meta_data", $hidden_tabs))
392 $tabs_gui->addTab(
"meta_data",
393 $this->lng->txt(
"meta_data"),
394 $this->ctrl->getLinkTargetByClass(
'ilmdeditorgui',
'listSection'));
397 if(!in_array(
"export", $hidden_tabs))
400 $tabs_gui->addTab(
"export",
401 $this->lng->txt(
"export"),
402 $this->ctrl->getLinkTarget($this,
'export'));
406 if ($ilAccess->checkAccess(
"edit_permission",
"", $this->ref_id))
409 $tabs_gui->addTab(
"perm_settings",
410 $this->lng->txt(
"perm_settings"),
411 $this->ctrl->getLinkTargetByClass(array(get_class($this),
'ilpermissiongui'),
"perm"));
425 if (!$ilAccess->checkAccess(
"write",
"", $this->ref_id))
429 $this->ctrl->redirect($this,
"infoScreen");
450 if ($form->checkInput())
454 if(!$this->object->get360Mode())
456 if($form->getInput(
"tut"))
460 $tut_logins = $form->getInput(
"tut_ids");
461 foreach($tut_logins as $tut_login)
464 if($tut_id && $rbacsystem->checkAccessOfUser($tut_id,
"write", $this->object->getRefId()))
466 $tut_ids[] = $tut_id;
471 $tut_ids = $form->getItemByPostVar(
"tut_ids");
472 $tut_ids->setAlert($this->lng->txt(
"survey_notification_tutor_recipients_invalid"));
480 if(!$this->object->get360Mode())
482 if($form->getInput(
"rmd"))
484 $rmd_start = $form->getInput(
"rmd_start");
485 $rmd_start = $rmd_start[
"date"];
487 if($form->getInput(
"rmd_end_tgl"))
489 $rmd_end = $form->getInput(
"rmd_end");
490 $rmd_end = $rmd_end[
"date"];
491 if($rmd_start > $rmd_end)
494 $rmd_start = $rmd_end;
501 $this->
object->setReminderStatus(
true);
502 $this->
object->setReminderStart($rmd_start);
503 $this->
object->setReminderEnd($rmd_end);
504 $this->
object->setReminderFrequency($form->getInput(
"rmd_freq"));
505 $this->
object->setReminderTarget($form->getInput(
"rmd_grp"));
509 $this->
object->setReminderStatus(
false);
512 if($form->getInput(
"tut"))
514 $this->
object->setTutorNotificationStatus(
true);
515 $this->
object->setTutorNotificationRecipients($tut_ids);
516 $this->
object->setTutorNotificationTarget($form->getInput(
"tut_grp"));
520 $this->
object->setTutorNotificationStatus(
false);
525 if (
$_POST[
'online'] && count($this->object->questions) == 0)
531 $template_settings = null;
532 $template = $this->
object->getTemplate();
535 include_once
"Services/Administration/classes/class.ilSettingsTemplate.php";
537 $template_settings = $template->getSettings();
540 include_once
'Services/MetaData/classes/class.ilMD.php';
541 $md_obj =&
new ilMD($this->object->getId(), 0,
"svy");
549 $md_desc_ids = $md_section->getDescriptionIds();
552 $md_desc = $md_section->getDescription(array_pop($md_desc_ids));
557 $this->
object->setViewOwnResults(
$_POST[
"view_own"]);
558 $this->
object->setMailOwnResults(
$_POST[
"mail_own"]);
563 $this->
object->update();
565 $this->
object->setStatus(
$_POST[
'online']);
570 $this->
object->setActivationLimited(
true);
571 $this->
object->setActivationVisibility(
$_POST[
"access_visiblity"]);
573 $period = $form->getItemByPostVar(
"access_period");
574 $this->
object->setActivationStartDate($period->getStart()->get(
IL_CAL_UNIX));
575 $this->
object->setActivationEndDate($period->getEnd()->get(
IL_CAL_UNIX));
579 $this->
object->setActivationLimited(
false);
583 if(!$template_settings[
"enabled_start_date"][
"hide"])
585 if (
$_POST[
"enabled_start_date"])
587 $this->
object->setStartDateAndTime(
$_POST[
"start_date"][
'date'],
$_POST[
"start_date"][
'time']);
591 $this->
object->setStartDate(null);
595 if(!$template_settings[
"enabled_end_date"][
"hide"])
597 if (
$_POST[
"enabled_end_date"])
599 $this->
object->setEndDateAndTime(
$_POST[
"end_date"][
'date'],
$_POST[
"end_date"][
'time']);
603 $this->
object->setEndDate(null);
608 include_once
"./Services/AdvancedEditing/classes/class.ilObjAdvancedEditing.php";
609 $introduction =
$_POST[
"introduction"];
610 $this->
object->setIntroduction($introduction);
612 $this->
object->setOutro($outro);
614 if(!$template_settings[
"show_question_titles"][
"hide"])
616 $this->
object->setShowQuestionTitles(
$_POST[
"show_question_titles"]);
619 if(!$template_settings[
"use_pool"][
"hide"])
621 $this->
object->setPoolUsage(
$_POST[
"use_pool"]);
624 $this->
object->setMailNotification(
$_POST[
'mailnotification']);
625 $this->
object->setMailAddresses(
$_POST[
'mailaddresses']);
626 $this->
object->setMailParticipantData(
$_POST[
'mailparticipantdata']);
629 if($this->object->get360Mode())
631 $this->
object->set360SelfEvaluation((
bool)
$_POST[
"self_eval"]);
632 $this->
object->set360SelfAppraisee((
bool)$_POST[
"self_appr"]);
633 $this->
object->set360SelfRaters((
bool)$_POST[
"self_rate"]);
634 $this->
object->set360Results((
int)$_POST[
"ts_res"]);;
635 $this->
object->set360SkillService((
int)$_POST[
"skill_service"]);
639 $this->
object->setEvaluationAccess(
$_POST[
"evaluation_access"]);
641 $hasDatasets = $this->
object->_hasDatasets($this->object->getSurveyId());
644 $codes = (bool)
$_POST[
"acc_codes"];
645 $anon = ((string)
$_POST[
"anonymization_options"] ==
"statanon");
670 unset(
$_SESSION[
"anonymous_id"][$this->object->getId()]);
674 $this->
object->saveToDb();
684 $this->ctrl->redirect($this,
"properties");
688 $form->setValuesByPost();
699 $template_settings = $hide_rte_switch = null;
700 $template = $this->
object->getTemplate();
703 include_once
"Services/Administration/classes/class.ilSettingsTemplate.php";
706 $template_settings = $template->getSettings();
707 $hide_rte_switch = $template_settings[
"rte_switch"][
"hide"];
710 include_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
712 $form->setFormAction($this->ctrl->getFormAction($this));
713 $form->setTableWidth(
"100%");
714 $form->setId(
"survey_properties");
718 $header->setTitle($this->lng->txt(
"settings"));
719 $form->addItem($header);
724 include_once
'Services/MetaData/classes/class.ilMD.php';
725 $md_obj =
new ilMD($this->object->getId(), 0,
"svy");
730 $title->setValue($md_section->getTitle());
731 $form->addItem($title);
733 $ids = $md_section->getDescriptionIds();
736 $desc_obj = $md_section->getDescription(array_pop($ids));
741 $desc->setValue($desc_obj->getDescription());
742 $form->addItem($desc);
746 $pool_usage =
new ilRadioGroupInputGUI($this->lng->txt(
"survey_question_pool_usage"),
"use_pool");
747 $opt =
new ilRadioOption($this->lng->txt(
"survey_question_pool_usage_active"), 1);
748 $opt->
setInfo($this->lng->txt(
"survey_question_pool_usage_active_info"));
749 $pool_usage->addOption($opt);
750 $opt =
new ilRadioOption($this->lng->txt(
"survey_question_pool_usage_inactive"), 0);
751 $opt->
setInfo($this->lng->txt(
"survey_question_pool_usage_inactive_info"));
752 $pool_usage->addOption($opt);
753 $pool_usage->setValue($this->object->getPoolUsage());
754 $form->addItem($pool_usage);
757 if($this->object->get360Mode())
759 $self_eval =
new ilCheckboxInputGUI($this->lng->txt(
"survey_360_self_evaluation"),
"self_eval");
760 $self_eval->
setInfo($this->lng->txt(
"survey_360_self_evaluation_info"));
761 $self_eval->setChecked($this->object->get360SelfEvaluation());
762 $form->addItem($self_eval);
764 $self_rate =
new ilCheckboxInputGUI($this->lng->txt(
"survey_360_self_raters"),
"self_rate");
765 $self_rate->
setInfo($this->lng->txt(
"survey_360_self_raters_info"));
766 $self_rate->setChecked($this->object->get360SelfRaters());
767 $form->addItem($self_rate);
769 $self_appr =
new ilCheckboxInputGUI($this->lng->txt(
"survey_360_self_appraisee"),
"self_appr");
770 $self_appr->
setInfo($this->lng->txt(
"survey_360_self_appraisee_info"));
771 $self_appr->setChecked($this->object->get360SelfAppraisee());
772 $form->addItem($self_appr);
778 include_once
"Services/Object/classes/class.ilObjectActivation.php";
779 $this->lng->loadLanguageModule(
'rep');
782 $section->setTitle($this->lng->txt(
'rep_activation_availability'));
786 $act_obj_info = $act_ref_info =
"";
789 $act_obj_info =
' '.$this->lng->txt(
'rep_activation_online_object_info');
790 $act_ref_info = $this->lng->txt(
'rep_activation_access_ref_info');
794 $online->
setInfo($this->lng->txt(
'svy_activation_online_info').$act_obj_info);
795 $online->setChecked($this->object->isOnline());
796 $form->addItem($online);
798 $act_type =
new ilCheckboxInputGUI($this->lng->txt(
'rep_visibility_until'),
'access_type');
800 $act_type->
setChecked($this->object->isActivationLimited());
802 $this->tpl->addJavaScript(
'./Services/Form/js/date_duration.js');
803 include_once
"Services/Form/classes/class.ilDateDurationInputGUI.php";
806 $date = $this->
object->getActivationStartDate();
808 $dur->setStartText($this->lng->txt(
'rep_activation_limited_start'));
809 $date = $this->
object->getActivationEndDate();
811 $dur->setEndText($this->lng->txt(
'rep_activation_limited_end'));
812 $act_type->addSubItem($dur);
814 $visible =
new ilCheckboxInputGUI($this->lng->txt(
'rep_activation_limited_visibility'),
'access_visiblity');
815 $visible->
setInfo($this->lng->txt(
'svy_activation_limited_visibility_info'));
816 $visible->setChecked($this->object->getActivationVisibility());
817 $act_type->addSubItem($visible);
819 $form->addItem($act_type);
825 $section->setTitle($this->lng->txt(
'svy_settings_section_before_start'));
830 $intro->
setValue($this->object->prepareTextareaOutput($this->object->getIntroduction()));
833 $intro->setUseRte(TRUE);
834 $intro->setInfo($this->lng->txt(
"survey_introduction_info"));
835 include_once
"./Services/AdvancedEditing/classes/class.ilObjAdvancedEditing.php";
837 $intro->addPlugin(
"latex");
838 $intro->addButton(
"latex");
839 $intro->addButton(
"pastelatex");
840 $intro->setRTESupport($this->object->getId(),
"svy",
"survey", null, $hide_rte_switch);
841 $form->addItem($intro);
847 $section->setTitle($this->lng->txt(
'svy_settings_section_access'));
851 $start = $this->
object->getStartDate();
852 $enablestartingtime =
new ilCheckboxInputGUI($this->lng->txt(
"start_date"),
"enabled_start_date");
855 $enablestartingtime->setChecked($start);
858 $startingtime->setShowTime(
true);
863 $enablestartingtime->addSubItem($startingtime);
864 $form->addItem($enablestartingtime);
867 $end = $this->
object->getEndDate();
868 $enableendingtime =
new ilCheckboxInputGUI($this->lng->txt(
"end_date"),
"enabled_end_date");
871 $enableendingtime->setChecked($end);
874 $endingtime->setShowTime(
true);
879 $enableendingtime->addSubItem($endingtime);
880 $form->addItem($enableendingtime);
883 if(!$this->object->get360Mode())
886 $codes->
setInfo($this->lng->txt(
"survey_access_codes_info"));
887 $codes->setChecked(!$this->object->isAccessibleWithoutCode());
888 $form->addItem($codes);
890 if ($this->object->_hasDatasets($this->object->getSurveyId()))
892 $codes->setDisabled(
true);
900 $section->setTitle($this->lng->txt(
'svy_settings_section_question_behaviour'));
904 $show_question_titles =
new ilCheckboxInputGUI($this->lng->txt(
"svy_show_questiontitles"),
"show_question_titles");
906 $show_question_titles->setChecked($this->object->getShowQuestionTitles());
907 $form->addItem($show_question_titles);
913 $info->setTitle($this->lng->txt(
"svy_settings_section_finishing"));
914 $form->addItem($info);
916 $view_own =
new ilCheckboxInputGUI($this->lng->txt(
"svy_results_view_own"),
"view_own");
917 $view_own->
setInfo($this->lng->txt(
"svy_results_view_own_info"));
918 $view_own->setChecked($this->object->hasViewOwnResults());
919 $form->addItem($view_own);
921 $mail_own =
new ilCheckboxInputGUI($this->lng->txt(
"svy_results_mail_own"),
"mail_own");
922 $mail_own->
setInfo($this->lng->txt(
"svy_results_mail_own_info"));
923 $mail_own->setChecked($this->object->hasMailOwnResults());
924 $form->addItem($mail_own);
928 $finalstatement->
setValue($this->object->prepareTextareaOutput($this->object->getOutro()));
929 $finalstatement->setRows(10);
930 $finalstatement->setCols(80);
931 $finalstatement->setUseRte(TRUE);
933 $finalstatement->addPlugin(
"latex");
934 $finalstatement->addButton(
"latex");
935 $finalstatement->addButton(
"pastelatex");
936 $finalstatement->setRTESupport($this->object->getId(),
"svy",
"survey", null, $hide_rte_switch);
937 $form->addItem($finalstatement);
940 $mailnotification =
new ilCheckboxInputGUI($this->lng->txt(
"mailnotification"),
"mailnotification");
942 $mailnotification->
setInfo($this->lng->txt(
"svy_result_mail_notification_info"));
943 $mailnotification->setValue(1);
944 $mailnotification->setChecked($this->object->getMailNotification());
947 $mailaddresses =
new ilTextInputGUI($this->lng->txt(
"mailaddresses"),
"mailaddresses");
948 $mailaddresses->
setValue($this->object->getMailAddresses());
949 $mailaddresses->setSize(80);
950 $mailaddresses->setInfo($this->lng->txt(
'mailaddresses_info'));
951 $mailaddresses->setRequired(
true);
954 $participantdata =
new ilTextAreaInputGUI($this->lng->txt(
"mailparticipantdata"),
"mailparticipantdata");
955 $participantdata->
setValue($this->object->getMailParticipantData());
956 $participantdata->setRows(6);
957 $participantdata->setCols(80);
958 $participantdata->setUseRte(
false);
959 $participantdata->setInfo($this->lng->txt(
"mailparticipantdata_info"));
962 $placeholders = array(
963 "FIRST_NAME" =>
"firstname",
964 "LAST_NAME" =>
"lastname",
968 foreach($placeholders as $placeholder => $caption)
970 $txt[] =
"[".strtoupper($placeholder).
"]: ".$this->lng->txt($caption);
973 $participantdatainfo =
new ilNonEditableValueGUI($this->lng->txt(
"mailparticipantdata_placeholder"),
"",
true);
976 $mailnotification->addSubItem($mailaddresses);
977 $mailnotification->addSubItem($participantdata);
978 $mailnotification->addSubItem($participantdatainfo);
979 $form->addItem($mailnotification);
982 if(!$this->object->get360Mode())
986 $has_parent = $tree->checkForParentType($this->object->getRefId(),
"grp");
989 $has_parent = $tree->checkForParentType($this->object->getRefId(),
"crs");
991 $num_inv =
sizeof($this->
object->getInvitedUsers());
994 $tut =
new ilCheckboxInputGUI($this->lng->txt(
"survey_notification_tutor_setting"),
"tut");
995 $tut->
setChecked($this->object->getTutorNotificationStatus());
996 $form->addItem($tut);
998 $tut_logins = array();
999 $tuts = $this->
object->getTutorNotificationRecipients();
1002 foreach($tuts as $tut_id)
1007 $tut_logins[] = $tmp[
"login"];
1011 $tut_ids =
new ilTextInputGUI($this->lng->txt(
"survey_notification_tutor_recipients"),
"tut_ids");
1012 $tut_ids->
setDataSource($this->ctrl->getLinkTarget($this,
"doAutoComplete",
"",
true));
1013 $tut_ids->setRequired(
true);
1014 $tut_ids->setMulti(
true);
1015 $tut_ids->setMultiValues($tut_logins);
1016 $tut_ids->setValue(array_shift($tut_logins));
1017 $tut->addSubItem($tut_ids);
1019 $tut_grp =
new ilRadioGroupInputGUI($this->lng->txt(
"survey_notification_target_group"),
"tut_grp");
1021 $tut_grp->setValue($this->object->getTutorNotificationTarget());
1022 $tut->addSubItem($tut_grp);
1024 $tut_grp_crs =
new ilRadioOption($this->lng->txt(
"survey_notification_target_group_parent_course"),
1028 $tut_grp_crs->
setInfo($this->lng->txt(
"survey_notification_target_group_parent_course_inactive"));
1030 $tut_grp->addOption($tut_grp_crs);
1032 $tut_grp_inv =
new ilRadioOption($this->lng->txt(
"survey_notification_target_group_invited"),
1034 $tut_grp_inv->
setInfo(sprintf($this->lng->txt(
"survey_notification_target_group_invited_info"), $num_inv));
1035 $tut_grp->addOption($tut_grp_inv);
1042 if(!$this->object->get360Mode())
1045 $info->setTitle($this->lng->txt(
"svy_settings_section_reminders"));
1046 $form->addItem($info);
1049 $rmd->
setChecked($this->object->getReminderStatus());
1050 $form->addItem($rmd);
1052 $rmd_start =
new ilDateTimeInputGUI($this->lng->txt(
"survey_reminder_start"),
"rmd_start");
1054 $start = $this->
object->getReminderStart();
1057 $rmd_start->setDate($start);
1059 $rmd->addSubItem($rmd_start);
1061 $end = $this->
object->getReminderEnd();
1062 $rmd_end =
new ilDateTimeInputGUI($this->lng->txt(
"survey_reminder_end"),
"rmd_end");
1066 $rmd_end->setDate($end);
1068 $rmd->addSubItem($rmd_end);
1070 $rmd_freq =
new ilNumberInputGUI($this->lng->txt(
"survey_reminder_frequency"),
"rmd_freq");
1072 $rmd_freq->setSize(3);
1073 $rmd_freq->setSuffix($this->lng->txt(
"survey_reminder_frequency_days"));
1074 $rmd_freq->setValue($this->object->getReminderFrequency());
1075 $rmd_freq->setMinValue(1);
1076 $rmd->addSubItem($rmd_freq);
1078 $rmd_grp =
new ilRadioGroupInputGUI($this->lng->txt(
"survey_notification_target_group"),
"rmd_grp");
1080 $rmd_grp->setValue($this->object->getReminderTarget());
1081 $rmd->addSubItem($rmd_grp);
1083 $rmd_grp_crs =
new ilRadioOption($this->lng->txt(
"survey_notification_target_group_parent_course"),
1087 $rmd_grp_crs->
setInfo($this->lng->txt(
"survey_notification_target_group_parent_course_inactive"));
1089 $rmd_grp->addOption($rmd_grp_crs);
1091 $rmd_grp_inv =
new ilRadioOption($this->lng->txt(
"survey_notification_target_group_invited"),
1093 $rmd_grp_inv->
setInfo(sprintf($this->lng->txt(
"survey_notification_target_group_invited_info"), $num_inv));
1094 $rmd_grp->addOption($rmd_grp_inv);
1101 $results->setTitle($this->lng->txt(
"results"));
1105 if(!$this->object->get360Mode())
1107 $evaluation_access =
new ilRadioGroupInputGUI($this->lng->txt(
'evaluation_access'),
"evaluation_access");
1110 $option->
setInfo($this->lng->txt(
"svy_evaluation_access_off_info"));
1111 $evaluation_access->addOption($option);
1114 $option->
setInfo($this->lng->txt(
"svy_evaluation_access_all_info"));
1115 $evaluation_access->addOption($option);
1118 $option->
setInfo($this->lng->txt(
"svy_evaluation_access_participants_info"));
1119 $evaluation_access->addOption($option);
1121 $evaluation_access->setValue($this->object->getEvaluationAccess());
1122 $form->addItem($evaluation_access);
1125 $anonymization_options =
new ilRadioGroupInputGUI($this->lng->txt(
"survey_results_anonymization"),
"anonymization_options");
1127 $option =
new ilCheckboxOption($this->lng->txt(
"survey_results_personalized"),
"statpers");
1128 $option->
setInfo($this->lng->txt(
"survey_results_personalized_info"));
1129 $anonymization_options->addOption($option);
1131 $option =
new ilCheckboxOption($this->lng->txt(
"survey_results_anonymized"),
"statanon");
1132 $option->
setInfo($this->lng->txt(
"survey_results_anonymized_info"));
1133 $anonymization_options->addOption($option);
1134 $anonymization_options->setValue($this->object->hasAnonymizedResults()
1137 $form->addItem($anonymization_options);
1139 if ($this->object->_hasDatasets($this->object->getSurveyId()))
1141 $anonymization_options->setDisabled(
true);
1148 $ts_results->
setValue($this->object->get360Results());
1151 $option->
setInfo($this->lng->txt(
"survey_360_results_none_info"));
1152 $ts_results->addOption($option);
1155 $option->
setInfo($this->lng->txt(
"survey_360_results_own_info"));
1156 $ts_results->addOption($option);
1159 $option->
setInfo($this->lng->txt(
"survey_360_results_all_info"));
1160 $ts_results->addOption($option);
1161 $form->addItem($ts_results);
1167 include_once(
"./Services/Skill/classes/class.ilSkillManagementSettings.php");
1169 if($this->object->get360Mode() && $skmg_set->isActivated())
1172 $other->setTitle($this->lng->txt(
"other"));
1173 $form->addItem($other);
1175 $skill_service =
new ilCheckboxInputGUI($this->lng->txt(
"survey_activate_skill_service"),
"skill_service");
1176 $skill_service->
setInfo($this->lng->txt(
"survey_activate_skill_service_info"));
1177 $skill_service->setChecked($this->object->get360SkillService());
1178 $form->addItem($skill_service);
1182 $form->addCommandButton(
"saveProperties", $this->lng->txt(
"save"));
1185 if($template_settings)
1187 foreach($template_settings as $id => $item)
1191 $form->removeItemByPostVar($id);
1206 global $ilTabs, $ilHelp;
1210 $ilTabs->activateTab(
"settings");
1213 if ($this->object->get360Mode())
1215 $ilHelp->setScreenId(
"settings_360");
1225 if($this->object->getTemplate())
1227 $link = $this->ctrl->getLinkTarget($this,
"confirmResetTemplate");
1228 $link =
"<a href=\"".$link.
"\">".$this->lng->txt(
"survey_using_template_link").
"</a>";
1229 $message =
"<div style=\"margin-top:10px\">".
1230 $this->tpl->getMessageHTML(sprintf($this->lng->txt(
"survey_using_template"),
1235 $this->tpl->setContent($a_form->getHTML().$message);
1240 $fields = array(
'login',
'firstname',
'lastname',
'email');
1242 include_once
'./Services/User/classes/class.ilUserAutoComplete.php';
1244 $auto->setSearchFields($fields);
1245 $auto->setResultField(
'login');
1246 $auto->enableFieldSearchableCheck(
true);
1247 $auto->setMoreLinkAvailable(
true);
1264 $this->tpl->addBlockFile(
"ADM_CONTENT",
"adm_content",
"tpl.il_svy_svy_confirm_resettemplate.html",
"Modules/Survey");
1265 $this->tpl->setCurrentBlock(
"adm_content");
1266 $this->tpl->setVariable(
"BTN_CONFIRM_REMOVE", $this->lng->txt(
"confirm"));
1267 $this->tpl->setVariable(
"BTN_CANCEL_REMOVE", $this->lng->txt(
"cancel"));
1268 $this->tpl->setVariable(
"FORM_ACTION", $this->ctrl->getFormAction($this,
"resetTemplateObject"));
1269 $this->tpl->parseCurrentBlock();
1277 $this->
object->setTemplate(null);
1278 $this->
object->saveToDB();
1281 $this->ctrl->redirect($this,
"properties");
1292 include_once(
"Services/Form/classes/class.ilPropertyFormGUI.php");
1294 $form->setTarget(
"_top");
1295 $form->setFormAction($this->ctrl->getFormAction($this));
1296 $form->setTitle($this->lng->txt(
"import_svy"));
1298 include_once(
"./Services/Form/classes/class.ilFileInputGUI.php");
1299 $fi =
new ilFileInputGUI($this->lng->txt(
"import_file"),
"importfile");
1301 $fi->setRequired(
true);
1302 $form->addItem($fi);
1304 include_once(
"./Modules/Survey/classes/class.ilObjSurvey.php");
1306 $questionspools = $svy->getAvailableQuestionpools(
true,
true,
true);
1308 $pools =
new ilSelectInputGUI($this->lng->txt(
"select_questionpool_short"),
"spl");
1309 $pools->
setOptions(array(
""=>$this->lng->txt(
"dont_use_questionpool")) + $questionspools);
1310 $pools->setRequired(
false);
1311 $form->addItem($pools);
1313 $form->addCommandButton(
"importFile", $this->lng->txt(
"import"));
1314 $form->addCommandButton(
"cancel", $this->lng->txt(
"cancel"));
1326 $parent_id =
$_GET[
"ref_id"];
1332 $ilErr->raiseError($this->lng->txt(
"no_create_permission"));
1335 $this->lng->loadLanguageModule($new_type);
1336 $this->ctrl->setParameter($this,
"new_type", $new_type);
1339 if ($form->checkInput())
1341 include_once(
"./Modules/Survey/classes/class.ilObjSurvey.php");
1343 $newObj->setType($new_type);
1344 $newObj->setTitle(
"dummy");
1345 $newObj->setDescription(
"dummy");
1346 $newObj->create(
true);
1350 $error = $newObj->importObject($_FILES[
"importfile"], $form->getInput(
"spl"));
1354 $this->
ilias->raiseError($error, $this->
ilias->error_obj->MESSAGE);
1360 "&baseClass=ilObjSurveyGUI");
1363 include_once
"Services/Administration/classes/class.ilSettingsTemplate.php";
1368 $tpl->addJavaScript(
"./Modules/Scorm2004/scripts/questions/jquery.js");
1371 $this->tpl->setCurrentBlock(
"template_option");
1372 $this->tpl->setVariable(
"VAL_TEMPLATE_OPTION",
"");
1373 $this->tpl->setVariable(
"TXT_TEMPLATE_OPTION", $this->lng->txt(
"none"));
1374 $this->tpl->parseCurrentBlock();
1376 foreach($templates as $item)
1378 $this->tpl->setCurrentBlock(
"template_option");
1379 $this->tpl->setVariable(
"VAL_TEMPLATE_OPTION", $item[
"id"]);
1380 $this->tpl->setVariable(
"TXT_TEMPLATE_OPTION", $item[
"title"]);
1381 $this->tpl->parseCurrentBlock();
1383 $desc = str_replace(
"\n",
"", nl2br($item[
"description"]));
1384 $desc = str_replace(
"\r",
"", $desc);
1386 $this->tpl->setCurrentBlock(
"js_data");
1387 $this->tpl->setVariable(
"JS_DATA_ID", $item[
"id"]);
1388 $this->tpl->setVariable(
"JS_DATA_TEXT", $desc);
1389 $this->tpl->parseCurrentBlock();
1392 $this->tpl->setCurrentBlock(
"templates");
1393 $this->tpl->setVariable(
"TXT_TEMPLATE", $this->lng->txt(
"svy_settings_template"));
1394 $this->tpl->parseCurrentBlock();
1399 $form->setValuesByPost();
1400 $tpl->setContent($form->getHtml());
1408 global $ilTabs, $ilToolbar;
1411 $ilTabs->activateTab(
"export");
1413 include_once
"Services/UIComponent/Button/classes/class.ilLinkButton.php";
1415 $button->setCaption(
"svy_create_export_file");
1416 $button->setUrl($this->ctrl->getLinkTarget($this,
"createExportFile"));
1417 $ilToolbar->addButtonInstance($button);
1419 $export_dir = $this->
object->getExportDirectory();
1420 $export_files = $this->
object->getExportFiles($export_dir);
1422 if(count($export_files) > 0)
1424 foreach($export_files as $exp_file)
1426 $file_arr = explode(
"__", $exp_file);
1428 array_push(
$data, array(
1429 'file' => $exp_file,
1430 'size' => filesize($export_dir.
"/".$exp_file),
1436 include_once
"./Modules/Survey/classes/tables/class.ilSurveyExportTableGUI.php";
1438 $table_gui->setData(
$data);
1439 $this->tpl->setVariable(
'ADM_CONTENT', $table_gui->getHTML());
1448 include_once(
"./Modules/Survey/classes/class.ilSurveyExport.php");
1450 $survey_exp->buildExportFile();
1451 $this->ctrl->redirect($this,
"export");
1459 if(!isset(
$_POST[
"file"]))
1462 $this->ctrl->redirect($this,
"export");
1465 if (count(
$_POST[
"file"]) > 1)
1468 $this->ctrl->redirect($this,
"export");
1473 $export_dir = $this->
object->getExportDirectory();
1474 include_once
"./Services/Utilities/classes/class.ilUtil.php";
1486 $ilTabs->activateTab(
"export");
1488 if (!isset(
$_POST[
"file"]))
1491 $this->ctrl->redirect($this,
"export");
1496 $export_dir = $this->
object->getExportDirectory();
1497 $export_files = $this->
object->getExportFiles($export_dir);
1499 if (count(
$_POST[
"file"]) > 0)
1501 foreach (
$_POST[
"file"] as $exp_file)
1503 $file_arr = explode(
"__", $exp_file);
1505 array_push(
$data, array(
1506 'file' => $exp_file,
1507 'size' => filesize($export_dir.
"/".$exp_file),
1513 include_once
"./Modules/Survey/classes/tables/class.ilSurveyExportTableGUI.php";
1515 $table_gui->setData(
$data);
1516 $this->tpl->setVariable(
'ADM_CONTENT', $table_gui->getHTML());
1526 $this->ctrl->redirect($this,
"export");
1535 $export_dir = $this->
object->getExportDirectory();
1538 $file = basename($file);
1540 $exp_file = $export_dir.
"/".
$file;
1541 $exp_dir = $export_dir.
"/".substr($file, 0, strlen($file) - 4);
1542 if (@is_file($exp_file))
1546 if (@is_dir($exp_dir))
1548 include_once
"./Services/Utilities/classes/class.ilUtil.php";
1553 $this->ctrl->redirect($this,
"export");
1568 $this->ctrl->setCmd(
"showSummary");
1569 $this->ctrl->setCmdClass(
"ilinfoscreengui");
1578 global $ilAccess, $ilTabs,
$ilUser, $ilToolbar;
1580 if (!$this->external_rater_360 &&
1581 !$ilAccess->checkAccess(
"visible",
"", $this->ref_id))
1583 $this->
ilias->raiseError($this->lng->txt(
"msg_no_perm_read"),$this->
ilias->error_obj->MESSAGE);
1586 $ilTabs->activateTab(
"info_short");
1588 include_once
"./Modules/Survey/classes/class.ilSurveyExecutionGUI.php";
1591 include_once(
"./Services/InfoScreen/classes/class.ilInfoScreenGUI.php");
1593 $info->enablePrivateNotes();
1596 $canStart = $this->
object->canStartSurvey(null, $this->external_rater_360);
1598 $showButtons = $canStart[
"result"];
1601 if($canStart[
"edit_settings"] &&
1602 $ilAccess->checkAccess(
"write",
"", $this->ref_id))
1604 $canStart[
"messages"][] =
"<a href=\"".$this->ctrl->getLinkTarget($this,
"properties").
"\">» ".
1605 $this->lng->txt(
"survey_edit_settings").
"</a>";
1610 $big_button =
false;
1614 $is_appraisee =
false;
1615 if($this->object->get360Mode() &&
1616 $this->
object->isAppraisee($ilUser->getId()))
1618 $info->addSection($this->lng->txt(
"survey_360_appraisee_info"));
1620 $appr_data = $this->
object->getAppraiseesData();
1621 $appr_data = $appr_data[$ilUser->getId()];
1622 $info->addProperty($this->lng->txt(
"survey_360_raters_status_info"), $appr_data[
"finished"]);
1624 if(!$appr_data[
"closed"])
1626 include_once
"Services/UIComponent/Button/classes/class.ilLinkButton.php";
1628 $button->setCaption(
"survey_360_appraisee_close_action");
1629 $button->setUrl($this->ctrl->getLinkTargetByClass(
"ilsurveyparticipantsgui",
"confirmappraiseeclose"));
1630 $close_button_360 =
'<div>'.$button->render().
'</div>';
1632 $txt =
"survey_360_appraisee_close_action_info";
1633 if($this->object->get360SkillService())
1637 $info->addProperty($this->lng->txt(
"status"),
1638 $close_button_360.$this->lng->txt(
$txt));
1645 $info->addProperty($this->lng->txt(
"status"),
1646 sprintf($this->lng->txt(
"survey_360_appraisee_close_action_status"),
1650 $is_appraisee =
true;
1657 $code_input =
false;
1658 $anonymous_code =
$_POST[
"anonymous_id"];
1659 if ($anonymous_code)
1663 if(!$this->object->checkSurveyCode($anonymous_code))
1665 $anonymous_code = null;
1670 $this->
object->bindSurveyCodeToUser($ilUser->getId(), $anonymous_code);
1673 if ($anonymous_code)
1675 $_SESSION[
"anonymous_id"][$this->
object->getId()] = $anonymous_code;
1679 $anonymous_code =
$_SESSION[
"anonymous_id"][$this->
object->getId()];
1687 if($this->object->getAnonymize() && !$anonymous_code)
1689 $anonymous_code = $this->
object->findCodeForUser($ilUser->getId());
1693 $participant_status = $this->
object->getUserSurveyExecutionStatus($anonymous_code);
1694 if($participant_status)
1696 $anonymous_code = $participant_status[
"code"];
1697 $participant_status = $participant_status[
"runs"];
1701 if(!$this->object->isAccessibleWithoutCode() &&
1704 (!$anonymous_code || !$this->
object->isAnonymousKey($anonymous_code)))
1706 $anonymous_code = null;
1711 $_SESSION[
"anonymous_id"][$this->
object->getId()] = $anonymous_code;
1714 if(!$is_appraisee &&
1716 !$this->object->isAccessibleWithoutCode())
1718 $info->setFormAction($this->ctrl->getFormAction($this,
"infoScreen"));
1719 $info->addSection($this->lng->txt(
"anonymization"));
1720 $info->addProperty(
"", $this->lng->txt(
"anonymize_anonymous_introduction"));
1721 $info->addPropertyTextinput($this->lng->txt(
"enter_anonymous_id"),
"anonymous_id",
"", 8,
"infoScreen", $this->lng->txt(
"submit"),
true);
1726 if(!$this->object->get360Mode())
1730 $info->addHiddenElement(
"anonymous_id", $anonymous_code);
1733 $survey_started = $this->
object->isSurveyStarted($ilUser->getId(), $anonymous_code);
1734 if ($survey_started === 1)
1736 if($ilUser->getId() != ANONYMOUS_USER_ID)
1738 if($this->object->hasViewOwnResults())
1740 include_once
"Services/UIComponent/Button/classes/class.ilLinkButton.php";
1742 $button->setCaption(
"svy_view_own_results");
1743 $button->setUrl($this->ctrl->getLinkTarget($this,
"viewUserResults"));
1744 $ilToolbar->addButtonInstance($button);
1747 if($this->object->hasMailOwnResults())
1749 if($this->object->hasViewOwnResults())
1751 $ilToolbar->addSeparator();
1754 require_once
"Services/Form/classes/class.ilTextInputGUI.php";
1757 $mail->setValue($ilUser->getEmail());
1758 $ilToolbar->addInputItem($mail,
true);
1760 $ilToolbar->setFormAction($this->ctrl->getFormAction($this,
"mailUserResults"));
1762 include_once
"Services/UIComponent/Button/classes/class.ilSubmitButton.php";
1764 $button->setCaption(
"svy_mail_own_results");
1765 $button->setCommand(
"mailUserResults");
1766 $ilToolbar->addButtonInstance($button);
1772 elseif ($survey_started === 0)
1774 $big_button = array(
"resume", $this->lng->txt(
"resume_survey"));
1776 elseif ($survey_started === FALSE)
1778 $big_button = array(
"start", $this->lng->txt(
"start_survey"));
1784 $appr_ids = array();
1789 $anonymous_id = $this->
object->getAnonymousIdByCode($anonymous_code);
1792 $appr_ids = $this->
object->getAppraiseesToRate(0, $anonymous_id);
1798 if(!$appr_ids && $ilUser->getId() != ANONYMOUS_USER_ID)
1800 $appr_ids = $this->
object->getAppraiseesToRate($ilUser->getId());
1803 if(
sizeof($appr_ids))
1806 $active_appraisees = array();
1807 if($participant_status)
1809 foreach($participant_status as $item)
1811 $active_appraisees[$item[
"appr_id"]] = $item[
"finished"];
1817 foreach($appr_ids as $appr_id)
1819 if($this->object->isAppraiseeClosed($appr_id))
1822 $list[$appr_id] = $this->lng->txt(
"survey_360_appraisee_is_closed");
1824 else if(array_key_exists($appr_id, $active_appraisees))
1827 if($active_appraisees[$appr_id])
1829 $list[$appr_id] = $this->lng->txt(
"already_completed_survey");
1834 $list[$appr_id] = array(
"resume", $this->lng->txt(
"resume_survey"));
1840 $list[$appr_id] = array(
"start", $this->lng->txt(
"start_survey"));
1844 $info->addSection($this->lng->txt(
"survey_360_rate_other_appraisees"));
1846 include_once
"Services/User/classes/class.ilUserUtil.php";
1847 foreach($list as $appr_id => $item)
1851 if(!is_array($item))
1853 $info->addProperty($appr_name, $item);
1857 $this->ctrl->setParameter($output_gui,
"appr_id", $appr_id);
1858 $href = $this->ctrl->getLinkTarget($output_gui, $item[0]);
1859 $this->ctrl->setParameter($output_gui,
"appr_id",
"");
1861 include_once
"Services/UIComponent/Button/classes/class.ilLinkButton.php";
1863 $button->setCaption($item[1],
false);
1864 $button->setUrl($href);
1865 $big_button_360 =
'<div>'.$button->render().
'</div>';
1867 $info->addProperty($appr_name, $big_button_360);
1871 else if(!$is_appraisee)
1878 if($this->object->get360Mode() &&
1879 $this->
object->get360SelfAppraisee() &&
1880 !$this->
object->isAppraisee($ilUser->getId()) &&
1881 $ilUser->getId() != ANONYMOUS_USER_ID)
1883 $link = $this->ctrl->getLinkTargetByClass(
"ilsurveyparticipantsgui",
"addSelfAppraisee");
1884 $link =
'<a href="'.$link.
'">'.$this->lng->txt(
"survey_360_add_self_appraisee").
'</a>';
1885 $info->addProperty(
" ", $link);
1891 $ilToolbar->setFormAction($this->ctrl->getFormAction($output_gui,
"infoScreen"));
1893 include_once
"Services/UIComponent/Button/classes/class.ilSubmitButton.php";
1895 $button->setCaption($big_button[1],
false);
1896 $button->setCommand($big_button[0]);
1897 $button->setPrimary(
true);
1898 $ilToolbar->addButtonInstance($button);
1900 $ilToolbar->setCloseFormTag(
false);
1901 $info->setOpenFormTag(
false);
1910 if (strlen($this->object->getIntroduction()))
1912 $introduction = $this->
object->getIntroduction();
1913 $info->addSection($this->lng->txt(
"introduction"));
1914 $info->addProperty(
"", $this->object->prepareTextareaOutput($introduction).
1915 "<br />".$info->getHiddenToggleButton());
1919 $info->addSection(
"");
1920 $info->addProperty(
"", $info->getHiddenToggleButton());
1923 $info->hideFurtherSections(
false);
1925 if(!$this->object->get360Mode())
1927 $info->addSection($this->lng->txt(
"svy_general_properties"));
1929 $info->addProperty($this->lng->txt(
"survey_results_anonymization"),
1930 !$this->
object->hasAnonymizedResults()
1931 ? $this->lng->txt(
"survey_results_personalized_info")
1932 : $this->lng->txt(
"survey_results_anonymized_info"));
1934 include_once
"./Modules/Survey/classes/class.ilObjSurveyAccess.php";
1935 if ($ilAccess->checkAccess(
"write",
"", $this->ref_id) ||
1938 $info->addProperty($this->lng->txt(
"evaluation_access"), $this->lng->txt(
"evaluation_access_info"));
1942 $info->addMetaDataSections($this->object->getId(),0, $this->
object->getType());
1944 $this->ctrl->forwardCommand($info);
1950 switch ($this->ctrl->getCmd())
1956 case "redirectQuestion":
1957 $ilLocator->addItem($this->object->getTitle(), $this->ctrl->getLinkTarget($this,
"infoScreen"),
"",
$_GET[
"ref_id"]);
1960 case "checkEvaluationAccess":
1961 case "evaluationdetails":
1962 case "evaluationuser":
1963 $ilLocator->addItem($this->object->getTitle(), $this->ctrl->getLinkTargetByClass(
"ilsurveyevaluationgui",
"evaluation"),
"",
$_GET[
"ref_id"]);
1972 $ilLocator->addItem($this->object->getTitle(), $this->ctrl->getLinkTarget($this,
"infoScreen"),
"",
$_GET[
"ref_id"]);
1975 $ilLocator->addItem($this->object->getTitle(), $this->ctrl->getLinkTarget($this,
""),
"",
$_GET[
"ref_id"]);
1982 $q_id = (int)
$_GET[
"q_id"];
1983 include_once
"./Modules/SurveyQuestionPool/classes/class.SurveyQuestion.php";
1985 $this->ctrl->setParameterByClass($q_type,
"q_id", $q_id);
1987 $this->ctrl->getLinkTargetByClass(array(
"ilSurveyEditorGUI", $q_type),
"editQuestion"));
2000 public static function _goto($a_target, $a_access_code =
"")
2005 include_once
"./Services/Utilities/classes/class.ilUtil.php";
2006 if (strlen($a_access_code))
2009 $_GET[
"baseClass"] =
"ilObjSurveyGUI";
2010 $_GET[
"cmd"] =
"infoScreen";
2011 $_GET[
"ref_id"] = $a_target;
2012 include(
"ilias.php");
2016 if ($ilAccess->checkAccess(
"read",
"", $a_target))
2018 $_GET[
"baseClass"] =
"ilObjSurveyGUI";
2019 $_GET[
"cmd"] =
"infoScreen";
2020 $_GET[
"ref_id"] = $a_target;
2021 include(
"ilias.php");
2024 else if ($ilAccess->checkAccess(
"read",
"", ROOT_FOLDER_ID))
2031 $ilErr->raiseError($lng->txt(
"msg_no_perm_read_lm"), $ilErr->FATAL);
2036 $rtpl =
new ilTemplate(
"tpl.svy_view_user_results.html",
true,
true,
"Modules/Survey");
2038 $show_titles = (bool)$this->object->getShowQuestionTitles();
2040 foreach($this->object->getSurveyPages() as $page)
2042 if(count($page) > 0)
2045 if(count($page) > 1)
2047 if((
bool)$page[0][
"questionblock_show_blocktitle"])
2049 $rtpl->setVariable(
"BLOCK_TITLE", trim($page[0][
"questionblock_title"]));
2054 foreach($page as $question)
2056 $question_gui = $this->
object->getQuestionGUI($question[
"type_tag"], $question[
"question_id"]);
2057 if(is_object($question_gui))
2059 $rtpl->setCurrentBlock(
"question_bl");
2062 if(strlen($question[
"heading"]))
2064 $rtpl->setVariable(
"HEADING", trim($question[
"heading"]));
2067 $rtpl->setVariable(
"QUESTION_DATA",
2068 $question_gui->getPrintView(
2070 (
bool)$question[
"questionblock_show_questiontext"],
2071 $this->object->getId(),
2072 $this->
object->loadWorkingData($question[
"question_id"], $a_active_id)
2076 $rtpl->parseCurrentBlock();
2080 $rtpl->setCurrentBlock(
"block_bl");
2081 $rtpl->parseCurrentBlock();
2085 return $rtpl->get();
2092 $anonymous_code =
$_SESSION[
"anonymous_id"][$this->
object->getId()];
2093 $active_id = $this->
object->getActiveID($ilUser->getId(), $anonymous_code, 0);
2094 if($this->object->isSurveyStarted($ilUser->getId(), $anonymous_code) !== 1 ||
2097 $this->ctrl->redirect($this,
"infoScreen");
2100 $ilTabs->clearTargets();
2101 $ilTabs->setBackTarget($this->lng->txt(
"btn_back"),
2102 $this->ctrl->getLinkTarget($this,
"infoScreen"));
2105 $tpl->setContent($html);
2112 $show_titles = (bool)$this->object->getShowQuestionTitles();
2114 foreach($this->object->getSurveyPages() as $page)
2116 if(count($page) > 0)
2118 $res[] =
"\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n";
2121 if(count($page) > 1)
2123 if((
bool)$page[0][
"questionblock_show_blocktitle"])
2125 $res[$this->lng->txt(
"questionblock")] = trim($page[0][
"questionblock_title"]).
"\n";
2131 $page_res = array();
2133 foreach($page as $question)
2135 $question_gui = $this->
object->getQuestionGUI($question[
"type_tag"], $question[
"question_id"]);
2136 if(is_object($question_gui))
2138 $question_parts = array();
2141 if(strlen($question[
"heading"]))
2143 $question_parts[$this->lng->txt(
"heading")] = trim($question[
"heading"]);
2148 $question_parts[$this->lng->txt(
"title")] = trim($question[
"title"]);
2151 if((
bool)$question[
"questionblock_show_questiontext"])
2153 $question_parts[$this->lng->txt(
"question")] = trim(strip_tags($question_gui->object->getQuestionText()));
2156 $answers = $question_gui->getParsedAnswers(
2157 $this->object->loadWorkingData($question[
"question_id"], $a_active_id),
2161 if(
sizeof($answers))
2164 if(
sizeof($answers) > 1 ||
2165 get_class($question_gui) ==
"SurveyTextQuestionGUI")
2171 foreach($answers as $answer)
2174 if($answer[
"textanswer"])
2176 $text =
' ("'.$answer[
"textanswer"].
'")';
2178 if(!isset($answer[
"cols"]))
2180 if(isset($answer[
"title"]))
2182 $parts[] = $answer[
"title"].$text;
2184 else if(isset($answer[
"value"]))
2186 $parts[] = $answer[
"value"];
2190 $parts[] = substr($text, 2, -1);
2197 foreach($answer[
"cols"] as $col)
2199 $tmp[] = $col[
"title"];
2201 $parts[] = $answer[
"title"].
": ".implode(
", ", $tmp).$text;
2205 $question_parts[$this->lng->txt(
"answer")] =
2206 ($multiline ?
"\n" :
"").implode(
"\n", $parts);
2210 foreach($question_parts as $type => $value)
2212 $tmp[] = $type.
": ".$value;
2214 $page_res[] = implode(
"\n", $tmp);
2218 $res[] = implode(
"\n\n-------------------------------\n\n", $page_res);
2222 $res[] =
"\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n";
2224 return implode(
"\n",
$res);
2231 $finished = $this->
object->getSurveyParticipants(array($a_active_id));
2232 $finished = array_pop($finished);
2235 require_once
"Services/Mail/classes/class.ilMail.php";
2236 require_once
"Services/Link/classes/class.ilLink.php";
2239 $body .= $this->lng->txt(
"svy_mail_own_results_body").
"\n";
2240 $body .=
"\n".$this->lng->txt(
"obj_svy").
": ".$this->
object->getTitle().
"\n";
2242 $body .=
"\n".$this->lng->txt(
"survey_results_finished").
": ".$finished.
"\n\n";
2249 require_once
"Services/Mail/classes/class.ilMail.php";
2250 $mail =
new ilMail(ANONYMOUS_USER_ID);
2251 $mail->sendMimeMail(
2255 sprintf($this->lng->txt(
"svy_mail_own_results_subject"), $this->
object->getTitle()),
2266 $anonymous_code =
$_SESSION[
"anonymous_id"][$this->
object->getId()];
2267 $active_id = $this->
object->getActiveID($ilUser->getId(), $anonymous_code, 0);
2268 if($this->object->isSurveyStarted($ilUser->getId(), $anonymous_code) !== 1 ||
2271 $this->ctrl->redirect($this,
"infoScreen");
2274 $recipient =
$_POST[
"mail"];
2277 $this->ctrl->redirect($this,
"infoScreen");
2283 $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.
setDataSource($href, $a_delimiter=null)
set datasource link for js autocomplete
confirmDeleteExportFileObject()
confirmation screen for export file deletion
static _goto($a_target, $a_access_code="")
redirect script
importFileObject()
form for new survey object import
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)
_getTitle($question_id)
Returns the question title of a question with a given id.
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.
handleWriteAccess()
Checks for write access and returns to the parent object.
Class ilObject Basic functions for all objects.
addObserver(&$a_class, $a_method, $a_element)
setValue($a_value)
Set Value.
static _gotoRepositoryRoot($a_raise_error=false)
Goto repository root.
static is_email($a_email)
This preg-based function checks whether an e-mail address is formally valid.
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
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)
Default behaviour is:
Auto completion class for user lists.
getTabs(&$tabs_gui)
adds tabs to tab gui object
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
addDidacticTemplateOptions(array &$a_options)
afterSave(ilObject $a_new_object)
save object public
const ANONYMIZE_FREEACCESS
Export class for surveys.
const NOTIFICATION_PARENT_COURSE
Class Mail 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...
static formatDate(ilDateTime $date)
Format a date public.
setCols($a_cols)
Set Cols.
static getSalutation($a_usr_id, $a_language=null)
Get salutation.
redirection script todo: (a better solution should control the processing via a xml file) ...
deleteExportFileObject()
delete export files
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
static lookupTitle($a_id)
Lookup title.
static sendQuestion($a_info="", $a_keep=false)
Send Question to Screen.
const NOTIFICATION_INVITED_USERS
static deliverFile($a_file, $a_filename, $a_mime='', $isInline=false, $removeAfterDelivery=false, $a_exit_after=true)
deliver file for download via browser.
infoScreen()
show information screen
prepareOutput()
prepare output
evaluationObject()
Redirects the evaluation object call to the ilSurveyEvaluationGUI class.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
const EVALUATION_ACCESS_ALL
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.
_getQuestionType($question_id)
Returns the question type of a question with a given id.
& _getUsedHTMLTags($a_module="")
Returns an array of all allowed HTML tags for text editing.
_hasEvaluationAccess($a_obj_id, $user_id)
This class represents a text area property in a property form.
getCreationMode()
get creation mode
getRefId()
get reference id public
putObjectInTree(ilObject $a_obj, $a_parent_node_id=null)
Add object to tree at given position.
getDidacticTemplateVar($a_type)
Get didactic template setting from creation screen.
New PermissionGUI (extends from old ilPermission2GUI) RBAC related output.
if($_REQUEST['ilias_path']) define('ILIAS_HTTP_PATH' $_REQUEST['ilias_path']
Survey skill determination GUI class.
cancelDeleteExportFileObject()
cancel deletion of export files
Survey evaluation graphical output.
getUserResultsTable($a_active_id)
createExportFileObject()
create export file
setValue($a_value)
Set Value.
static redirect($a_script)
http redirect to other script
addHeaderAction()
Add header action menu.
static delDir($a_dir, $a_clean_only=false)
removes a dir and all its content (subdirs and files) recursively
checkPermissionBool($a_perm, $a_cmd="", $a_type="", $a_ref_id=null)
Check permission.
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 getter for the installation signature.
downloadExportFileObject()
download export file
initPropertiesForm()
Init survey settings form.