4include_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");
542 $md_section = $md_obj->getGeneral();
546 $md_section->update();
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");
726 $md_section = $md_obj->getGeneral();
729 $title->setRequired(
true);
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";
805 $dur->setShowTime(
true);
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");
853 $enablestartingtime->setValue(1);
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");
869 $enableendingtime->setValue(1);
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");
905 $show_question_titles->setValue(1);
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);
974 $participantdatainfo->setValue(
$txt);
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");
1020 $tut_grp->setRequired(
true);
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");
1053 $rmd_start->setRequired(
true);
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");
1063 $rmd_end->enableDateActivation(
"",
"rmd_end_tgl", (
bool)$end);
1066 $rmd_end->setDate($end);
1068 $rmd->addSubItem($rmd_end);
1070 $rmd_freq =
new ilNumberInputGUI($this->lng->txt(
"survey_reminder_frequency"),
"rmd_freq");
1071 $rmd_freq->setRequired(
true);
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");
1079 $rmd_grp->setRequired(
true);
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");
1300 $fi->setSuffixes(array(
"zip"));
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();
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))
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");
_getQuestionType($question_id)
Returns the question type of a question with a given id.
_getTitle($question_id)
Returns the question title of a question with a given id.
This class represents an option in a checkbox group.
static getInstanceFromAjaxCall()
(Re-)Build instance from ajax call
static setUseRelativeDates($a_status)
set use relative dates
static formatDate(ilDateTime $date)
Format a date @access public.
@classDescription Date and time handling
static _getLink($a_ref_id, $a_type='', $a_params=array(), $append="")
Class Mail this class handles base functions for mail handling.
static getSalutation($a_usr_id, $a_language=null)
Get salutation.
static _getInstallationSignature()
Static getter for the installation signature.
This class represents a non editable value in a property form.
& _getUsedHTMLTags($a_module="")
Returns an array of all allowed HTML tags for text editing.
_hasEvaluationAccess($a_obj_id, $user_id)
propertiesObject(ilPropertyFormGUI $a_form=null)
Display and fill the properties form of the test.
deleteExportFileObject()
delete export files
afterSave(ilObject $a_new_object)
save object @access public
initPropertiesForm()
Init survey settings form.
createExportFileObject()
create export file
infoScreenObject()
this one is called from the info button in the repository not very nice to set cmdClass/Cmd manually,...
getTabs(&$tabs_gui)
adds tabs to tab gui object
static _goto($a_target, $a_access_code="")
redirect script
sendUserResultsMail($a_active_id, $a_recipient)
initImportForm($a_new_type)
Init object import form.
savePropertiesObject()
Save the survey properties.
getUserResultsPlain($a_active_id)
addDidacticTemplateOptions(array &$a_options)
Add custom templates.
cancelDeleteExportFileObject()
cancel deletion of export files
downloadExportFileObject()
download export file
executeCommand()
execute command
infoScreen()
show information screen
evaluationObject()
Redirects the evaluation object call to the ilSurveyEvaluationGUI class.
resetTemplateObject()
Enable all settings - remove template.
importFileObject()
form for new survey object import
addLocatorItems()
should be overwritten to add object specific items (repository items are preloaded)
handleWriteAccess()
Checks for write access and returns to the parent object.
confirmDeleteExportFileObject()
confirmation screen for export file deletion
confirmResetTemplateObject()
Enable all settings - Confirmation.
getUserResultsTable($a_active_id)
const EVALUATION_ACCESS_PARTICIPANTS
const NOTIFICATION_INVITED_USERS
const NOTIFICATION_PARENT_COURSE
const EVALUATION_ACCESS_ALL
const ANONYMIZE_FREEACCESS
const EVALUATION_ACCESS_OFF
static validateExternalRaterCode($a_ref_id, $a_code)
static _lookupId($a_user_str)
lookup id by login
static _lookupName($a_user_id)
lookup user name
GUI class for the workflow of copying objects.
Class ilObjectGUI Basic methods of all Output classes.
getDidacticTemplateVar($a_type)
Get didactic template setting from creation screen.
putObjectInTree(ilObject $a_obj, $a_parent_node_id=null)
Add object to tree at given position.
prepareOutput()
prepare output
static _gotoRepositoryRoot($a_raise_error=false)
Goto repository root.
getCreationMode()
get creation mode
checkPermissionBool($a_perm, $a_cmd="", $a_type="", $a_ref_id=null)
Check permission.
addHeaderAction()
Add header action menu.
Class ilObject Basic functions for all objects.
static _lookupObjId($a_id)
static _lookupTitle($a_id)
lookup object title
getRefId()
get reference id @access public
static _getAllReferences($a_id)
get all reference ids of object
New PermissionGUI (extends from old ilPermission2GUI) RBAC related output.
This class represents an option in a radio group.
Settings template application class.
static getAllSettingsTemplates($a_type, $a_include_auto_generated=false)
Get all settings templates of type.
static lookupTitle($a_id)
Lookup title.
Skill management settings.
Class ilSurveyConstraintsGUI.
Survey evaluation graphical output.
Survey execution graphical output.
Export class for surveys.
Class ilSurveyParticipantsGUI.
Survey skill determination GUI class.
Survey skill service GUI class.
special template class to simplify handling of ITX/PEAR
This class represents a text area property in a property form.
This class represents a text property in a property form.
Auto completion class for user lists.
static getNamePresentation($a_user_id, $a_user_image=false, $a_profile_link=false, $a_profile_back_link="", $a_force_first_lastname=false, $a_omit_login=false, $a_sortable=true)
Default behaviour is:
static is_email($a_email)
This preg-based function checks whether an e-mail address is formally valid.
static delDir($a_dir, $a_clean_only=false)
removes a dir and all its content (subdirs and files) recursively
static sendQuestion($a_info="", $a_keep=false)
Send Question to Screen.
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
static getStyleSheetLocation($mode="output", $a_css_name="", $a_css_location="")
get full style sheet file name (path inclusive) of current user
static redirect($a_script)
http redirect to other script
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
static deliverFile($a_file, $a_filename, $a_mime='', $isInline=false, $removeAfterDelivery=false, $a_exit_after=true)
deliver file for download via browser.
redirection script todo: (a better solution should control the processing via a xml file)
if($_REQUEST['ilias_path']) define('ILIAS_HTTP_PATH' $_REQUEST['ilias_path']