4include_once
"./Services/Object/classes/class.ilObjectGUI.php";
30 $lng->loadLanguageModule(
"survey");
32 $this->ctrl->saveParameter($this,
"ref_id");
34 parent::__construct(
"", (
int)
$_GET[
"ref_id"],
true,
false);
39 global $ilAccess, $ilNavigationHistory,
$ilErr, $ilTabs;
41 $this->external_rater_360 =
false;
42 if(!$this->creation_mode &&
43 $this->object->get360Mode() &&
44 $_SESSION[
"anonymous_id"][$this->object->getId()] &&
46 $_SESSION[
"anonymous_id"][$this->object->getId()]))
48 $this->external_rater_360 =
true;
51 if(!$this->external_rater_360)
53 if (!$ilAccess->checkAccess(
"visible",
"", $this->ref_id) &&
54 !$ilAccess->checkAccess(
"read",
"", $this->ref_id))
56 $ilErr->raiseError($this->lng->txt(
"permission_denied"),
$ilErr->MESSAGE);
61 $ilAccess->checkAccess(
"read",
"", $this->ref_id))
63 $this->ctrl->setParameterByClass(
"ilobjsurveygui",
"ref_id", $this->ref_id);
64 $link = $this->ctrl->getLinkTargetByClass(
"ilobjsurveygui",
"");
65 $ilNavigationHistory->addItem($this->ref_id, $link,
"svy");
69 $cmd = $this->ctrl->getCmd(
"properties");
72 if (
$cmd ==
"saveTags")
74 $this->ctrl->setCmdClass(
"ilinfoscreengui");
78 if(!$this->ctrl->getCmdClass() &&
$cmd ==
"questionsrepo")
81 $this->ctrl->setCmd(
"questions");
82 $this->ctrl->setCmdClass(
"ilsurveyeditorgui");
85 $next_class = $this->ctrl->getNextClass($this);
86 $this->ctrl->setReturn($this,
"properties");
92 case "ilinfoscreengui":
93 if(!in_array($this->ctrl->getCmdClass(),
94 array(
'ilpublicuserprofilegui',
'ilobjportfoliogui')))
102 $ilTabs->clearTargets();
103 include_once(
"./Services/InfoScreen/classes/class.ilInfoScreenGUI.php");
105 $this->ctrl->forwardCommand(
$info);
109 case 'ilobjectmetadatagui':
111 $ilTabs->activateTab(
"meta_data");
113 include_once
'Services/Object/classes/class.ilObjectMetaDataGUI.php';
115 $this->ctrl->forwardCommand($md_gui);
118 case "ilsurveyevaluationgui":
119 $ilTabs->activateTab(
"svy_results");
121 include_once(
"./Modules/Survey/classes/class.ilSurveyEvaluationGUI.php");
123 $this->ctrl->forwardCommand($eval_gui);
126 case "ilsurveyexecutiongui":
127 $ilTabs->clearTargets();
128 include_once(
"./Modules/Survey/classes/class.ilSurveyExecutionGUI.php");
130 $this->ctrl->forwardCommand($exec_gui);
133 case 'ilpermissiongui':
134 $ilTabs->activateTab(
"perm_settings");
136 include_once(
"Services/AccessControl/classes/class.ilPermissionGUI.php");
138 $this->ctrl->forwardCommand($perm_gui);
141 case 'ilobjectcopygui':
142 include_once
'./Services/Object/classes/class.ilObjectCopyGUI.php';
145 $this->ctrl->forwardCommand($cp);
148 case "ilcommonactiondispatchergui":
149 include_once(
"Services/Object/classes/class.ilCommonActionDispatcherGUI.php");
151 $this->ctrl->forwardCommand($gui);
155 case 'ilsurveyskillgui':
156 $ilTabs->activateTab(
"survey_competences");
157 include_once(
"./Modules/Survey/classes/class.ilSurveySkillGUI.php");
159 $this->ctrl->forwardCommand($gui);
162 case 'ilsurveyskilldeterminationgui':
163 $ilTabs->activateTab(
"maintenance");
164 include_once(
"./Modules/Survey/classes/class.ilSurveySkillDeterminationGUI.php");
166 $this->ctrl->forwardCommand($gui);
169 case 'ilsurveyeditorgui':
171 $ilTabs->activateTab(
"survey_questions");
172 include_once(
"./Modules/Survey/classes/class.ilSurveyEditorGUI.php");
174 $this->ctrl->forwardCommand($gui);
177 case 'ilsurveyconstraintsgui':
179 $ilTabs->activateTab(
"constraints");
180 include_once(
"./Modules/Survey/classes/class.ilSurveyConstraintsGUI.php");
182 $this->ctrl->forwardCommand($gui);
185 case 'ilsurveyparticipantsgui':
186 if(!$this->object->get360Mode())
188 $ilTabs->activateTab(
"maintenance");
192 $ilTabs->activateTab(
"survey_360_appraisees");
194 include_once(
"./Modules/Survey/classes/class.ilSurveyParticipantsGUI.php");
196 $this->ctrl->forwardCommand($gui);
199 case "illearningprogressgui":
200 $ilTabs->activateTab(
"learning_progress");
201 include_once(
"./Services/Tracking/classes/class.ilLearningProgressGUI.php");
203 $this->object->getRefId());
204 $this->ctrl->forwardCommand($new_gui);
208 $ilTabs->activateTab(
"export");
209 include_once(
"./Services/Export/classes/class.ilExportGUI.php");
211 $exp_gui->addFormat(
"xml");
212 $this->ctrl->forwardCommand($exp_gui);
222 if (strtolower(
$_GET[
"baseClass"]) !=
"iladministrationgui" &&
238 include_once(
"./Modules/Survey/classes/class.ilSurveyEvaluationGUI.php");
240 $this->ctrl->setCmdClass(get_class($eval_gui));
241 $this->ctrl->redirect($eval_gui,
"evaluation");
246 include_once
"Services/Administration/classes/class.ilSettingsTemplate.php";
250 foreach($templates as $item)
252 $a_options[
"svytpl_".$item[
"id"]] = array($item[
"title"],
253 nl2br(trim($item[
"description"])));
258 $a_options[
"svy360_1"] = array($this->lng->txt(
"survey_360_mode"),
259 $this->lng->txt(
"survey_360_mode_info"));
269 $a_new_object->loadFromDb();
274 $a_new_object->applySettingsTemplate(
$tpl);
278 if($a_new_object->get360Mode())
284 $a_new_object->saveToDB();
289 $a_new_object->
getRefId().
"&cmd=properties");
299 global $ilAccess,
$ilUser, $ilHelp;
306 $ilHelp->setScreenIdComponent(
"svy");
308 $hidden_tabs = array();
309 $template = $this->
object->getTemplate();
312 include_once
"Services/Administration/classes/class.ilSettingsTemplate.php";
314 $hidden_tabs = $template->getHiddenTabs();
317 if ($ilAccess->checkAccess(
"write",
"", $this->ref_id))
319 $tabs_gui->addTab(
"survey_questions",
320 $this->lng->txt(
"survey_questions"),
321 $this->ctrl->getLinkTargetByClass(array(
"ilsurveyeditorgui",
"ilsurveypagegui"),
"renderPage"));
324 if ($ilAccess->checkAccess(
"read",
"", $this->ref_id))
326 $tabs_gui->addTab(
"info_short",
327 $this->lng->txt(
"info_short"),
328 $this->ctrl->getLinkTarget($this,
'infoScreen'));
332 if ($ilAccess->checkAccess(
"write",
"", $this->ref_id))
334 $tabs_gui->addTab(
"settings",
335 $this->lng->txt(
"settings"),
336 $this->ctrl->getLinkTarget($this,
'properties'));
338 else if ($ilAccess->checkAccess(
"read",
"", $this->ref_id))
340 if($this->object->get360Mode() &&
341 $this->object->get360SelfRaters() &&
342 $this->object->isAppraisee(
$ilUser->getId()) &&
343 !$this->object->isAppraiseeClosed(
$ilUser->getId()))
345 $tabs_gui->addTab(
"survey_360_edit_raters",
346 $this->lng->txt(
"survey_360_edit_raters"),
347 $this->ctrl->getLinkTargetByClass(
'ilsurveyparticipantsgui',
'editRaters'));
354 if ($ilAccess->checkAccess(
"write",
"", $this->ref_id) &&
355 !in_array(
"constraints", $hidden_tabs) &&
356 !$this->object->get360Mode())
359 $tabs_gui->addTab(
"constraints",
360 $this->lng->txt(
"constraints"),
361 $this->ctrl->getLinkTargetByClass(
"ilsurveyconstraintsgui",
"constraints"));
364 if ($ilAccess->checkAccess(
"write",
"", $this->ref_id))
367 if($this->object->get360Mode())
370 include_once(
"./Services/Skill/classes/class.ilSkillManagementSettings.php");
372 if ($this->object->get360SkillService() && $skmg_set->isActivated())
374 $tabs_gui->addTab(
"survey_competences",
375 $this->lng->txt(
"survey_competences"),
376 $this->ctrl->getLinkTargetByClass(
"ilsurveyskillgui",
"listQuestionAssignment"));
379 $tabs_gui->addTab(
"survey_360_appraisees",
380 $this->lng->txt(
"survey_360_appraisees"),
381 $this->ctrl->getLinkTargetByClass(
'ilsurveyparticipantsgui',
'listAppraisees'));
386 $tabs_gui->addTab(
"maintenance",
387 $this->lng->txt(
"maintenance"),
388 $this->ctrl->getLinkTargetByClass(
'ilsurveyparticipantsgui',
'maintenance'));
392 include_once
"./Modules/Survey/classes/class.ilObjSurveyAccess.php";
393 if ($ilAccess->checkAccess(
"write",
"", $this->ref_id) ||
397 $tabs_gui->addTab(
"svy_results",
398 $this->lng->txt(
"svy_results"),
399 $this->ctrl->getLinkTargetByClass(
"ilsurveyevaluationgui",
"evaluation"));
403 include_once
"./Services/Tracking/classes/class.ilLearningProgressAccess.php";
406 $tabs_gui->addTarget(
"learning_progress",
407 $this->ctrl->getLinkTargetByClass(array(
"ilobjsurveygui",
"illearningprogressgui"),
""),
409 array(
"illplistofobjectsgui",
"illplistofsettingsgui",
"illearningprogressgui",
"illplistofprogressgui"));
412 if ($ilAccess->checkAccess(
"write",
"", $this->ref_id))
414 if(!in_array(
"meta_data", $hidden_tabs))
417 include_once
"Services/Object/classes/class.ilObjectMetaDataGUI.php";
419 $mdtab = $mdgui->getTab();
422 $tabs_gui->addTab(
"meta_data",
423 $this->lng->txt(
"meta_data"),
428 if(!in_array(
"export", $hidden_tabs))
431 $tabs_gui->addTab(
"export",
432 $this->lng->txt(
"export"),
433 $this->ctrl->getLinkTargetByClass(
"ilexportgui",
""));
437 if ($ilAccess->checkAccess(
"edit_permission",
"", $this->ref_id))
440 $tabs_gui->addTab(
"perm_settings",
441 $this->lng->txt(
"perm_settings"),
442 $this->ctrl->getLinkTargetByClass(array(get_class($this),
'ilpermissiongui'),
"perm"));
456 if (!$ilAccess->checkAccess(
"write",
"", $this->ref_id))
460 $this->ctrl->redirect($this,
"infoScreen");
481 if ($form->checkInput())
485 if(!$this->object->get360Mode())
487 if($form->getInput(
"tut"))
491 $tut_logins = $form->getInput(
"tut_ids");
492 foreach($tut_logins as $tut_login)
495 if($tut_id && $rbacsystem->checkAccessOfUser($tut_id,
"write", $this->object->getRefId()))
497 $tut_ids[] = $tut_id;
502 $tut_ids = $form->getItemByPostVar(
"tut_ids");
503 $tut_ids->setAlert($this->lng->txt(
"survey_notification_tutor_recipients_invalid"));
511 if(!$this->object->get360Mode())
513 if($form->getInput(
"rmd"))
515 $rmd_start = $form->getInput(
"rmd_start");
516 $rmd_start = $rmd_start[
"date"];
518 if($form->getInput(
"rmd_end_tgl"))
520 $rmd_end = $form->getInput(
"rmd_end");
521 $rmd_end = $rmd_end[
"date"];
522 if($rmd_start > $rmd_end)
525 $rmd_start = $rmd_end;
532 $this->
object->setReminderStatus(
true);
533 $this->
object->setReminderStart($rmd_start);
534 $this->
object->setReminderEnd($rmd_end);
535 $this->
object->setReminderFrequency($form->getInput(
"rmd_freq"));
536 $this->
object->setReminderTarget($form->getInput(
"rmd_grp"));
540 $this->
object->setReminderStatus(
false);
543 if($form->getInput(
"tut"))
545 $this->
object->setTutorNotificationStatus(
true);
546 $this->
object->setTutorNotificationRecipients($tut_ids);
547 $this->
object->setTutorNotificationTarget($form->getInput(
"tut_grp"));
551 $this->
object->setTutorNotificationStatus(
false);
556 if (
$_POST[
'online'] && count($this->object->questions) == 0)
562 $template_settings =
null;
563 $template = $this->
object->getTemplate();
566 include_once
"Services/Administration/classes/class.ilSettingsTemplate.php";
568 $template_settings = $template->getSettings();
571 include_once
'Services/MetaData/classes/class.ilMD.php';
572 $md_obj =&
new ilMD($this->object->getId(), 0,
"svy");
573 $md_section = $md_obj->getGeneral();
577 $md_section->update();
580 $md_desc_ids = $md_section->getDescriptionIds();
583 $md_desc = $md_section->getDescription(array_pop($md_desc_ids));
588 $this->
object->setViewOwnResults(
$_POST[
"view_own"]);
589 $this->
object->setMailOwnResults(
$_POST[
"mail_own"]);
594 $this->
object->update();
596 $this->
object->setStatus(
$_POST[
'online']);
601 $this->
object->setActivationLimited(
true);
602 $this->
object->setActivationVisibility(
$_POST[
"access_visiblity"]);
604 $period = $form->getItemByPostVar(
"access_period");
605 $this->
object->setActivationStartDate($period->getStart()->get(
IL_CAL_UNIX));
606 $this->
object->setActivationEndDate($period->getEnd()->get(
IL_CAL_UNIX));
610 $this->
object->setActivationLimited(
false);
614 if(!$template_settings[
"enabled_start_date"][
"hide"])
616 if (
$_POST[
"enabled_start_date"])
618 $this->
object->setStartDateAndTime(
$_POST[
"start_date"][
'date'],
$_POST[
"start_date"][
'time']);
622 $this->
object->setStartDate(
null);
626 if(!$template_settings[
"enabled_end_date"][
"hide"])
628 if (
$_POST[
"enabled_end_date"])
630 $this->
object->setEndDateAndTime(
$_POST[
"end_date"][
'date'],
$_POST[
"end_date"][
'time']);
634 $this->
object->setEndDate(
null);
639 include_once
"./Services/AdvancedEditing/classes/class.ilObjAdvancedEditing.php";
640 $introduction =
$_POST[
"introduction"];
641 $this->
object->setIntroduction($introduction);
643 $this->
object->setOutro($outro);
645 if(!$template_settings[
"show_question_titles"][
"hide"])
647 $this->
object->setShowQuestionTitles(
$_POST[
"show_question_titles"]);
650 if(!$template_settings[
"use_pool"][
"hide"])
652 $this->
object->setPoolUsage(
$_POST[
"use_pool"]);
655 $this->
object->setMailNotification(
$_POST[
'mailnotification']);
656 $this->
object->setMailAddresses(
$_POST[
'mailaddresses']);
657 $this->
object->setMailParticipantData(
$_POST[
'mailparticipantdata']);
660 if($this->object->get360Mode())
662 $this->
object->set360SelfEvaluation((
bool)
$_POST[
"self_eval"]);
663 $this->
object->set360SelfAppraisee((
bool)$_POST[
"self_appr"]);
664 $this->
object->set360SelfRaters((
bool)$_POST[
"self_rate"]);
665 $this->
object->set360Results((
int)$_POST[
"ts_res"]);;
666 $this->
object->set360SkillService((
int)$_POST[
"skill_service"]);
670 if(!$template_settings[
"evaluation_access"][
"hide"])
672 $this->
object->setEvaluationAccess(
$_POST[
"evaluation_access"]);
675 $hasDatasets = $this->
object->_hasDatasets($this->object->getSurveyId());
678 $hide_codes = $template_settings[
"acc_codes"][
"hide"];
679 $hide_anon = $template_settings[
"anonymization_options"][
"hide"];
680 if(!$hide_codes || !$hide_anon)
682 $current = $this->
object->getAnonymize();
687 $codes = (bool)
$_POST[
"acc_codes"];
696 $anon = ((string)
$_POST[
"anonymization_options"] ==
"statanon");
729 unset(
$_SESSION[
"anonymous_id"][$this->object->getId()]);
734 $this->
object->saveToDb();
744 $this->ctrl->redirect($this,
"properties");
753 $form->setValuesByPost();
764 $template_settings = $hide_rte_switch =
null;
765 $template = $this->
object->getTemplate();
768 include_once
"Services/Administration/classes/class.ilSettingsTemplate.php";
771 $template_settings = $template->getSettings();
772 $hide_rte_switch = $template_settings[
"rte_switch"][
"hide"];
775 include_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
777 $form->setFormAction($this->ctrl->getFormAction($this));
778 $form->setTableWidth(
"100%");
779 $form->setId(
"survey_properties");
783 $header->setTitle($this->lng->txt(
"settings"));
789 include_once
'Services/MetaData/classes/class.ilMD.php';
790 $md_obj =
new ilMD($this->object->getId(), 0,
"svy");
791 $md_section = $md_obj->getGeneral();
794 $title->setRequired(
true);
795 $title->setValue($md_section->getTitle());
796 $form->addItem($title);
798 $ids = $md_section->getDescriptionIds();
801 $desc_obj = $md_section->getDescription(array_pop($ids));
806 $desc->setValue($desc_obj->getDescription());
807 $form->addItem($desc);
811 $pool_usage =
new ilRadioGroupInputGUI($this->lng->txt(
"survey_question_pool_usage"),
"use_pool");
812 $opt =
new ilRadioOption($this->lng->txt(
"survey_question_pool_usage_active"), 1);
813 $opt->setInfo($this->lng->txt(
"survey_question_pool_usage_active_info"));
814 $pool_usage->addOption($opt);
815 $opt =
new ilRadioOption($this->lng->txt(
"survey_question_pool_usage_inactive"), 0);
816 $opt->setInfo($this->lng->txt(
"survey_question_pool_usage_inactive_info"));
817 $pool_usage->addOption($opt);
818 $pool_usage->setValue($this->object->getPoolUsage());
819 $form->addItem($pool_usage);
822 if($this->object->get360Mode())
824 $self_eval =
new ilCheckboxInputGUI($this->lng->txt(
"survey_360_self_evaluation"),
"self_eval");
825 $self_eval->setInfo($this->lng->txt(
"survey_360_self_evaluation_info"));
826 $self_eval->setChecked($this->object->get360SelfEvaluation());
827 $form->addItem($self_eval);
829 $self_rate =
new ilCheckboxInputGUI($this->lng->txt(
"survey_360_self_raters"),
"self_rate");
830 $self_rate->setInfo($this->lng->txt(
"survey_360_self_raters_info"));
831 $self_rate->setChecked($this->object->get360SelfRaters());
832 $form->addItem($self_rate);
834 $self_appr =
new ilCheckboxInputGUI($this->lng->txt(
"survey_360_self_appraisee"),
"self_appr");
835 $self_appr->setInfo($this->lng->txt(
"survey_360_self_appraisee_info"));
836 $self_appr->setChecked($this->object->get360SelfAppraisee());
837 $form->addItem($self_appr);
843 include_once
"Services/Object/classes/class.ilObjectActivation.php";
844 $this->lng->loadLanguageModule(
'rep');
847 $section->setTitle($this->lng->txt(
'rep_activation_availability'));
851 $act_obj_info = $act_ref_info =
"";
854 $act_obj_info =
' '.$this->lng->txt(
'rep_activation_online_object_info');
855 $act_ref_info = $this->lng->txt(
'rep_activation_access_ref_info');
859 $online->setInfo($this->lng->txt(
'svy_activation_online_info').$act_obj_info);
860 $online->setChecked($this->object->isOnline());
861 $form->addItem($online);
863 $act_type =
new ilCheckboxInputGUI($this->lng->txt(
'rep_visibility_until'),
'access_type');
865 $act_type->setChecked($this->object->isActivationLimited());
867 $this->tpl->addJavaScript(
'./Services/Form/js/date_duration.js');
868 include_once
"Services/Form/classes/class.ilDateDurationInputGUI.php";
870 $dur->setShowTime(
true);
871 $date = $this->
object->getActivationStartDate();
873 $dur->setStartText($this->lng->txt(
'rep_activation_limited_start'));
874 $date = $this->
object->getActivationEndDate();
876 $dur->setEndText($this->lng->txt(
'rep_activation_limited_end'));
877 $act_type->addSubItem($dur);
879 $visible =
new ilCheckboxInputGUI($this->lng->txt(
'rep_activation_limited_visibility'),
'access_visiblity');
880 $visible->setInfo($this->lng->txt(
'svy_activation_limited_visibility_info'));
881 $visible->setChecked($this->object->getActivationVisibility());
882 $act_type->addSubItem($visible);
884 $form->addItem($act_type);
890 $section->setTitle($this->lng->txt(
'svy_settings_section_before_start'));
895 $intro->setValue($this->object->prepareTextareaOutput($this->object->getIntroduction()));
898 $intro->setUseRte(TRUE);
899 $intro->setInfo($this->lng->txt(
"survey_introduction_info"));
900 include_once
"./Services/AdvancedEditing/classes/class.ilObjAdvancedEditing.php";
902 $intro->addPlugin(
"latex");
903 $intro->addButton(
"latex");
904 $intro->addButton(
"pastelatex");
905 $intro->setRTESupport($this->object->getId(),
"svy",
"survey",
null, $hide_rte_switch);
906 $form->addItem($intro);
912 $section->setTitle($this->lng->txt(
'svy_settings_section_access'));
916 $start = $this->
object->getStartDate();
917 $enablestartingtime =
new ilCheckboxInputGUI($this->lng->txt(
"start_date"),
"enabled_start_date");
918 $enablestartingtime->setValue(1);
920 $enablestartingtime->setChecked($start);
923 $startingtime->setShowTime(
true);
928 $enablestartingtime->addSubItem($startingtime);
929 $form->addItem($enablestartingtime);
932 $end = $this->
object->getEndDate();
933 $enableendingtime =
new ilCheckboxInputGUI($this->lng->txt(
"end_date"),
"enabled_end_date");
934 $enableendingtime->setValue(1);
936 $enableendingtime->setChecked($end);
939 $endingtime->setShowTime(
true);
944 $enableendingtime->addSubItem($endingtime);
945 $form->addItem($enableendingtime);
948 if(!$this->object->get360Mode())
951 $codes->setInfo($this->lng->txt(
"survey_access_codes_info"));
952 $codes->setChecked(!$this->object->isAccessibleWithoutCode());
953 $form->addItem($codes);
955 if ($this->object->_hasDatasets($this->object->getSurveyId()))
957 $codes->setDisabled(
true);
965 $section->setTitle($this->lng->txt(
'svy_settings_section_question_behaviour'));
969 $show_question_titles =
new ilCheckboxInputGUI($this->lng->txt(
"svy_show_questiontitles"),
"show_question_titles");
970 $show_question_titles->setValue(1);
971 $show_question_titles->setChecked($this->object->getShowQuestionTitles());
972 $form->addItem($show_question_titles);
978 $info->setTitle($this->lng->txt(
"svy_settings_section_finishing"));
979 $form->addItem(
$info);
981 $view_own =
new ilCheckboxInputGUI($this->lng->txt(
"svy_results_view_own"),
"view_own");
982 $view_own->setInfo($this->lng->txt(
"svy_results_view_own_info"));
983 $view_own->setChecked($this->object->hasViewOwnResults());
984 $form->addItem($view_own);
986 $mail_own =
new ilCheckboxInputGUI($this->lng->txt(
"svy_results_mail_own"),
"mail_own");
987 $mail_own->setInfo($this->lng->txt(
"svy_results_mail_own_info"));
988 $mail_own->setChecked($this->object->hasMailOwnResults());
989 $form->addItem($mail_own);
993 $finalstatement->setValue($this->object->prepareTextareaOutput($this->object->getOutro()));
994 $finalstatement->setRows(10);
995 $finalstatement->setCols(80);
996 $finalstatement->setUseRte(TRUE);
998 $finalstatement->addPlugin(
"latex");
999 $finalstatement->addButton(
"latex");
1000 $finalstatement->addButton(
"pastelatex");
1001 $finalstatement->setRTESupport($this->object->getId(),
"svy",
"survey",
null, $hide_rte_switch);
1002 $form->addItem($finalstatement);
1005 $mailnotification =
new ilCheckboxInputGUI($this->lng->txt(
"mailnotification"),
"mailnotification");
1007 $mailnotification->setInfo($this->lng->txt(
"svy_result_mail_notification_info"));
1008 $mailnotification->setValue(1);
1009 $mailnotification->setChecked($this->object->getMailNotification());
1012 $mailaddresses =
new ilTextInputGUI($this->lng->txt(
"mailaddresses"),
"mailaddresses");
1013 $mailaddresses->setValue($this->object->getMailAddresses());
1014 $mailaddresses->setSize(80);
1015 $mailaddresses->setInfo($this->lng->txt(
'mailaddresses_info'));
1016 $mailaddresses->setRequired(
true);
1019 $participantdata =
new ilTextAreaInputGUI($this->lng->txt(
"mailparticipantdata"),
"mailparticipantdata");
1020 $participantdata->setValue($this->object->getMailParticipantData());
1021 $participantdata->setRows(6);
1022 $participantdata->setCols(80);
1023 $participantdata->setUseRte(
false);
1024 $participantdata->setInfo($this->lng->txt(
"mailparticipantdata_info"));
1027 $placeholders = array(
1028 "FIRST_NAME" =>
"firstname",
1029 "LAST_NAME" =>
"lastname",
1033 foreach($placeholders as $placeholder => $caption)
1035 $txt[] =
"[".strtoupper($placeholder).
"]: ".$this->lng->txt($caption);
1038 $participantdatainfo =
new ilNonEditableValueGUI($this->lng->txt(
"mailparticipantdata_placeholder"),
"",
true);
1039 $participantdatainfo->setValue(
$txt);
1041 $mailnotification->addSubItem($mailaddresses);
1042 $mailnotification->addSubItem($participantdata);
1043 $mailnotification->addSubItem($participantdatainfo);
1044 $form->addItem($mailnotification);
1047 if(!$this->object->get360Mode())
1051 $has_parent =
$tree->checkForParentType($this->object->getRefId(),
"grp");
1054 $has_parent =
$tree->checkForParentType($this->object->getRefId(),
"crs");
1056 $num_inv =
sizeof($this->
object->getInvitedUsers());
1059 $tut =
new ilCheckboxInputGUI($this->lng->txt(
"survey_notification_tutor_setting"),
"tut");
1060 $tut->setChecked($this->object->getTutorNotificationStatus());
1061 $form->addItem($tut);
1063 $tut_logins = array();
1064 $tuts = $this->
object->getTutorNotificationRecipients();
1067 foreach($tuts as $tut_id)
1072 $tut_logins[] = $tmp[
"login"];
1076 $tut_ids =
new ilTextInputGUI($this->lng->txt(
"survey_notification_tutor_recipients"),
"tut_ids");
1077 $tut_ids->setDataSource($this->ctrl->getLinkTarget($this,
"doAutoComplete",
"",
true));
1078 $tut_ids->setRequired(
true);
1079 $tut_ids->setMulti(
true);
1080 $tut_ids->setMultiValues($tut_logins);
1081 $tut_ids->setValue(array_shift($tut_logins));
1082 $tut->addSubItem($tut_ids);
1084 $tut_grp =
new ilRadioGroupInputGUI($this->lng->txt(
"survey_notification_target_group"),
"tut_grp");
1085 $tut_grp->setRequired(
true);
1086 $tut_grp->setValue($this->object->getTutorNotificationTarget());
1087 $tut->addSubItem($tut_grp);
1089 $tut_grp_crs =
new ilRadioOption($this->lng->txt(
"survey_notification_target_group_parent_course"),
1093 $tut_grp_crs->setInfo($this->lng->txt(
"survey_notification_target_group_parent_course_inactive"));
1097 $tut_grp_crs->setInfo(sprintf($this->lng->txt(
"survey_notification_target_group_invited_info"),
1098 count($this->object->getNotificationTargetUserIds(
false))));
1100 $tut_grp->addOption($tut_grp_crs);
1102 $tut_grp_inv =
new ilRadioOption($this->lng->txt(
"survey_notification_target_group_invited"),
1104 $tut_grp_inv->setInfo(sprintf($this->lng->txt(
"survey_notification_target_group_invited_info"), $num_inv));
1105 $tut_grp->addOption($tut_grp_inv);
1112 if(!$this->object->get360Mode())
1115 $info->setTitle($this->lng->txt(
"svy_settings_section_reminders"));
1116 $form->addItem(
$info);
1119 $rmd->setChecked($this->object->getReminderStatus());
1120 $form->addItem($rmd);
1122 $rmd_start =
new ilDateTimeInputGUI($this->lng->txt(
"survey_reminder_start"),
"rmd_start");
1123 $rmd_start->setRequired(
true);
1124 $start = $this->
object->getReminderStart();
1127 $rmd_start->setDate($start);
1129 $rmd->addSubItem($rmd_start);
1131 $end = $this->
object->getReminderEnd();
1132 $rmd_end =
new ilDateTimeInputGUI($this->lng->txt(
"survey_reminder_end"),
"rmd_end");
1133 $rmd_end->enableDateActivation(
"",
"rmd_end_tgl", (
bool)$end);
1136 $rmd_end->setDate($end);
1138 $rmd->addSubItem($rmd_end);
1140 $rmd_freq =
new ilNumberInputGUI($this->lng->txt(
"survey_reminder_frequency"),
"rmd_freq");
1141 $rmd_freq->setRequired(
true);
1142 $rmd_freq->setSize(3);
1143 $rmd_freq->setSuffix($this->lng->txt(
"survey_reminder_frequency_days"));
1144 $rmd_freq->setValue($this->object->getReminderFrequency());
1145 $rmd_freq->setMinValue(1);
1146 $rmd->addSubItem($rmd_freq);
1148 $rmd_grp =
new ilRadioGroupInputGUI($this->lng->txt(
"survey_notification_target_group"),
"rmd_grp");
1149 $rmd_grp->setRequired(
true);
1150 $rmd_grp->setValue($this->object->getReminderTarget());
1151 $rmd->addSubItem($rmd_grp);
1153 $rmd_grp_crs =
new ilRadioOption($this->lng->txt(
"survey_notification_target_group_parent_course"),
1157 $rmd_grp_crs->setInfo($this->lng->txt(
"survey_notification_target_group_parent_course_inactive"));
1161 $rmd_grp_crs->setInfo(sprintf($this->lng->txt(
"survey_notification_target_group_invited_info"),
1162 count($this->object->getNotificationTargetUserIds(
false))));
1164 $rmd_grp->addOption($rmd_grp_crs);
1166 $rmd_grp_inv =
new ilRadioOption($this->lng->txt(
"survey_notification_target_group_invited"),
1168 $rmd_grp_inv->setInfo(sprintf($this->lng->txt(
"survey_notification_target_group_invited_info"), $num_inv));
1169 $rmd_grp->addOption($rmd_grp_inv);
1176 $results->setTitle($this->lng->txt(
"results"));
1180 if(!$this->object->get360Mode())
1182 $evaluation_access =
new ilRadioGroupInputGUI($this->lng->txt(
'evaluation_access'),
"evaluation_access");
1185 $option->setInfo($this->lng->txt(
"svy_evaluation_access_off_info"));
1186 $evaluation_access->addOption($option);
1189 $option->setInfo($this->lng->txt(
"svy_evaluation_access_all_info"));
1190 $evaluation_access->addOption($option);
1193 $option->setInfo($this->lng->txt(
"svy_evaluation_access_participants_info"));
1194 $evaluation_access->addOption($option);
1196 $evaluation_access->setValue($this->object->getEvaluationAccess());
1197 $form->addItem($evaluation_access);
1200 $anonymization_options =
new ilRadioGroupInputGUI($this->lng->txt(
"survey_results_anonymization"),
"anonymization_options");
1202 $option =
new ilCheckboxOption($this->lng->txt(
"survey_results_personalized"),
"statpers");
1203 $option->setInfo($this->lng->txt(
"survey_results_personalized_info"));
1204 $anonymization_options->addOption($option);
1206 $option =
new ilCheckboxOption($this->lng->txt(
"survey_results_anonymized"),
"statanon");
1207 $option->setInfo($this->lng->txt(
"survey_results_anonymized_info"));
1208 $anonymization_options->addOption($option);
1209 $anonymization_options->setValue($this->object->hasAnonymizedResults()
1212 $form->addItem($anonymization_options);
1214 if ($this->object->_hasDatasets($this->object->getSurveyId()))
1216 $anonymization_options->setDisabled(
true);
1223 $ts_results->setValue($this->object->get360Results());
1226 $option->setInfo($this->lng->txt(
"survey_360_results_none_info"));
1227 $ts_results->addOption($option);
1230 $option->setInfo($this->lng->txt(
"survey_360_results_own_info"));
1231 $ts_results->addOption($option);
1234 $option->setInfo($this->lng->txt(
"survey_360_results_all_info"));
1235 $ts_results->addOption($option);
1236 $form->addItem($ts_results);
1242 include_once(
"./Services/Skill/classes/class.ilSkillManagementSettings.php");
1244 if($this->object->get360Mode() && $skmg_set->isActivated())
1247 $other->setTitle($this->lng->txt(
"other"));
1248 $form->addItem($other);
1250 $skill_service =
new ilCheckboxInputGUI($this->lng->txt(
"survey_activate_skill_service"),
"skill_service");
1251 $skill_service->setInfo($this->lng->txt(
"survey_activate_skill_service_info"));
1252 $skill_service->setChecked($this->object->get360SkillService());
1253 $form->addItem($skill_service);
1257 $form->addCommandButton(
"saveProperties", $this->lng->txt(
"save"));
1260 if($template_settings)
1262 foreach($template_settings as $id => $item)
1266 $form->removeItemByPostVar($id);
1281 global $ilTabs, $ilHelp;
1285 $ilTabs->activateTab(
"settings");
1288 if ($this->object->get360Mode())
1290 $ilHelp->setScreenId(
"settings_360");
1300 if($this->object->getTemplate())
1302 $link = $this->ctrl->getLinkTarget($this,
"confirmResetTemplate");
1303 $link =
"<a href=\"".$link.
"\">".$this->lng->txt(
"survey_using_template_link").
"</a>";
1304 $message =
"<div style=\"margin-top:10px\">".
1305 $this->tpl->getMessageHTML(sprintf($this->lng->txt(
"survey_using_template"),
1310 $this->tpl->setContent($a_form->getHTML().$message);
1315 $fields = array(
'login',
'firstname',
'lastname',
'email');
1317 include_once
'./Services/User/classes/class.ilUserAutoComplete.php';
1319 $auto->setSearchFields($fields);
1320 $auto->setResultField(
'login');
1321 $auto->enableFieldSearchableCheck(
true);
1322 $auto->setMoreLinkAvailable(
true);
1339 $this->tpl->addBlockFile(
"ADM_CONTENT",
"adm_content",
"tpl.il_svy_svy_confirm_resettemplate.html",
"Modules/Survey");
1340 $this->tpl->setCurrentBlock(
"adm_content");
1341 $this->tpl->setVariable(
"BTN_CONFIRM_REMOVE", $this->lng->txt(
"confirm"));
1342 $this->tpl->setVariable(
"BTN_CANCEL_REMOVE", $this->lng->txt(
"cancel"));
1343 $this->tpl->setVariable(
"FORM_ACTION", $this->ctrl->getFormAction($this,
"resetTemplateObject"));
1344 $this->tpl->parseCurrentBlock();
1352 $this->
object->setTemplate(
null);
1353 $this->
object->saveToDB();
1356 $this->ctrl->redirect($this,
"properties");
1367 include_once(
"Services/Form/classes/class.ilPropertyFormGUI.php");
1369 $form->setTarget(
"_top");
1370 $form->setFormAction($this->ctrl->getFormAction($this));
1371 $form->setTitle($this->lng->txt(
"import_svy"));
1373 include_once(
"./Services/Form/classes/class.ilFileInputGUI.php");
1374 $fi =
new ilFileInputGUI($this->lng->txt(
"import_file"),
"importfile");
1375 $fi->setSuffixes(array(
"zip"));
1376 $fi->setRequired(
true);
1377 $form->addItem($fi);
1379 include_once(
"./Modules/Survey/classes/class.ilObjSurvey.php");
1381 $questionspools = $svy->getAvailableQuestionpools(
true,
true,
true);
1383 $pools =
new ilSelectInputGUI($this->lng->txt(
"select_questionpool_short"),
"spl");
1384 $pools->setOptions(array(
""=>$this->lng->txt(
"dont_use_questionpool")) + $questionspools);
1385 $pools->setRequired(
false);
1386 $form->addItem($pools);
1388 $form->addCommandButton(
"importFile", $this->lng->txt(
"import"));
1389 $form->addCommandButton(
"cancel", $this->lng->txt(
"cancel"));
1401 $parent_id =
$_GET[
"ref_id"];
1407 $ilErr->raiseError($this->lng->txt(
"no_create_permission"));
1410 $this->lng->loadLanguageModule($new_type);
1411 $this->ctrl->setParameter($this,
"new_type", $new_type);
1414 if ($form->checkInput())
1416 include_once(
"./Modules/Survey/classes/class.ilObjSurvey.php");
1418 $newObj->setType($new_type);
1419 $newObj->setTitle(
"dummy");
1420 $newObj->setDescription(
"dummy");
1421 $newObj->create(
true);
1425 $error = $newObj->importObject($_FILES[
"importfile"], $form->getInput(
"spl"));
1429 $this->
ilias->raiseError($error, $this->
ilias->error_obj->MESSAGE);
1435 "&baseClass=ilObjSurveyGUI");
1438 include_once
"Services/Administration/classes/class.ilSettingsTemplate.php";
1443 $tpl->addJavaScript(
"./Modules/Scorm2004/scripts/questions/jquery.js");
1446 $this->tpl->setCurrentBlock(
"template_option");
1447 $this->tpl->setVariable(
"VAL_TEMPLATE_OPTION",
"");
1448 $this->tpl->setVariable(
"TXT_TEMPLATE_OPTION", $this->lng->txt(
"none"));
1449 $this->tpl->parseCurrentBlock();
1451 foreach($templates as $item)
1453 $this->tpl->setCurrentBlock(
"template_option");
1454 $this->tpl->setVariable(
"VAL_TEMPLATE_OPTION", $item[
"id"]);
1455 $this->tpl->setVariable(
"TXT_TEMPLATE_OPTION", $item[
"title"]);
1456 $this->tpl->parseCurrentBlock();
1458 $desc = str_replace(
"\n",
"", nl2br($item[
"description"]));
1459 $desc = str_replace(
"\r",
"", $desc);
1461 $this->tpl->setCurrentBlock(
"js_data");
1462 $this->tpl->setVariable(
"JS_DATA_ID", $item[
"id"]);
1463 $this->tpl->setVariable(
"JS_DATA_TEXT", $desc);
1464 $this->tpl->parseCurrentBlock();
1467 $this->tpl->setCurrentBlock(
"templates");
1468 $this->tpl->setVariable(
"TXT_TEMPLATE", $this->lng->txt(
"svy_settings_template"));
1469 $this->tpl->parseCurrentBlock();
1474 $form->setValuesByPost();
1475 $tpl->setContent($form->getHtml());
1490 $this->ctrl->setCmd(
"showSummary");
1491 $this->ctrl->setCmdClass(
"ilinfoscreengui");
1500 global $ilAccess, $ilTabs,
$ilUser, $ilToolbar;
1502 if (!$this->external_rater_360 &&
1503 !$ilAccess->checkAccess(
"visible",
"", $this->ref_id) &&
1504 !$ilAccess->checkAccess(
"read",
"", $this->ref_id))
1506 $this->
ilias->raiseError($this->lng->txt(
"msg_no_perm_read"),$this->ilias->error_obj->MESSAGE);
1509 $ilTabs->activateTab(
"info_short");
1511 include_once
"./Modules/Survey/classes/class.ilSurveyExecutionGUI.php";
1514 include_once(
"./Services/InfoScreen/classes/class.ilInfoScreenGUI.php");
1516 $info->enablePrivateNotes();
1519 $canStart = $this->
object->canStartSurvey(
null, $this->external_rater_360);
1521 $showButtons = $canStart[
"result"];
1524 if($canStart[
"edit_settings"] &&
1525 $ilAccess->checkAccess(
"write",
"", $this->ref_id))
1527 $canStart[
"messages"][] =
"<a href=\"".$this->ctrl->getLinkTarget($this,
"properties").
"\">» ".
1528 $this->lng->txt(
"survey_edit_settings").
"</a>";
1533 $big_button =
false;
1537 $is_appraisee =
false;
1538 if($this->object->get360Mode() &&
1539 $this->object->isAppraisee(
$ilUser->getId()))
1541 $info->addSection($this->lng->txt(
"survey_360_appraisee_info"));
1543 $appr_data = $this->
object->getAppraiseesData();
1544 $appr_data = $appr_data[
$ilUser->getId()];
1545 $info->addProperty($this->lng->txt(
"survey_360_raters_status_info"), $appr_data[
"finished"]);
1547 if(!$appr_data[
"closed"])
1549 include_once
"Services/UIComponent/Button/classes/class.ilLinkButton.php";
1551 $button->setCaption(
"survey_360_appraisee_close_action");
1552 $button->setUrl($this->ctrl->getLinkTargetByClass(
"ilsurveyparticipantsgui",
"confirmappraiseeclose"));
1553 $close_button_360 =
'<div>'.$button->render().
'</div>';
1555 $txt =
"survey_360_appraisee_close_action_info";
1556 if($this->object->get360SkillService())
1560 $info->addProperty($this->lng->txt(
"status"),
1561 $close_button_360.$this->lng->txt(
$txt));
1568 $info->addProperty($this->lng->txt(
"status"),
1569 sprintf($this->lng->txt(
"survey_360_appraisee_close_action_status"),
1573 $is_appraisee =
true;
1580 $code_input =
false;
1581 $anonymous_code =
$_POST[
"anonymous_id"];
1582 if ($anonymous_code)
1586 if(!$this->object->checkSurveyCode($anonymous_code))
1588 $anonymous_code =
null;
1593 $this->
object->bindSurveyCodeToUser($ilUser->getId(), $anonymous_code);
1596 if ($anonymous_code)
1598 $_SESSION[
"anonymous_id"][$this->
object->getId()] = $anonymous_code;
1602 $anonymous_code =
$_SESSION[
"anonymous_id"][$this->
object->getId()];
1610 if($this->object->getAnonymize() && !$anonymous_code)
1612 $anonymous_code = $this->
object->findCodeForUser($ilUser->getId());
1616 $participant_status = $this->
object->getUserSurveyExecutionStatus($anonymous_code);
1617 if($participant_status)
1619 $anonymous_code = $participant_status[
"code"];
1620 $participant_status = $participant_status[
"runs"];
1624 if(!$this->object->isAccessibleWithoutCode() &&
1627 (!$anonymous_code || !$this->object->isAnonymousKey($anonymous_code)))
1629 $anonymous_code =
null;
1634 $_SESSION[
"anonymous_id"][$this->
object->getId()] = $anonymous_code;
1637 if(!$is_appraisee &&
1639 !$this->object->isAccessibleWithoutCode())
1641 $info->setFormAction($this->ctrl->getFormAction($this,
"infoScreen"));
1642 $info->addSection($this->lng->txt(
"anonymization"));
1643 $info->addProperty(
"", $this->lng->txt(
"anonymize_anonymous_introduction"));
1644 $info->addPropertyTextinput($this->lng->txt(
"enter_anonymous_id"),
"anonymous_id",
"", 8,
"infoScreen", $this->lng->txt(
"submit"),
true);
1649 if(!$this->object->get360Mode())
1653 $info->addHiddenElement(
"anonymous_id", $anonymous_code);
1656 $survey_started = $this->
object->isSurveyStarted($ilUser->getId(), $anonymous_code);
1657 if ($survey_started === 1)
1659 if(
$ilUser->getId() != ANONYMOUS_USER_ID)
1661 if($this->object->hasViewOwnResults())
1663 include_once
"Services/UIComponent/Button/classes/class.ilLinkButton.php";
1665 $button->setCaption(
"svy_view_own_results");
1666 $button->setUrl($this->ctrl->getLinkTarget($this,
"viewUserResults"));
1667 $ilToolbar->addButtonInstance($button);
1670 if($this->object->hasMailOwnResults())
1672 if($this->object->hasViewOwnResults())
1674 $ilToolbar->addSeparator();
1677 require_once
"Services/Form/classes/class.ilTextInputGUI.php";
1680 $mail->setValue(
$ilUser->getEmail());
1681 $ilToolbar->addInputItem($mail,
true);
1683 $ilToolbar->setFormAction($this->ctrl->getFormAction($this,
"mailUserResults"));
1685 include_once
"Services/UIComponent/Button/classes/class.ilSubmitButton.php";
1687 $button->setCaption(
"svy_mail_own_results");
1688 $button->setCommand(
"mailUserResults");
1689 $ilToolbar->addButtonInstance($button);
1695 elseif ($survey_started === 0)
1697 $big_button = array(
"resume", $this->lng->txt(
"resume_survey"));
1699 elseif ($survey_started === FALSE)
1701 $big_button = array(
"start", $this->lng->txt(
"start_survey"));
1707 $appr_ids = array();
1712 $anonymous_id = $this->
object->getAnonymousIdByCode($anonymous_code);
1715 $appr_ids = $this->
object->getAppraiseesToRate(0, $anonymous_id);
1721 if(!$appr_ids &&
$ilUser->getId() != ANONYMOUS_USER_ID)
1723 $appr_ids = $this->
object->getAppraiseesToRate($ilUser->getId());
1726 if(
sizeof($appr_ids))
1729 $active_appraisees = array();
1730 if($participant_status)
1732 foreach($participant_status as $item)
1734 $active_appraisees[$item[
"appr_id"]] = $item[
"finished"];
1740 foreach($appr_ids as $appr_id)
1742 if($this->object->isAppraiseeClosed($appr_id))
1745 $list[$appr_id] = $this->lng->txt(
"survey_360_appraisee_is_closed");
1747 else if(array_key_exists($appr_id, $active_appraisees))
1750 if($active_appraisees[$appr_id])
1752 $list[$appr_id] = $this->lng->txt(
"already_completed_survey");
1757 $list[$appr_id] = array(
"resume", $this->lng->txt(
"resume_survey"));
1763 $list[$appr_id] = array(
"start", $this->lng->txt(
"start_survey"));
1767 $info->addSection($this->lng->txt(
"survey_360_rate_other_appraisees"));
1769 include_once
"Services/User/classes/class.ilUserUtil.php";
1770 foreach($list as $appr_id => $item)
1774 if(!is_array($item))
1776 $info->addProperty($appr_name, $item);
1780 $this->ctrl->setParameter($output_gui,
"appr_id", $appr_id);
1781 $href = $this->ctrl->getLinkTarget($output_gui, $item[0]);
1782 $this->ctrl->setParameter($output_gui,
"appr_id",
"");
1784 include_once
"Services/UIComponent/Button/classes/class.ilLinkButton.php";
1786 $button->setCaption($item[1],
false);
1787 $button->setUrl($href);
1788 $big_button_360 =
'<div>'.$button->render().
'</div>';
1790 $info->addProperty($appr_name, $big_button_360);
1794 else if(!$is_appraisee)
1801 if($this->object->get360Mode() &&
1802 $this->object->get360SelfAppraisee() &&
1803 !$this->object->isAppraisee(
$ilUser->getId()) &&
1804 $ilUser->getId() != ANONYMOUS_USER_ID)
1806 $link = $this->ctrl->getLinkTargetByClass(
"ilsurveyparticipantsgui",
"addSelfAppraisee");
1807 $link =
'<a href="'.$link.
'">'.$this->lng->txt(
"survey_360_add_self_appraisee").
'</a>';
1808 $info->addProperty(
" ", $link);
1814 $ilToolbar->setFormAction($this->ctrl->getFormAction($output_gui,
"infoScreen"));
1816 include_once
"Services/UIComponent/Button/classes/class.ilSubmitButton.php";
1818 $button->setCaption($big_button[1],
false);
1819 $button->setCommand($big_button[0]);
1820 $button->setPrimary(
true);
1821 $ilToolbar->addButtonInstance($button);
1823 $ilToolbar->setCloseFormTag(
false);
1824 $info->setOpenFormTag(
false);
1833 if (strlen($this->object->getIntroduction()))
1835 $introduction = $this->
object->getIntroduction();
1836 $info->addSection($this->lng->txt(
"introduction"));
1837 $info->addProperty(
"", $this->object->prepareTextareaOutput($introduction).
1838 "<br />".$info->getHiddenToggleButton());
1842 $info->addSection(
"");
1843 $info->addProperty(
"",
$info->getHiddenToggleButton());
1846 $info->hideFurtherSections(
false);
1848 if(!$this->object->get360Mode())
1850 $info->addSection($this->lng->txt(
"svy_general_properties"));
1852 $info->addProperty($this->lng->txt(
"survey_results_anonymization"),
1853 !$this->object->hasAnonymizedResults()
1854 ? $this->lng->txt(
"survey_results_personalized_info")
1855 : $this->lng->txt(
"survey_results_anonymized_info"));
1857 include_once
"./Modules/Survey/classes/class.ilObjSurveyAccess.php";
1858 if ($ilAccess->checkAccess(
"write",
"", $this->ref_id) ||
1861 $info->addProperty($this->lng->txt(
"evaluation_access"), $this->lng->txt(
"evaluation_access_info"));
1865 $info->addMetaDataSections($this->object->getId(),0, $this->object->getType());
1867 $this->ctrl->forwardCommand(
$info);
1873 switch ($this->ctrl->getCmd())
1879 case "redirectQuestion":
1880 $ilLocator->addItem($this->object->getTitle(), $this->ctrl->getLinkTarget($this,
"infoScreen"),
"",
$_GET[
"ref_id"]);
1883 case "checkEvaluationAccess":
1884 case "evaluationdetails":
1885 case "evaluationuser":
1886 $ilLocator->addItem($this->object->getTitle(), $this->ctrl->getLinkTargetByClass(
"ilsurveyevaluationgui",
"evaluation"),
"",
$_GET[
"ref_id"]);
1895 $ilLocator->addItem($this->object->getTitle(), $this->ctrl->getLinkTarget($this,
"infoScreen"),
"",
$_GET[
"ref_id"]);
1898 $ilLocator->addItem($this->object->getTitle(), $this->ctrl->getLinkTarget($this,
"infoScreen"),
"",
$_GET[
"ref_id"]);
1905 $q_id = (int)
$_GET[
"q_id"];
1906 include_once
"./Modules/SurveyQuestionPool/classes/class.SurveyQuestion.php";
1908 $this->ctrl->setParameterByClass($q_type,
"q_id", $q_id);
1910 $this->ctrl->getLinkTargetByClass(array(
"ilSurveyEditorGUI", $q_type),
"editQuestion"));
1923 public static function _goto($a_target, $a_access_code =
"")
1928 include_once
"./Services/Utilities/classes/class.ilUtil.php";
1929 if (strlen($a_access_code))
1932 $_GET[
"baseClass"] =
"ilObjSurveyGUI";
1933 $_GET[
"cmd"] =
"infoScreen";
1934 $_GET[
"ref_id"] = $a_target;
1935 include(
"ilias.php");
1939 if ($ilAccess->checkAccess(
"visible",
"", $a_target) ||
1940 $ilAccess->checkAccess(
"read",
"", $a_target))
1942 $_GET[
"baseClass"] =
"ilObjSurveyGUI";
1943 $_GET[
"cmd"] =
"infoScreen";
1944 $_GET[
"ref_id"] = $a_target;
1945 include(
"ilias.php");
1948 else if ($ilAccess->checkAccess(
"read",
"", ROOT_FOLDER_ID))
1960 $rtpl =
new ilTemplate(
"tpl.svy_view_user_results.html",
true,
true,
"Modules/Survey");
1962 $show_titles = (bool)$this->object->getShowQuestionTitles();
1964 foreach($this->object->getSurveyPages() as $page)
1966 if(count($page) > 0)
1969 if(count($page) > 1)
1971 if((
bool)$page[0][
"questionblock_show_blocktitle"])
1973 $rtpl->setVariable(
"BLOCK_TITLE", trim($page[0][
"questionblock_title"]));
1978 foreach($page as $question)
1980 $question_gui = $this->
object->getQuestionGUI($question[
"type_tag"], $question[
"question_id"]);
1981 if(is_object($question_gui))
1983 $rtpl->setCurrentBlock(
"question_bl");
1986 if(strlen($question[
"heading"]))
1988 $rtpl->setVariable(
"HEADING", trim($question[
"heading"]));
1991 $rtpl->setVariable(
"QUESTION_DATA",
1992 $question_gui->getPrintView(
1994 (
bool)$question[
"questionblock_show_questiontext"],
1995 $this->object->getId(),
1996 $this->object->loadWorkingData($question[
"question_id"], $a_active_id)
2000 $rtpl->parseCurrentBlock();
2004 $rtpl->setCurrentBlock(
"block_bl");
2005 $rtpl->parseCurrentBlock();
2009 return $rtpl->get();
2016 $anonymous_code =
$_SESSION[
"anonymous_id"][$this->
object->getId()];
2017 $active_id = $this->
object->getActiveID($ilUser->getId(), $anonymous_code, 0);
2018 if($this->object->isSurveyStarted(
$ilUser->getId(), $anonymous_code) !== 1 ||
2021 $this->ctrl->redirect($this,
"infoScreen");
2024 $ilTabs->clearTargets();
2025 $ilTabs->setBackTarget($this->lng->txt(
"btn_back"),
2026 $this->ctrl->getLinkTarget($this,
"infoScreen"));
2036 $show_titles = (bool)$this->object->getShowQuestionTitles();
2038 foreach($this->object->getSurveyPages() as $page)
2040 if(count($page) > 0)
2042 $res[] =
"\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n";
2045 if(count($page) > 1)
2047 if((
bool)$page[0][
"questionblock_show_blocktitle"])
2049 $res[$this->lng->txt(
"questionblock")] = trim($page[0][
"questionblock_title"]).
"\n";
2055 $page_res = array();
2057 foreach($page as $question)
2059 $question_gui = $this->
object->getQuestionGUI($question[
"type_tag"], $question[
"question_id"]);
2060 if(is_object($question_gui))
2062 $question_parts = array();
2065 if(strlen($question[
"heading"]))
2067 $question_parts[$this->lng->txt(
"heading")] = trim($question[
"heading"]);
2072 $question_parts[$this->lng->txt(
"title")] = trim($question[
"title"]);
2075 if((
bool)$question[
"questionblock_show_questiontext"])
2077 $question_parts[$this->lng->txt(
"question")] = trim(strip_tags($question_gui->object->getQuestionText()));
2080 $answers = $question_gui->getParsedAnswers(
2081 $this->object->loadWorkingData($question[
"question_id"], $a_active_id),
2085 if(
sizeof($answers))
2088 if(
sizeof($answers) > 1 ||
2089 get_class($question_gui) ==
"SurveyTextQuestionGUI")
2095 foreach($answers as $answer)
2098 if($answer[
"textanswer"])
2100 $text =
' ("'.$answer[
"textanswer"].
'")';
2102 if(!isset($answer[
"cols"]))
2104 if(isset($answer[
"title"]))
2106 $parts[] = $answer[
"title"].$text;
2108 else if(isset($answer[
"value"]))
2110 $parts[] = $answer[
"value"];
2114 $parts[] = substr(
$text, 2, -1);
2121 foreach($answer[
"cols"] as $col)
2123 $tmp[] = $col[
"title"];
2125 $parts[] = $answer[
"title"].
": ".implode(
", ", $tmp).$text;
2129 $question_parts[$this->lng->txt(
"answer")] =
2130 ($multiline ?
"\n" :
"").implode(
"\n", $parts);
2134 foreach($question_parts as $type => $value)
2136 $tmp[] = $type.
": ".$value;
2138 $page_res[] = implode(
"\n", $tmp);
2142 $res[] = implode(
"\n\n-------------------------------\n\n", $page_res);
2146 $res[] =
"\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n";
2148 return implode(
"\n",
$res);
2155 $finished = $this->
object->getSurveyParticipants(array($a_active_id));
2156 $finished = array_pop($finished);
2159 require_once
"Services/Mail/classes/class.ilMail.php";
2160 require_once
"Services/Link/classes/class.ilLink.php";
2163 $body .= $this->lng->txt(
"svy_mail_own_results_body").
"\n";
2164 $body .=
"\n".$this->lng->txt(
"obj_svy").
": ".$this->
object->getTitle().
"\n";
2166 $body .=
"\n".$this->lng->txt(
"survey_results_finished").
": ".$finished.
"\n\n";
2173 require_once
"Services/Mail/classes/class.ilMail.php";
2174 $mail =
new ilMail(ANONYMOUS_USER_ID);
2175 $mail->sendMimeMail(
2179 sprintf($this->lng->txt(
"svy_mail_own_results_subject"), $this->object->getTitle()),
2190 $anonymous_code =
$_SESSION[
"anonymous_id"][$this->
object->getId()];
2191 $active_id = $this->
object->getActiveID($ilUser->getId(), $anonymous_code, 0);
2192 if($this->object->isSurveyStarted(
$ilUser->getId(), $anonymous_code) !== 1 ||
2195 $this->ctrl->redirect($this,
"infoScreen");
2198 $recipient =
$_POST[
"mail"];
2201 $this->ctrl->redirect($this,
"infoScreen");
2207 $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
Export User Interface Class.
static checkAccess($a_ref_id, $a_allow_only_read=true)
check access to learning progress
const LP_CONTEXT_REPOSITORY
Class ilObjUserTrackingGUI.
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.
afterSave(ilObject $a_new_object)
save object @access public
initPropertiesForm()
Init survey settings form.
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.
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.
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.
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, $a_return_data_array=false)
Default behaviour is:
static is_email($a_email)
This preg-based function checks whether an e-mail address is formally valid.
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.
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']