ILIAS  release_4-4 Revision
All Data Structures Namespaces Files Functions Variables Modules Pages
class.ilObjSurveyGUI.php
Go to the documentation of this file.
1 <?php
2 /* Copyright (c) 1998-2010 ILIAS open source, Extended GPL, see docs/LICENSE */
3 
4 include_once "./Services/Object/classes/class.ilObjectGUI.php";
5 
23 {
24  public function __construct()
25  {
26  global $lng, $ilCtrl;
27 
28  $this->type = "svy";
29  $lng->loadLanguageModule("survey");
30  $this->ctrl = $ilCtrl;
31  $this->ctrl->saveParameter($this, "ref_id");
32 
33  parent::__construct("", (int)$_GET["ref_id"], true, false);
34  }
35 
36  public function executeCommand()
37  {
38  global $ilAccess, $ilNavigationHistory, $ilErr, $ilTabs;
39 
40  $this->external_rater_360 = false;
41  if(!$this->creation_mode &&
42  $this->object->get360Mode() &&
43  $_SESSION["anonymous_id"][$this->object->getId()] &&
44  ilObjSurvey::validateExternalRaterCode($this->object->getRefId(),
45  $_SESSION["anonymous_id"][$this->object->getId()]))
46  {
47  $this->external_rater_360 = true;
48  }
49 
50  if(!$this->external_rater_360)
51  {
52  if (!$ilAccess->checkAccess("read", "", $this->ref_id) &&
53  !$ilAccess->checkAccess("visible", "", $this->ref_id))
54  {
55  $ilErr->raiseError($this->lng->txt("permission_denied"), $ilErr->MESSAGE);
56  }
57 
58  // add entry to navigation history
59  if (!$this->getCreationMode() &&
60  $ilAccess->checkAccess("read", "", $this->ref_id))
61  {
62  $this->ctrl->setParameterByClass("ilobjsurveygui", "ref_id", $this->ref_id);
63  $link = $this->ctrl->getLinkTargetByClass("ilobjsurveygui", "");
64  $ilNavigationHistory->addItem($this->ref_id, $link, "svy");
65  }
66  }
67 
68  $cmd = $this->ctrl->getCmd("properties");
69 
70  // workaround for bug #6288, needs better solution
71  if ($cmd == "saveTags")
72  {
73  $this->ctrl->setCmdClass("ilinfoscreengui");
74  }
75 
76  // deep link from repository - "redirect" to page view
77  if(!$this->ctrl->getCmdClass() && $cmd == "questionsrepo")
78  {
79  $_REQUEST["pgov"] = 1;
80  $this->ctrl->setCmd("questions");
81  $this->ctrl->setCmdClass("ilsurveyeditorgui");
82  }
83 
84  $next_class = $this->ctrl->getNextClass($this);
85  $this->ctrl->setReturn($this, "properties");
86  $this->tpl->addCss(ilUtil::getStyleSheetLocation("output", "survey.css", "Modules/Survey"), "screen");
87  $this->prepareOutput();
88 
89  switch($next_class)
90  {
91  case "ilinfoscreengui":
92  $this->addHeaderAction();
93  $this->infoScreen(); // forwards command
94  break;
95 
96  case 'ilmdeditorgui':
97  $this->handleWriteAccess();
98  $ilTabs->activateTab("meta_data");
99  $this->addHeaderAction();
100  include_once 'Services/MetaData/classes/class.ilMDEditorGUI.php';
101  $md_gui =& new ilMDEditorGUI($this->object->getId(), 0, $this->object->getType());
102  $md_gui->addObserver($this->object,'MDUpdateListener','General');
103 
104  $this->ctrl->forwardCommand($md_gui);
105  break;
106 
107  case "ilsurveyevaluationgui":
108  $ilTabs->activateTab("svy_results");
109  $this->addHeaderAction();
110  include_once("./Modules/Survey/classes/class.ilSurveyEvaluationGUI.php");
111  $eval_gui = new ilSurveyEvaluationGUI($this->object);
112  $this->ctrl->forwardCommand($eval_gui);
113  break;
114 
115  case "ilsurveyexecutiongui":
116  $ilTabs->clearTargets();
117  include_once("./Modules/Survey/classes/class.ilSurveyExecutionGUI.php");
118  $exec_gui = new ilSurveyExecutionGUI($this->object);
119  $this->ctrl->forwardCommand($exec_gui);
120  break;
121 
122  case 'ilpermissiongui':
123  $ilTabs->activateTab("perm_settings");
124  $this->addHeaderAction();
125  include_once("Services/AccessControl/classes/class.ilPermissionGUI.php");
126  $perm_gui =& new ilPermissionGUI($this);
127  $this->ctrl->forwardCommand($perm_gui);
128  break;
129 
130  case 'ilobjectcopygui':
131  include_once './Services/Object/classes/class.ilObjectCopyGUI.php';
132  $cp = new ilObjectCopyGUI($this);
133  $cp->setType('svy');
134  $this->ctrl->forwardCommand($cp);
135  break;
136 
137  case "ilcommonactiondispatchergui":
138  include_once("Services/Object/classes/class.ilCommonActionDispatcherGUI.php");
140  $this->ctrl->forwardCommand($gui);
141  break;
142 
143  // 360, skill service
144  case 'ilsurveyskillgui':
145  $ilTabs->activateTab("survey_competences");
146  include_once("./Modules/Survey/classes/class.ilSurveySkillGUI.php");
147  $gui = new ilSurveySkillGUI($this->object);
148  $this->ctrl->forwardCommand($gui);
149  break;
150 
151  case 'ilsurveyskilldeterminationgui':
152  $ilTabs->activateTab("maintenance");
153  include_once("./Modules/Survey/classes/class.ilSurveySkillDeterminationGUI.php");
154  $gui = new ilSurveySkillDeterminationGUI($this->object);
155  $this->ctrl->forwardCommand($gui);
156  break;
157 
158  case 'ilsurveyeditorgui':
159  $this->handleWriteAccess();
160  $ilTabs->activateTab("survey_questions");
161  include_once("./Modules/Survey/classes/class.ilSurveyEditorGUI.php");
162  $gui = new ilSurveyEditorGUI($this);
163  $this->ctrl->forwardCommand($gui);
164  break;
165 
166  case 'ilsurveyconstraintsgui':
167  $this->handleWriteAccess();
168  $ilTabs->activateTab("constraints");
169  include_once("./Modules/Survey/classes/class.ilSurveyConstraintsGUI.php");
170  $gui = new ilSurveyConstraintsGUI($this);
171  $this->ctrl->forwardCommand($gui);
172  break;
173 
174  case 'ilsurveyparticipantsgui':
175  if(!$this->object->get360Mode())
176  {
177  $ilTabs->activateTab("maintenance");
178  }
179  else
180  {
181  $ilTabs->activateTab("survey_360_appraisees");
182  }
183  include_once("./Modules/Survey/classes/class.ilSurveyParticipantsGUI.php");
184  $gui = new ilSurveyParticipantsGUI($this);
185  $this->ctrl->forwardCommand($gui);
186  break;
187 
188  default:
189  $this->addHeaderAction();
190  $cmd.= "Object";
191  $this->$cmd();
192  break;
193  }
194 
195  if (strtolower($_GET["baseClass"]) != "iladministrationgui" &&
196  $this->getCreationMode() != true)
197  {
198  $this->tpl->show();
199  }
200  }
201 
209  public function evaluationObject()
210  {
211  include_once("./Modules/Survey/classes/class.ilSurveyEvaluationGUI.php");
212  $eval_gui = new ilSurveyEvaluationGUI($this->object);
213  $this->ctrl->setCmdClass(get_class($eval_gui));
214  $this->ctrl->redirect($eval_gui, "evaluation");
215  }
216 
217  protected function addDidacticTemplateOptions(array &$a_options)
218  {
219  include_once "Services/Administration/classes/class.ilSettingsTemplate.php";
221  if($templates)
222  {
223  foreach($templates as $item)
224  {
225  $a_options["svytpl_".$item["id"]] = array($item["title"],
226  nl2br(trim($item["description"])));
227  }
228  }
229 
230  // JF, 2013-06-10
231  $a_options["svy360_1"] = array($this->lng->txt("survey_360_mode"),
232  $this->lng->txt("survey_360_mode_info"));
233  }
234 
239  function afterSave(ilObject $a_new_object)
240  {
241  // #16446
242  $a_new_object->loadFromDb();
243 
244  $tpl = $this->getDidacticTemplateVar("svytpl");
245  if($tpl)
246  {
247  $a_new_object->applySettingsTemplate($tpl);
248  }
249 
250  $a_new_object->set360Mode((bool)$this->getDidacticTemplateVar("svy360"));
251  if($a_new_object->get360Mode())
252  {
253  $a_new_object->setAnonymize(ilObjSurvey::ANONYMIZE_CODE_ALL);
254  $a_new_object->setEvaluationAccess(ilObjSurvey::EVALUATION_ACCESS_PARTICIPANTS);
255  }
256  $a_new_object->saveToDB();
257 
258  // always send a message
259  ilUtil::sendSuccess($this->lng->txt("object_added"),true);
260  ilUtil::redirect("ilias.php?baseClass=ilObjSurveyGUI&ref_id=".
261  $a_new_object->getRefId()."&cmd=properties");
262  }
263 
269  function getTabs(&$tabs_gui)
270  {
271  global $ilAccess, $ilUser, $ilHelp;
272 
273  if($this->object instanceof ilObjSurveyQuestionPool)
274  {
275  return true;
276  }
277 
278  $ilHelp->setScreenIdComponent("svy");
279 
280  $hidden_tabs = array();
281  $template = $this->object->getTemplate();
282  if($template)
283  {
284  include_once "Services/Administration/classes/class.ilSettingsTemplate.php";
285  $template = new ilSettingsTemplate($template);
286  $hidden_tabs = $template->getHiddenTabs();
287  }
288 
289  if ($ilAccess->checkAccess("write", "", $this->ref_id))
290  {
291  $tabs_gui->addTab("survey_questions",
292  $this->lng->txt("survey_questions"),
293  $this->ctrl->getLinkTargetByClass(array("ilsurveyeditorgui", "ilsurveypagegui"), "renderPage"));
294  }
295 
296  if ($ilAccess->checkAccess("visible", "", $this->ref_id))
297  {
298  $tabs_gui->addTab("info_short",
299  $this->lng->txt("info_short"),
300  $this->ctrl->getLinkTarget($this,'infoScreen'));
301  }
302 
303  // properties
304  if ($ilAccess->checkAccess("write", "", $this->ref_id))
305  {
306  $tabs_gui->addTab("settings",
307  $this->lng->txt("settings"),
308  $this->ctrl->getLinkTarget($this,'properties'));
309  }
310  else if ($ilAccess->checkAccess("read", "", $this->ref_id))
311  {
312  if($this->object->get360Mode() &&
313  $this->object->get360SelfRaters() &&
314  $this->object->isAppraisee($ilUser->getId()) &&
315  !$this->object->isAppraiseeClosed($ilUser->getId()))
316  {
317  $tabs_gui->addTab("survey_360_edit_raters",
318  $this->lng->txt("survey_360_edit_raters"),
319  $this->ctrl->getLinkTargetByClass('ilsurveyparticipantsgui','editRaters'));
320 
321  // :TODO: mail to raters
322  }
323  }
324 
325  // questions
326  if ($ilAccess->checkAccess("write", "", $this->ref_id) &&
327  !in_array("constraints", $hidden_tabs) &&
328  !$this->object->get360Mode())
329  {
330  // constraints
331  $tabs_gui->addTab("constraints",
332  $this->lng->txt("constraints"),
333  $this->ctrl->getLinkTargetByClass("ilsurveyconstraintsgui", "constraints"));
334  }
335 
336  if ($ilAccess->checkAccess("write", "", $this->ref_id))
337  {
338  // 360°
339  if($this->object->get360Mode())
340  {
341  // 360 mode + competence service
342  include_once("./Services/Skill/classes/class.ilSkillManagementSettings.php");
343  $skmg_set = new ilSkillManagementSettings();
344  if ($this->object->get360SkillService() && $skmg_set->isActivated())
345  {
346  $tabs_gui->addTab("survey_competences",
347  $this->lng->txt("survey_competences"),
348  $this->ctrl->getLinkTargetByClass("ilsurveyskillgui", "listQuestionAssignment"));
349  }
350 
351  $tabs_gui->addTab("survey_360_appraisees",
352  $this->lng->txt("survey_360_appraisees"),
353  $this->ctrl->getLinkTargetByClass('ilsurveyparticipantsgui', 'listAppraisees'));
354  }
355  else
356  {
357  // maintenance
358  $tabs_gui->addTab("maintenance",
359  $this->lng->txt("maintenance"),
360  $this->ctrl->getLinkTargetByClass('ilsurveyparticipantsgui', 'maintenance'));
361  }
362  }
363 
364  include_once "./Modules/Survey/classes/class.ilObjSurveyAccess.php";
365  if ($ilAccess->checkAccess("write", "", $this->ref_id) ||
366  ilObjSurveyAccess::_hasEvaluationAccess($this->object->getId(), $ilUser->getId()))
367  {
368  // evaluation
369  $tabs_gui->addTab("svy_results",
370  $this->lng->txt("svy_results"),
371  $this->ctrl->getLinkTargetByClass("ilsurveyevaluationgui", ""));
372  }
373 
374  if ($ilAccess->checkAccess("write", "", $this->ref_id))
375  {
376  if(!in_array("meta_data", $hidden_tabs))
377  {
378  // meta data
379  $tabs_gui->addTab("meta_data",
380  $this->lng->txt("meta_data"),
381  $this->ctrl->getLinkTargetByClass('ilmdeditorgui','listSection'));
382  }
383 
384  if(!in_array("export", $hidden_tabs))
385  {
386  // export
387  $tabs_gui->addTab("export",
388  $this->lng->txt("export"),
389  $this->ctrl->getLinkTarget($this,'export'));
390  }
391  }
392 
393  if ($ilAccess->checkAccess("edit_permission", "", $this->ref_id))
394  {
395  // permissions
396  $tabs_gui->addTab("perm_settings",
397  $this->lng->txt("perm_settings"),
398  $this->ctrl->getLinkTargetByClass(array(get_class($this),'ilpermissiongui'), "perm"));
399  }
400  }
401 
409  public function handleWriteAccess()
410  {
411  global $ilAccess;
412  if (!$ilAccess->checkAccess("write", "", $this->ref_id))
413  {
414  // allow only write access
415  ilUtil::sendInfo($this->lng->txt("cannot_edit_survey"), TRUE);
416  $this->ctrl->redirect($this, "infoScreen");
417  }
418  }
419 
420 
421  //
422  // SETTINGS
423  //
424 
433  {
434  global $rbacsystem;
435 
436  $form = $this->initPropertiesForm();
437  if ($form->checkInput())
438  {
439  $valid = true;
440 
441  if(!$this->object->get360Mode())
442  {
443  if($form->getInput("tut"))
444  {
445  // check if given "tutors" have write permission
446  $tut_ids =array();
447  $tut_logins = $form->getInput("tut_ids");
448  foreach($tut_logins as $tut_login)
449  {
450  $tut_id = ilObjUser::_lookupId($tut_login);
451  if($tut_id && $rbacsystem->checkAccessOfUser($tut_id, "write", $this->object->getRefId()))
452  {
453  $tut_ids[] = $tut_id;
454  }
455  }
456  if(!$tut_ids)
457  {
458  $tut_ids = $form->getItemByPostVar("tut_ids");
459  $tut_ids->setAlert($this->lng->txt("survey_notification_tutor_recipients_invalid"));
460  $valid = false;
461  }
462  }
463  }
464 
465  if($valid)
466  {
467  if(!$this->object->get360Mode())
468  {
469  if($form->getInput("rmd"))
470  {
471  $rmd_start = $form->getInput("rmd_start");
472  $rmd_start = $rmd_start["date"];
473  $rmd_end = null;
474  if($form->getInput("rmd_end_tgl"))
475  {
476  $rmd_end = $form->getInput("rmd_end");
477  $rmd_end = $rmd_end["date"];
478  if($rmd_start > $rmd_end)
479  {
480  $tmp = $rmd_start;
481  $rmd_start = $rmd_end;
482  $rmd_end = $tmp;
483  }
484  $rmd_end = new ilDate($rmd_end, IL_CAL_DATE);
485  }
486  $rmd_start = new ilDate($rmd_start, IL_CAL_DATE);
487 
488  $this->object->setReminderStatus(true);
489  $this->object->setReminderStart($rmd_start);
490  $this->object->setReminderEnd($rmd_end);
491  $this->object->setReminderFrequency($form->getInput("rmd_freq"));
492  $this->object->setReminderTarget($form->getInput("rmd_grp"));
493  }
494  else
495  {
496  $this->object->setReminderStatus(false);
497  }
498 
499  if($form->getInput("tut"))
500  {
501  $this->object->setTutorNotificationStatus(true);
502  $this->object->setTutorNotificationRecipients($tut_ids); // see above
503  $this->object->setTutorNotificationTarget($form->getInput("tut_grp"));
504  }
505  else
506  {
507  $this->object->setTutorNotificationStatus(false);
508  }
509  }
510 
511  // #10055
512  if ($_POST['online'] && count($this->object->questions) == 0)
513  {
514  $_POST['online'] = null;
515  ilUtil::sendFailure($this->lng->txt("cannot_switch_to_online_no_questions"), true);
516  }
517 
518  $template_settings = null;
519  $template = $this->object->getTemplate();
520  if($template)
521  {
522  include_once "Services/Administration/classes/class.ilSettingsTemplate.php";
523  $template = new ilSettingsTemplate($template);
524  $template_settings = $template->getSettings();
525  }
526 
527  include_once 'Services/MetaData/classes/class.ilMD.php';
528  $md_obj =& new ilMD($this->object->getId(), 0, "svy");
529  $md_section = $md_obj->getGeneral();
530 
531  // title
532  $md_section->setTitle(ilUtil::stripSlashes($_POST['title']));
533  $md_section->update();
534 
535  // Description
536  $md_desc_ids = $md_section->getDescriptionIds();
537  if($md_desc_ids)
538  {
539  $md_desc = $md_section->getDescription(array_pop($md_desc_ids));
540  $md_desc->setDescription(ilUtil::stripSlashes($_POST['description']));
541  $md_desc->update();
542  }
543 
544  // both are saved in object, too
545  $this->object->setTitle(ilUtil::stripSlashes($_POST['title']));
546  $this->object->setDescription(ilUtil::stripSlashes($_POST['description']));
547  $this->object->update();
548 
549  $this->object->setStatus($_POST['online']);
550 
551  // activation
552  if($_POST["access_type"])
553  {
554  $this->object->setActivationLimited(true);
555  $this->object->setActivationVisibility($_POST["access_visiblity"]);
556 
557  $period = $form->getItemByPostVar("access_period");
558  $this->object->setActivationStartDate($period->getStart()->get(IL_CAL_UNIX));
559  $this->object->setActivationEndDate($period->getEnd()->get(IL_CAL_UNIX));
560  }
561  else
562  {
563  $this->object->setActivationLimited(false);
564  }
565 
566 
567  if(!$template_settings["enabled_start_date"]["hide"])
568  {
569  if ($_POST["enabled_start_date"])
570  {
571  $this->object->setStartDateAndTime($_POST["start_date"]['date'], $_POST["start_date"]['time']);
572  }
573  else
574  {
575  $this->object->setStartDate(null);
576  }
577  }
578 
579  if(!$template_settings["enabled_end_date"]["hide"])
580  {
581  if ($_POST["enabled_end_date"])
582  {
583  $this->object->setEndDateAndTime($_POST["end_date"]['date'], $_POST["end_date"]['time']);
584  }
585  else
586  {
587  $this->object->setEndDate(null);
588  }
589  }
590 
591 
592  include_once "./Services/AdvancedEditing/classes/class.ilObjAdvancedEditing.php";
593  $introduction = $_POST["introduction"];
594  $this->object->setIntroduction($introduction);
595  $outro = $_POST["outro"];
596  $this->object->setOutro($outro);
597 
598  if(!$template_settings["show_question_titles"]["hide"])
599  {
600  $this->object->setShowQuestionTitles($_POST["show_question_titles"]);
601  }
602 
603  if(!$template_settings["use_pool"]["hide"])
604  {
605  $this->object->setPoolUsage($_POST["use_pool"]);
606  }
607 
608  $this->object->setMailNotification($_POST['mailnotification']);
609  $this->object->setMailAddresses($_POST['mailaddresses']);
610  $this->object->setMailParticipantData($_POST['mailparticipantdata']);
611 
612  // 360°
613  if($this->object->get360Mode())
614  {
615  $this->object->set360SelfEvaluation((bool)$_POST["self_eval"]);
616  $this->object->set360SelfAppraisee((bool)$_POST["self_appr"]);
617  $this->object->set360SelfRaters((bool)$_POST["self_rate"]);
618  $this->object->set360Results((int)$_POST["ts_res"]);;
619  $this->object->set360SkillService((int)$_POST["skill_service"]);
620  }
621  else
622  {
623  $this->object->setEvaluationAccess($_POST["evaluation_access"]);
624 
625  $hasDatasets = $this->object->_hasDatasets($this->object->getSurveyId());
626  if (!$hasDatasets)
627  {
628  $anon_map = array('personalized' => ilObjSurvey::ANONYMIZE_OFF,
629  'anonymize_with_code' => ilObjSurvey::ANONYMIZE_ON,
630  'anonymize_without_code' => ilObjSurvey::ANONYMIZE_FREEACCESS);
631  if(array_key_exists($_POST["anonymization_options"], $anon_map))
632  {
633  $this->object->setAnonymize($anon_map[$_POST["anonymization_options"]]);
634  if (strcmp($_POST['anonymization_options'], 'anonymize_with_code') == 0) $anonymize = ilObjSurvey::ANONYMIZE_ON;
635  if (strcmp($_POST['anonymization_options'], 'anonymize_with_code_all') == 0) $anonymize = ilObjSurvey::ANONYMIZE_CODE_ALL;
636  }
637  }
638  }
639 
640  $this->object->saveToDb();
641 
642  if (strcmp($_SESSION["info"], "") != 0)
643  {
644  ilUtil::sendSuccess($_SESSION["info"] . "<br />" . $this->lng->txt("settings_saved"), true);
645  }
646  else
647  {
648  ilUtil::sendSuccess($this->lng->txt("settings_saved"), true);
649  }
650  $this->ctrl->redirect($this, "properties");
651  }
652  }
653 
654  $form->setValuesByPost();
655  $this->propertiesObject($form);
656  }
657 
664  {
665  $template_settings = $hide_rte_switch = null;
666  $template = $this->object->getTemplate();
667  if($template)
668  {
669  include_once "Services/Administration/classes/class.ilSettingsTemplate.php";
670  $template = new ilSettingsTemplate($template);
671 
672  $template_settings = $template->getSettings();
673  $hide_rte_switch = $template_settings["rte_switch"]["hide"];
674  }
675 
676  include_once("./Services/Form/classes/class.ilPropertyFormGUI.php");
677  $form = new ilPropertyFormGUI();
678  $form->setFormAction($this->ctrl->getFormAction($this));
679  $form->setTableWidth("100%");
680  $form->setId("survey_properties");
681 
682  // general properties
683  $header = new ilFormSectionHeaderGUI();
684  $header->setTitle($this->lng->txt("settings"));
685  $form->addItem($header);
686 
687  // title & description (meta data)
688 
689  include_once 'Services/MetaData/classes/class.ilMD.php';
690  $md_obj = new ilMD($this->object->getId(), 0, "svy");
691  $md_section = $md_obj->getGeneral();
692 
693  $title = new ilTextInputGUI($this->lng->txt("title"), "title");
694  $title->setRequired(true);
695  $title->setValue($md_section->getTitle());
696  $form->addItem($title);
697 
698  $ids = $md_section->getDescriptionIds();
699  if($ids)
700  {
701  $desc_obj = $md_section->getDescription(array_pop($ids));
702 
703  $desc = new ilTextAreaInputGUI($this->lng->txt("description"), "description");
704  $desc->setCols(50);
705  $desc->setRows(4);
706  $desc->setValue($desc_obj->getDescription());
707  $form->addItem($desc);
708  }
709 
710  // anonymization
711  if(!$this->object->get360Mode())
712  {
713  $anonymization_options = new ilRadioGroupInputGUI($this->lng->txt("survey_auth_mode"), "anonymization_options");
714  $hasDatasets = $this->object->_hasDatasets($this->object->getSurveyId());
715  if ($hasDatasets)
716  {
717  $anonymization_options->setDisabled(true);
718  }
719  $anonymization_options->addOption(new ilCheckboxOption($this->lng->txt("anonymize_personalized"),
720  'personalized', ''));
721  $anonymization_options->addOption(new ilCheckboxOption(
722  $this->lng->txt("anonymize_without_code"), 'anonymize_without_code', ''));
723  $anonymization_options->addOption(new ilCheckboxOption(
724  $this->lng->txt("anonymize_with_code"), 'anonymize_with_code', ''));
725  if(!$this->object->getAnonymize())
726  {
727  $anonymization_options->setValue('personalized');
728  }
729  else
730  {
731  $anonymization_options->setValue(($this->object->isAccessibleWithoutCode()) ?
732  'anonymize_without_code' : 'anonymize_with_code');
733  }
734  $anonymization_options->setInfo($this->lng->txt("anonymize_survey_description"));
735  $form->addItem($anonymization_options);
736  }
737  // 360°
738  else
739  {
740  $self_eval = new ilCheckboxInputGUI($this->lng->txt("survey_360_self_evaluation"), "self_eval");
741  $self_eval->setChecked($this->object->get360SelfEvaluation());
742  $form->addItem($self_eval);
743 
744  $self_rate = new ilCheckboxInputGUI($this->lng->txt("survey_360_self_raters"), "self_rate");
745  $self_rate->setChecked($this->object->get360SelfRaters());
746  $form->addItem($self_rate);
747 
748  $self_appr = new ilCheckboxInputGUI($this->lng->txt("survey_360_self_appraisee"), "self_appr");
749  $self_appr->setChecked($this->object->get360SelfAppraisee());
750  $form->addItem($self_appr);
751  }
752 
753  // pool usage
754  $pool_usage = new ilRadioGroupInputGUI($this->lng->txt("survey_question_pool_usage"), "use_pool");
755  $opt = new ilRadioOption($this->lng->txt("survey_question_pool_usage_active"), 1);
756  $opt->setInfo($this->lng->txt("survey_question_pool_usage_active_info"));
757  $pool_usage->addOption($opt);
758  $opt = new ilRadioOption($this->lng->txt("survey_question_pool_usage_inactive"), 0);
759  $opt->setInfo($this->lng->txt("survey_question_pool_usage_inactive_info"));
760  $pool_usage->addOption($opt);
761  $pool_usage->setValue($this->object->getPoolUsage());
762  $form->addItem($pool_usage);
763 
764 
765  // activation
766 
767  include_once "Services/Object/classes/class.ilObjectActivation.php";
768  $this->lng->loadLanguageModule('rep');
769 
771  $section->setTitle($this->lng->txt('rep_activation_availability'));
772  $form->addItem($section);
773 
774  // additional info only with multiple references
775  $act_obj_info = $act_ref_info = "";
776  if(sizeof(ilObject::_getAllReferences($this->object->getId())) > 1)
777  {
778  $act_obj_info = ' '.$this->lng->txt('rep_activation_online_object_info');
779  $act_ref_info = $this->lng->txt('rep_activation_access_ref_info');
780  }
781 
782  $online = new ilCheckboxInputGUI($this->lng->txt('rep_activation_online'),'online');
783  $online->setInfo($this->lng->txt('svy_activation_online_info').$act_obj_info);
784  $online->setChecked($this->object->isOnline());
785  $form->addItem($online);
786 
787  $act_type = new ilCheckboxInputGUI($this->lng->txt('rep_visibility_until'),'access_type');
788  // $act_type->setInfo($this->lng->txt('svy_availability_until_info'));
789  $act_type->setChecked($this->object->isActivationLimited());
790 
791  $this->tpl->addJavaScript('./Services/Form/js/date_duration.js');
792  include_once "Services/Form/classes/class.ilDateDurationInputGUI.php";
793  $dur = new ilDateDurationInputGUI($this->lng->txt('rep_time_period'), "access_period");
794  $dur->setShowTime(true);
795  $date = $this->object->getActivationStartDate();
796  $dur->setStart(new ilDateTime($date ? $date : time(), IL_CAL_UNIX));
797  $dur->setStartText($this->lng->txt('rep_activation_limited_start'));
798  $date = $this->object->getActivationEndDate();
799  $dur->setEnd(new ilDateTime($date ? $date : time(), IL_CAL_UNIX));
800  $dur->setEndText($this->lng->txt('rep_activation_limited_end'));
801  $act_type->addSubItem($dur);
802 
803  $visible = new ilCheckboxInputGUI($this->lng->txt('rep_activation_limited_visibility'), 'access_visiblity');
804  $visible->setInfo($this->lng->txt('svy_activation_limited_visibility_info'));
805  $visible->setChecked($this->object->getActivationVisibility());
806  $act_type->addSubItem($visible);
807 
808  $form->addItem($act_type);
809 
810 
811  // enable start date
812  $start = $this->object->getStartDate();
813  $enablestartingtime = new ilCheckboxInputGUI($this->lng->txt("start_date"), "enabled_start_date");
814  $enablestartingtime->setValue(1);
815  // $enablestartingtime->setOptionTitle($this->lng->txt("enabled"));
816  $enablestartingtime->setChecked($start);
817  // start date
818  $startingtime = new ilDateTimeInputGUI('', 'start_date');
819  $startingtime->setShowDate(true);
820  $startingtime->setShowTime(true);
821  if ($start)
822  {
823  $startingtime->setDate(new ilDate($start, IL_CAL_TIMESTAMP));
824  }
825  $enablestartingtime->addSubItem($startingtime);
826  $form->addItem($enablestartingtime);
827 
828  // enable end date
829  $end = $this->object->getEndDate();
830  $enableendingtime = new ilCheckboxInputGUI($this->lng->txt("end_date"), "enabled_end_date");
831  $enableendingtime->setValue(1);
832  // $enableendingtime->setOptionTitle($this->lng->txt("enabled"));
833  $enableendingtime->setChecked($end);
834  // end date
835  $endingtime = new ilDateTimeInputGUI('', 'end_date');
836  $endingtime->setShowDate(true);
837  $endingtime->setShowTime(true);
838  if ($end)
839  {
840  $endingtime->setDate(new ilDate($end, IL_CAL_TIMESTAMP));
841  }
842  $enableendingtime->addSubItem($endingtime);
843  $form->addItem($enableendingtime);
844 
845 
846  // presentation properties
847  $info = new ilFormSectionHeaderGUI();
848  $info->setTitle($this->lng->txt("svy_presentation_properties"));
849  $form->addItem($info);
850 
851  // show question titles
852  $show_question_titles = new ilCheckboxInputGUI($this->lng->txt("svy_show_questiontitles"), "show_question_titles");
853  $show_question_titles->setValue(1);
854  $show_question_titles->setChecked($this->object->getShowQuestionTitles());
855  $form->addItem($show_question_titles);
856 
857  // introduction
858  $intro = new ilTextAreaInputGUI($this->lng->txt("introduction"), "introduction");
859  $intro->setValue($this->object->prepareTextareaOutput($this->object->getIntroduction()));
860  $intro->setRows(10);
861  $intro->setCols(80);
862  $intro->setUseRte(TRUE);
863  $intro->setInfo($this->lng->txt("survey_introduction_info"));
864  include_once "./Services/AdvancedEditing/classes/class.ilObjAdvancedEditing.php";
865  $intro->setRteTags(ilObjAdvancedEditing::_getUsedHTMLTags("survey"));
866  $intro->addPlugin("latex");
867  $intro->addButton("latex");
868  $intro->addButton("pastelatex");
869  $intro->setRTESupport($this->object->getId(), "svy", "survey", null, $hide_rte_switch);
870  $form->addItem($intro);
871 
872  // final statement
873  $finalstatement = new ilTextAreaInputGUI($this->lng->txt("outro"), "outro");
874  $finalstatement->setValue($this->object->prepareTextareaOutput($this->object->getOutro()));
875  $finalstatement->setRows(10);
876  $finalstatement->setCols(80);
877  $finalstatement->setUseRte(TRUE);
878  $finalstatement->setRteTags(ilObjAdvancedEditing::_getUsedHTMLTags("survey"));
879  $finalstatement->addPlugin("latex");
880  $finalstatement->addButton("latex");
881  $finalstatement->addButton("pastelatex");
882  $finalstatement->setRTESupport($this->object->getId(), "svy", "survey", null, $hide_rte_switch);
883  $form->addItem($finalstatement);
884 
885 
886  // results properties
888  $results->setTitle($this->lng->txt("results"));
889  $form->addItem($results);
890 
891  // evaluation access
892  if(!$this->object->get360Mode())
893  {
894  $evaluation_access = new ilRadioGroupInputGUI($this->lng->txt('evaluation_access'), "evaluation_access");
895  $evaluation_access->setInfo($this->lng->txt('evaluation_access_description'));
896  $evaluation_access->addOption(new ilCheckboxOption($this->lng->txt("evaluation_access_off"), ilObjSurvey::EVALUATION_ACCESS_OFF, ''));
897  $evaluation_access->addOption(new ilCheckboxOption($this->lng->txt("evaluation_access_all"), ilObjSurvey::EVALUATION_ACCESS_ALL, ''));
898  $evaluation_access->addOption(new ilCheckboxOption($this->lng->txt("evaluation_access_participants"), ilObjSurvey::EVALUATION_ACCESS_PARTICIPANTS, ''));
899  $evaluation_access->setValue($this->object->getEvaluationAccess());
900  $form->addItem($evaluation_access);
901  }
902  // 360°
903  else
904  {
905  $ts_results = new ilRadioGroupInputGUI($this->lng->txt("survey_360_results"), "ts_res");
906  $ts_results->setValue($this->object->get360Results());
907  $ts_results->addOption(new ilRadioOption($this->lng->txt("survey_360_results_none"), ilObjSurvey::RESULTS_360_NONE));
908  $ts_results->addOption(new ilRadioOption($this->lng->txt("survey_360_results_own"), ilObjSurvey::RESULTS_360_OWN));
909  $ts_results->addOption(new ilRadioOption($this->lng->txt("survey_360_results_all"), ilObjSurvey::RESULTS_360_ALL));
910  $form->addItem($ts_results);
911  }
912 
913  // mail notification
914  $mailnotification = new ilCheckboxInputGUI($this->lng->txt("mailnotification"), "mailnotification");
915  // $mailnotification->setOptionTitle($this->lng->txt("activate"));
916  $mailnotification->setInfo($this->lng->txt("svy_result_mail_notification_info")); // #11762
917  $mailnotification->setValue(1);
918  $mailnotification->setChecked($this->object->getMailNotification());
919 
920  // addresses
921  $mailaddresses = new ilTextInputGUI($this->lng->txt("mailaddresses"), "mailaddresses");
922  $mailaddresses->setValue($this->object->getMailAddresses());
923  $mailaddresses->setSize(80);
924  $mailaddresses->setInfo($this->lng->txt('mailaddresses_info'));
925  $mailaddresses->setRequired(true);
926 
927  // participant data
928  $participantdata = new ilTextAreaInputGUI($this->lng->txt("mailparticipantdata"), "mailparticipantdata");
929  $participantdata->setValue($this->object->getMailParticipantData());
930  $participantdata->setRows(6);
931  $participantdata->setCols(80);
932  $participantdata->setUseRte(false);
933  $participantdata->setInfo($this->lng->txt('mailparticipantdata_info'));
934 
935  // #12755 - because of privacy concerns we restrict user data to a minimum
936  $placeholders = array(
937  "FIRST_NAME" => "firstname",
938  "LAST_NAME" => "lastname",
939  "LOGIN" => "login"
940  );
941  $txt = array();
942  foreach($placeholders as $placeholder => $caption)
943  {
944  $txt[] = "[".strtoupper($placeholder)."]: ".$this->lng->txt($caption);
945  }
946  $txt = implode("<br />", $txt);
947  $participantdatainfo = new ilNonEditableValueGUI($this->lng->txt("mailparticipantdata_placeholder"), "", true);
948  $participantdatainfo->setValue($txt);
949 
950  $mailnotification->addSubItem($mailaddresses);
951  $mailnotification->addSubItem($participantdata);
952  $mailnotification->addSubItem($participantdatainfo);
953  $form->addItem($mailnotification);
954 
955  // reminder/notification - currently not available for 360°
956  if(!$this->object->get360Mode())
957  {
958  // parent course?
959  global $tree;
960  $has_parent = $tree->checkForParentType($this->object->getRefId(), "grp");
961  if(!$has_parent)
962  {
963  $has_parent = $tree->checkForParentType($this->object->getRefId(), "crs");
964  }
965  $num_inv = sizeof($this->object->getInvitedUsers());
966 
967  $ntf = new ilFormSectionHeaderGUI();
968  $ntf->setTitle($this->lng->txt("survey_notification_settings"));
969  $form->addItem($ntf);
970 
971  // reminder
972  $rmd = new ilCheckboxInputGUI($this->lng->txt("survey_reminder_setting"), "rmd");
973  $rmd->setChecked($this->object->getReminderStatus());
974  $form->addItem($rmd);
975 
976  $rmd_start = new ilDateTimeInputGUI($this->lng->txt("survey_reminder_start"), "rmd_start");
977  $rmd_start->setRequired(true);
978  $start = $this->object->getReminderStart();
979  if($start)
980  {
981  $rmd_start->setDate($start);
982  }
983  $rmd->addSubItem($rmd_start);
984 
985  $end = $this->object->getReminderEnd();
986  $rmd_end = new ilDateTimeInputGUI($this->lng->txt("survey_reminder_end"), "rmd_end");
987  $rmd_end->enableDateActivation("", "rmd_end_tgl", (bool)$end);
988  if($end)
989  {
990  $rmd_end->setDate($end);
991  }
992  $rmd->addSubItem($rmd_end);
993 
994  $rmd_freq = new ilNumberInputGUI($this->lng->txt("survey_reminder_frequency"), "rmd_freq");
995  $rmd_freq->setRequired(true);
996  $rmd_freq->setSize(3);
997  $rmd_freq->setSuffix($this->lng->txt("survey_reminder_frequency_days"));
998  $rmd_freq->setValue($this->object->getReminderFrequency());
999  $rmd_freq->setMinValue(1);
1000  $rmd->addSubItem($rmd_freq);
1001 
1002  $rmd_grp = new ilRadioGroupInputGUI($this->lng->txt("survey_notification_target_group"), "rmd_grp");
1003  $rmd_grp->setRequired(true);
1004  $rmd_grp->setValue($this->object->getReminderTarget());
1005  $rmd->addSubItem($rmd_grp);
1006 
1007  $rmd_grp_crs = new ilRadioOption($this->lng->txt("survey_notification_target_group_parent_course"),
1009  if(!$has_parent)
1010  {
1011  $rmd_grp_crs->setInfo($this->lng->txt("survey_notification_target_group_parent_course_inactive"));
1012  }
1013  $rmd_grp->addOption($rmd_grp_crs);
1014 
1015  $rmd_grp_inv = new ilRadioOption($this->lng->txt("survey_notification_target_group_invited"),
1017  $rmd_grp_inv->setInfo(sprintf($this->lng->txt("survey_notification_target_group_invited_info"), $num_inv));
1018  $rmd_grp->addOption($rmd_grp_inv);
1019 
1020 
1021  // notification
1022  $tut = new ilCheckboxInputGUI($this->lng->txt("survey_notification_tutor_setting"), "tut");
1023  $tut->setChecked($this->object->getTutorNotificationStatus());
1024  $form->addItem($tut);
1025 
1026  $tut_logins = array();
1027  $tuts = $this->object->getTutorNotificationRecipients();
1028  if($tuts)
1029  {
1030  foreach($tuts as $tut_id)
1031  {
1032  $tmp = ilObjUser::_lookupName($tut_id);
1033  if($tmp["login"])
1034  {
1035  $tut_logins[] = $tmp["login"];
1036  }
1037  }
1038  }
1039  $tut_ids = new ilTextInputGUI($this->lng->txt("survey_notification_tutor_recipients"), "tut_ids");
1040  $tut_ids->setDataSource($this->ctrl->getLinkTarget($this, "doAutoComplete", "", true));
1041  $tut_ids->setRequired(true);
1042  $tut_ids->setMulti(true);
1043  $tut_ids->setMultiValues($tut_logins);
1044  $tut_ids->setValue(array_shift($tut_logins));
1045  $tut->addSubItem($tut_ids);
1046 
1047  $tut_grp = new ilRadioGroupInputGUI($this->lng->txt("survey_notification_target_group"), "tut_grp");
1048  $tut_grp->setRequired(true);
1049  $tut_grp->setValue($this->object->getTutorNotificationTarget());
1050  $tut->addSubItem($tut_grp);
1051 
1052  $tut_grp_crs = new ilRadioOption($this->lng->txt("survey_notification_target_group_parent_course"),
1054  if(!$has_parent)
1055  {
1056  $tut_grp_crs->setInfo($this->lng->txt("survey_notification_target_group_parent_course_inactive"));
1057  }
1058  $tut_grp->addOption($tut_grp_crs);
1059 
1060  $tut_grp_inv = new ilRadioOption($this->lng->txt("survey_notification_target_group_invited"),
1062  $tut_grp_inv->setInfo(sprintf($this->lng->txt("survey_notification_target_group_invited_info"), $num_inv));
1063  $tut_grp->addOption($tut_grp_inv);
1064  }
1065 
1066  // competence service activation for 360 mode
1067  include_once("./Services/Skill/classes/class.ilSkillManagementSettings.php");
1068  $skmg_set = new ilSkillManagementSettings();
1069  if($this->object->get360Mode() && $skmg_set->isActivated())
1070  {
1071  $other = new ilFormSectionHeaderGUI();
1072  $other->setTitle($this->lng->txt("other"));
1073  $form->addItem($other);
1074 
1075  $skill_service = new ilCheckboxInputGUI($this->lng->txt("survey_activate_skill_service"), "skill_service");
1076  $skill_service->setChecked($this->object->get360SkillService());
1077  $form->addItem($skill_service);
1078  }
1079 
1080  $form->addCommandButton("saveProperties", $this->lng->txt("save"));
1081 
1082  // remove items when using template
1083  if($template_settings)
1084  {
1085  foreach($template_settings as $id => $item)
1086  {
1087  if($item["hide"])
1088  {
1089  $form->removeItemByPostVar($id);
1090  }
1091  }
1092  }
1093 
1094  return $form;
1095  }
1096 
1102  function propertiesObject(ilPropertyFormGUI $a_form = null)
1103  {
1104  global $ilAccess, $ilTabs, $ilHelp;
1105 
1106  $this->handleWriteAccess();
1107 
1108  $ilTabs->activateTab("settings");
1109 
1110 
1111  if ($this->object->get360Mode())
1112  {
1113  $ilHelp->setScreenId("settings_360");
1114  }
1115 
1116  if(!$a_form)
1117  {
1118  $a_form = $this->initPropertiesForm();
1119  }
1120 
1121  // using template?
1122  $message = "";
1123  if($this->object->getTemplate())
1124  {
1125  $link = $this->ctrl->getLinkTarget($this, "confirmResetTemplate");
1126  $link = "<a href=\"".$link."\">".$this->lng->txt("survey_using_template_link")."</a>";
1127  $message = "<div style=\"margin-top:10px\">".
1128  $this->tpl->getMessageHTML(sprintf($this->lng->txt("survey_using_template"),
1129  ilSettingsTemplate::lookupTitle($this->object->getTemplate()), $link), "info"). // #10651
1130  "</div>";
1131  }
1132 
1133  $this->tpl->setContent($a_form->getHTML().$message);
1134  }
1135 
1137  {
1138  $fields = array('login','firstname','lastname','email');
1139 
1140  include_once './Services/User/classes/class.ilUserAutoComplete.php';
1141  $auto = new ilUserAutoComplete();
1142  $auto->setSearchFields($fields);
1143  $auto->setResultField('login');
1144  $auto->enableFieldSearchableCheck(true);
1145  echo $auto->getList(ilUtil::stripSlashes($_REQUEST['term']));
1146  exit();
1147  }
1148 
1153  {
1154  ilUtil::sendQuestion($this->lng->txt("survey_confirm_template_reset"));
1155  $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.il_svy_svy_confirm_resettemplate.html", "Modules/Survey");
1156  $this->tpl->setCurrentBlock("adm_content");
1157  $this->tpl->setVariable("BTN_CONFIRM_REMOVE", $this->lng->txt("confirm"));
1158  $this->tpl->setVariable("BTN_CANCEL_REMOVE", $this->lng->txt("cancel"));
1159  $this->tpl->setVariable("FORM_ACTION", $this->ctrl->getFormAction($this, "resetTemplateObject"));
1160  $this->tpl->parseCurrentBlock();
1161  }
1162 
1167  {
1168  $this->object->setTemplate(null);
1169  $this->object->saveToDB();
1170 
1171  ilUtil::sendSuccess($this->lng->txt("survey_template_reset"), true);
1172  $this->ctrl->redirect($this, "properties");
1173  }
1174 
1175 
1176 
1177  //
1178  // IMPORT/EXPORT
1179  //
1180 
1181  protected function initImportForm($a_new_type)
1182  {
1183  include_once("Services/Form/classes/class.ilPropertyFormGUI.php");
1184  $form = new ilPropertyFormGUI();
1185  $form->setTarget("_top");
1186  $form->setFormAction($this->ctrl->getFormAction($this));
1187  $form->setTitle($this->lng->txt("import_svy"));
1188 
1189  include_once("./Services/Form/classes/class.ilFileInputGUI.php");
1190  $fi = new ilFileInputGUI($this->lng->txt("import_file"), "importfile");
1191  $fi->setSuffixes(array("zip"));
1192  $fi->setRequired(true);
1193  $form->addItem($fi);
1194 
1195  include_once("./Modules/Survey/classes/class.ilObjSurvey.php");
1196  $svy = new ilObjSurvey();
1197  $questionspools = $svy->getAvailableQuestionpools(true, true, true);
1198 
1199  $pools = new ilSelectInputGUI($this->lng->txt("select_questionpool_short"), "spl");
1200  $pools->setOptions(array(""=>$this->lng->txt("dont_use_questionpool")) + $questionspools);
1201  $pools->setRequired(false);
1202  $form->addItem($pools);
1203 
1204  $form->addCommandButton("importFile", $this->lng->txt("import"));
1205  $form->addCommandButton("cancel", $this->lng->txt("cancel"));
1206 
1207  return $form;
1208  }
1209 
1213  function importFileObject()
1214  {
1215  global $tpl, $ilErr;
1216 
1217  $parent_id = $_GET["ref_id"];
1218  $new_type = $_REQUEST["new_type"];
1219 
1220  // create permission is already checked in createObject. This check here is done to prevent hacking attempts
1221  if (!$this->checkPermissionBool("create", "", $new_type))
1222  {
1223  $ilErr->raiseError($this->lng->txt("no_create_permission"));
1224  }
1225 
1226  $this->lng->loadLanguageModule($new_type);
1227  $this->ctrl->setParameter($this, "new_type", $new_type);
1228 
1229  $form = $this->initImportForm($new_type);
1230  if ($form->checkInput())
1231  {
1232  include_once("./Modules/Survey/classes/class.ilObjSurvey.php");
1233  $newObj = new ilObjSurvey();
1234  $newObj->setType($new_type);
1235  $newObj->setTitle("dummy");
1236  $newObj->setDescription("dummy");
1237  $newObj->create(true);
1238  $this->putObjectInTree($newObj);
1239 
1240  // copy uploaded file to import directory
1241  $error = $newObj->importObject($_FILES["importfile"], $form->getInput("spl"));
1242  if (strlen($error))
1243  {
1244  $newObj->delete();
1245  $this->ilias->raiseError($error, $this->ilias->error_obj->MESSAGE);
1246  return;
1247  }
1248 
1249  ilUtil::sendSuccess($this->lng->txt("object_imported"),true);
1250  ilUtil::redirect("ilias.php?ref_id=".$newObj->getRefId().
1251  "&baseClass=ilObjSurveyGUI");
1252 
1253  // using template?
1254  include_once "Services/Administration/classes/class.ilSettingsTemplate.php";
1255  $templates = ilSettingsTemplate::getAllSettingsTemplates("svy");
1256  if($templates)
1257  {
1258  global $tpl;
1259  $tpl->addJavaScript("./Modules/Scorm2004/scripts/questions/jquery.js");
1260  // $tpl->addJavaScript("./Modules/Scorm2004/scripts/questions/jquery-ui-min.js");
1261 
1262  $this->tpl->setCurrentBlock("template_option");
1263  $this->tpl->setVariable("VAL_TEMPLATE_OPTION", "");
1264  $this->tpl->setVariable("TXT_TEMPLATE_OPTION", $this->lng->txt("none"));
1265  $this->tpl->parseCurrentBlock();
1266 
1267  foreach($templates as $item)
1268  {
1269  $this->tpl->setCurrentBlock("template_option");
1270  $this->tpl->setVariable("VAL_TEMPLATE_OPTION", $item["id"]);
1271  $this->tpl->setVariable("TXT_TEMPLATE_OPTION", $item["title"]);
1272  $this->tpl->parseCurrentBlock();
1273 
1274  $desc = str_replace("\n", "", nl2br($item["description"]));
1275  $desc = str_replace("\r", "", $desc);
1276 
1277  $this->tpl->setCurrentBlock("js_data");
1278  $this->tpl->setVariable("JS_DATA_ID", $item["id"]);
1279  $this->tpl->setVariable("JS_DATA_TEXT", $desc);
1280  $this->tpl->parseCurrentBlock();
1281  }
1282 
1283  $this->tpl->setCurrentBlock("templates");
1284  $this->tpl->setVariable("TXT_TEMPLATE", $this->lng->txt("svy_settings_template"));
1285  $this->tpl->parseCurrentBlock();
1286  }
1287  }
1288 
1289  // display form to correct errors
1290  $form->setValuesByPost();
1291  $tpl->setContent($form->getHtml());
1292  }
1293 
1294  /*
1295  * list all export files
1296  */
1297  public function exportObject()
1298  {
1299  global $ilTabs;
1300 
1301  $this->handleWriteAccess();
1302  $ilTabs->activateTab("export");
1303 
1304  $export_dir = $this->object->getExportDirectory();
1305  $export_files = $this->object->getExportFiles($export_dir);
1306  $data = array();
1307  if(count($export_files) > 0)
1308  {
1309  foreach($export_files as $exp_file)
1310  {
1311  $file_arr = explode("__", $exp_file);
1312  $date = new ilDateTime($file_arr[0], IL_CAL_UNIX);
1313  array_push($data, array(
1314  'file' => $exp_file,
1315  'size' => filesize($export_dir."/".$exp_file),
1316  'date' => $date->get(IL_CAL_DATETIME)
1317  ));
1318  }
1319  }
1320 
1321  include_once "./Modules/Survey/classes/tables/class.ilSurveyExportTableGUI.php";
1322  $table_gui = new ilSurveyExportTableGUI($this, 'export');
1323  $table_gui->setData($data);
1324  $this->tpl->setVariable('ADM_CONTENT', $table_gui->getHTML());
1325  }
1326 
1330  public function createExportFileObject()
1331  {
1332  $this->handleWriteAccess();
1333  include_once("./Modules/Survey/classes/class.ilSurveyExport.php");
1334  $survey_exp = new ilSurveyExport($this->object);
1335  $survey_exp->buildExportFile();
1336  $this->ctrl->redirect($this, "export");
1337  }
1338 
1342  public function downloadExportFileObject()
1343  {
1344  if(!isset($_POST["file"]))
1345  {
1346  ilUtil::sendFailure($this->lng->txt("no_checkbox"), true);
1347  $this->ctrl->redirect($this, "export");
1348  }
1349 
1350  if (count($_POST["file"]) > 1)
1351  {
1352  ilUtil::sendFailure($this->lng->txt("select_max_one_item"), true);
1353  $this->ctrl->redirect($this, "export");
1354  }
1355 
1356  $file = basename($_POST["file"][0]);
1357 
1358  $export_dir = $this->object->getExportDirectory();
1359  include_once "./Services/Utilities/classes/class.ilUtil.php";
1360  ilUtil::deliverFile($export_dir."/".$file, $file);
1361  }
1362 
1367  {
1368  global $ilTabs;
1369 
1370  $this->handleWriteAccess();
1371  $ilTabs->activateTab("export");
1372 
1373  if (!isset($_POST["file"]))
1374  {
1375  ilUtil::sendFailure($this->lng->txt("no_checkbox"), true);
1376  $this->ctrl->redirect($this, "export");
1377  }
1378 
1379  ilUtil::sendQuestion($this->lng->txt("info_delete_sure"));
1380 
1381  $export_dir = $this->object->getExportDirectory();
1382  $export_files = $this->object->getExportFiles($export_dir);
1383  $data = array();
1384  if (count($_POST["file"]) > 0)
1385  {
1386  foreach ($_POST["file"] as $exp_file)
1387  {
1388  $file_arr = explode("__", $exp_file);
1389  $date = new ilDateTime($file_arr[0], IL_CAL_UNIX);
1390  array_push($data, array(
1391  'file' => $exp_file,
1392  'size' => filesize($export_dir."/".$exp_file),
1393  'date' => $date->get(IL_CAL_DATETIME)
1394  ));
1395  }
1396  }
1397 
1398  include_once "./Modules/Survey/classes/tables/class.ilSurveyExportTableGUI.php";
1399  $table_gui = new ilSurveyExportTableGUI($this, 'export', true);
1400  $table_gui->setData($data);
1401  $this->tpl->setVariable('ADM_CONTENT', $table_gui->getHTML());
1402  }
1403 
1404 
1409  {
1410  ilUtil::sendInfo($this->lng->txt('msg_cancel'), true);
1411  $this->ctrl->redirect($this, "export");
1412  }
1413 
1414 
1418  public function deleteExportFileObject()
1419  {
1420  $export_dir = $this->object->getExportDirectory();
1421  foreach ($_POST["file"] as $file)
1422  {
1423  $file = basename($file);
1424 
1425  $exp_file = $export_dir."/".$file;
1426  $exp_dir = $export_dir."/".substr($file, 0, strlen($file) - 4);
1427  if (@is_file($exp_file))
1428  {
1429  unlink($exp_file);
1430  }
1431  if (@is_dir($exp_dir))
1432  {
1433  include_once "./Services/Utilities/classes/class.ilUtil.php";
1434  ilUtil::delDir($exp_dir);
1435  }
1436  }
1437  ilUtil::sendSuccess($this->lng->txt('msg_deleted_export_files'), true);
1438  $this->ctrl->redirect($this, "export");
1439  }
1440 
1441 
1442  //
1443  // INFOSCREEN
1444  //
1445 
1451  function infoScreenObject()
1452  {
1453  $this->ctrl->setCmd("showSummary");
1454  $this->ctrl->setCmdClass("ilinfoscreengui");
1455  $this->infoScreen();
1456  }
1457 
1461  function infoScreen()
1462  {
1463  global $ilAccess, $ilTabs, $ilUser, $ilToolbar;
1464 
1465  if (!$this->external_rater_360 &&
1466  !$ilAccess->checkAccess("visible", "", $this->ref_id))
1467  {
1468  $this->ilias->raiseError($this->lng->txt("msg_no_perm_read"),$this->ilias->error_obj->MESSAGE);
1469  }
1470 
1471  $ilTabs->activateTab("info_short");
1472 
1473  include_once "./Modules/Survey/classes/class.ilSurveyExecutionGUI.php";
1474  $output_gui =& new ilSurveyExecutionGUI($this->object);
1475 
1476  include_once("./Services/InfoScreen/classes/class.ilInfoScreenGUI.php");
1477  $info = new ilInfoScreenGUI($this);
1478  $info->enablePrivateNotes();
1479 
1480  // "active" survey?
1481  $canStart = $this->object->canStartSurvey(null, $this->external_rater_360);
1482 
1483  $showButtons = $canStart["result"];
1484  if (!$showButtons)
1485  {
1486  if($canStart["edit_settings"] &&
1487  $ilAccess->checkAccess("write", "", $this->ref_id))
1488  {
1489  $canStart["messages"][] = "<a href=\"".$this->ctrl->getLinkTarget($this, "properties")."\">&raquo; ".
1490  $this->lng->txt("survey_edit_settings")."</a>";
1491  }
1492  ilUtil::sendInfo(implode("<br />", $canStart["messages"]));
1493  }
1494 
1495  $big_button = false;
1496  if ($showButtons)
1497  {
1498  // closing survey?
1499  $is_appraisee = false;
1500  if($this->object->get360Mode() &&
1501  $this->object->isAppraisee($ilUser->getId()))
1502  {
1503  $info->addSection($this->lng->txt("survey_360_appraisee_info"));
1504 
1505  $appr_data = $this->object->getAppraiseesData();
1506  $appr_data = $appr_data[$ilUser->getId()];
1507  $info->addProperty($this->lng->txt("survey_360_raters_status_info"), $appr_data["finished"]);
1508 
1509  if(!$appr_data["closed"])
1510  {
1511  $close_button_360 = '<div>'.
1512  '<a class="submit" href="'.$this->ctrl->getLinkTargetByClass("ilsurveyparticipantsgui", "confirmappraiseeclose").'">'.
1513  $this->lng->txt("survey_360_appraisee_close_action").'</a></div>';
1514 
1515  $txt = "survey_360_appraisee_close_action_info";
1516  if($this->object->get360SkillService())
1517  {
1518  $txt .= "_skill";
1519  }
1520  $info->addProperty($this->lng->txt("status"),
1521  $close_button_360.$this->lng->txt($txt));
1522  }
1523  else
1524  {
1526 
1527  $dt = new ilDateTime($appr_data["closed"], IL_CAL_UNIX);
1528  $info->addProperty($this->lng->txt("status"),
1529  sprintf($this->lng->txt("survey_360_appraisee_close_action_status"),
1531  }
1532 
1533  $is_appraisee = true;
1534  }
1535 
1536 
1537  // handle code
1538 
1539  // validate incoming
1540  $code_input = false;
1541  $anonymous_code = $_POST["anonymous_id"];
1542  if ($anonymous_code)
1543  {
1544  $code_input = true;
1545  // if(!$this->object->isUnusedCode($anonymous_code, $ilUser->getId()))
1546  if(!$this->object->checkSurveyCode($anonymous_code)) // #15031 - valid as long survey is not finished
1547  {
1548  $anonymous_code = null;
1549  }
1550  else
1551  {
1552  // #15860
1553  $this->object->bindSurveyCodeToUser($ilUser->getId(), $anonymous_code);
1554  }
1555  }
1556  if ($anonymous_code)
1557  {
1558  $_SESSION["anonymous_id"][$this->object->getId()] = $anonymous_code;
1559  }
1560  else
1561  {
1562  $anonymous_code = $_SESSION["anonymous_id"][$this->object->getId()];
1563  if($anonymous_code)
1564  {
1565  $code_input = true;
1566  }
1567  }
1568 
1569  // try to find code for current (registered) user from existing run
1570  if($this->object->getAnonymize() && !$anonymous_code)
1571  {
1572  $anonymous_code = $this->object->findCodeForUser($ilUser->getId());
1573  }
1574 
1575  // get existing runs for current user, might generate code
1576  $participant_status = $this->object->getUserSurveyExecutionStatus($anonymous_code);
1577  if($participant_status)
1578  {
1579  $anonymous_code = $participant_status["code"];
1580  $participant_status = $participant_status["runs"];
1581  }
1582 
1583  // (final) check for proper anonymous code
1584  if(!$this->object->isAccessibleWithoutCode() &&
1585  !$is_appraisee &&
1586  $code_input && // #11346
1587  (!$anonymous_code || !$this->object->isAnonymousKey($anonymous_code)))
1588  {
1589  $anonymous_code = null;
1590  ilUtil::sendInfo($this->lng->txt("wrong_survey_code_used"));
1591  }
1592 
1593  // :TODO: really save in session?
1594  $_SESSION["anonymous_id"][$this->object->getId()] = $anonymous_code;
1595 
1596  // code is mandatory and not given yet
1597  if(!$is_appraisee &&
1598  !$anonymous_code &&
1599  !$this->object->isAccessibleWithoutCode())
1600  {
1601  $info->setFormAction($this->ctrl->getFormAction($this, "infoScreen"));
1602  $info->addSection($this->lng->txt("anonymization"));
1603  $info->addProperty("", $this->lng->txt("anonymize_anonymous_introduction"));
1604  $info->addPropertyTextinput($this->lng->txt("enter_anonymous_id"), "anonymous_id", "", 8, "infoScreen", $this->lng->txt("submit"), true);
1605  }
1606  else
1607  {
1608  // trunk/default
1609  if(!$this->object->get360Mode())
1610  {
1611  if($anonymous_code)
1612  {
1613  $info->addHiddenElement("anonymous_id", $anonymous_code);
1614  }
1615 
1616  $survey_started = $this->object->isSurveyStarted($ilUser->getId(), $anonymous_code);
1617  if ($survey_started === 1)
1618  {
1619  ilUtil::sendInfo($this->lng->txt("already_completed_survey"));
1620  }
1621  elseif ($survey_started === 0)
1622  {
1623  $big_button = array("resume", $this->lng->txt("resume_survey"));
1624  }
1625  elseif ($survey_started === FALSE)
1626  {
1627  $big_button = array("start", $this->lng->txt("start_survey"));
1628  }
1629  }
1630  // 360°
1631  else
1632  {
1633  $appr_ids = array();
1634 
1635  // use given code (if proper external one)
1636  if($anonymous_code)
1637  {
1638  $anonymous_id = $this->object->getAnonymousIdByCode($anonymous_code);
1639  if($anonymous_id)
1640  {
1641  $appr_ids = $this->object->getAppraiseesToRate(0, $anonymous_id);
1642  }
1643  }
1644 
1645  // registered user
1646  // if an auto-code was generated, we still have to check for the original user id
1647  if(!$appr_ids && $ilUser->getId() != ANONYMOUS_USER_ID)
1648  {
1649  $appr_ids = $this->object->getAppraiseesToRate($ilUser->getId());
1650  }
1651 
1652  if(sizeof($appr_ids))
1653  {
1654  // map existing runs to appraisees
1655  $active_appraisees = array();
1656  if($participant_status)
1657  {
1658  foreach($participant_status as $item)
1659  {
1660  $active_appraisees[$item["appr_id"]] = $item["finished"];
1661  }
1662  }
1663 
1664  $list = array();
1665 
1666  foreach($appr_ids as $appr_id)
1667  {
1668  if($this->object->isAppraiseeClosed($appr_id))
1669  {
1670  // closed
1671  $list[$appr_id] = $this->lng->txt("survey_360_appraisee_is_closed");
1672  }
1673  else if(array_key_exists($appr_id, $active_appraisees))
1674  {
1675  // already done
1676  if($active_appraisees[$appr_id])
1677  {
1678  $list[$appr_id] = $this->lng->txt("already_completed_survey");
1679  }
1680  // resume
1681  else
1682  {
1683  $list[$appr_id] = array("resume", $this->lng->txt("resume_survey"));
1684  }
1685  }
1686  else
1687  {
1688  // start
1689  $list[$appr_id] = array("start", $this->lng->txt("start_survey"));
1690  }
1691  }
1692 
1693  $info->addSection($this->lng->txt("survey_360_rate_other_appraisees"));
1694 
1695  include_once "Services/User/classes/class.ilUserUtil.php";
1696  foreach($list as $appr_id => $item)
1697  {
1698  $appr_name = ilUserUtil::getNamePresentation($appr_id, false, false, "", true);
1699 
1700  if(!is_array($item))
1701  {
1702  $info->addProperty($appr_name, $item);
1703  }
1704  else
1705  {
1706  $this->ctrl->setParameter($output_gui, "appr_id", $appr_id);
1707  $href = $this->ctrl->getLinkTarget($output_gui, $item[0]);
1708  $this->ctrl->setParameter($output_gui, "appr_id", "");
1709 
1710  $big_button_360 = '<div>'.
1711  '<a class="submit" href="'.$href.'">'.$item[1].'</a></div>';
1712 
1713  $info->addProperty($appr_name, $big_button_360);
1714  }
1715  }
1716  }
1717  else if(!$is_appraisee)
1718  {
1719  ilUtil::sendFailure($this->lng->txt("survey_360_no_appraisees"));
1720  }
1721  }
1722  }
1723 
1724  if($this->object->get360Mode() &&
1725  $this->object->get360SelfAppraisee() &&
1726  !$this->object->isAppraisee($ilUser->getId()) &&
1727  $ilUser->getId() != ANONYMOUS_USER_ID) // #14968
1728  {
1729  $link = $this->ctrl->getLinkTargetByClass("ilsurveyparticipantsgui", "addSelfAppraisee");
1730  $link = '<a href="'.$link.'">'.$this->lng->txt("survey_360_add_self_appraisee").'</a>';
1731  $info->addProperty("&nbsp;", $link);
1732  }
1733  }
1734 
1735  if($big_button)
1736  {
1737  $ilToolbar->setFormAction($this->ctrl->getFormAction($output_gui, "infoScreen"));
1738  $ilToolbar->addFormButton($big_button[1], $big_button[0], "", true);
1739  $ilToolbar->setCloseFormTag(false);
1740  $info->setOpenFormTag(false);
1741  }
1742  /* #12016
1743  else
1744  {
1745  $info->setFormAction($this->ctrl->getFormAction($output_gui, "infoScreen"));
1746  }
1747  */
1748 
1749  if (strlen($this->object->getIntroduction()))
1750  {
1751  $introduction = $this->object->getIntroduction();
1752  $info->addSection($this->lng->txt("introduction"));
1753  $info->addProperty("", $this->object->prepareTextareaOutput($introduction).
1754  "<br />".$info->getHiddenToggleButton());
1755  }
1756  else
1757  {
1758  $info->addSection("");
1759  $info->addProperty("", $info->getHiddenToggleButton());
1760  }
1761 
1762  $info->hideFurtherSections(false);
1763 
1764  $info->addSection($this->lng->txt("svy_general_properties"));
1765  if (strlen($this->object->getAuthor()))
1766  {
1767  $info->addProperty($this->lng->txt("author"), $this->object->getAuthor());
1768  }
1769  $info->addProperty($this->lng->txt("title"), $this->object->getTitle());
1770  switch ($this->object->getAnonymize())
1771  {
1773  $info->addProperty($this->lng->txt("anonymization"), $this->lng->txt("anonymize_personalized"));
1774  break;
1776  if ($_SESSION["AccountId"] == ANONYMOUS_USER_ID)
1777  {
1778  $info->addProperty($this->lng->txt("anonymization"), $this->lng->txt("info_anonymize_with_code"));
1779  }
1780  else
1781  {
1782  $info->addProperty($this->lng->txt("anonymization"), $this->lng->txt("info_anonymize_registered_user"));
1783  }
1784  break;
1786  $info->addProperty($this->lng->txt("anonymization"), $this->lng->txt("info_anonymize_without_code"));
1787  break;
1788  }
1789  include_once "./Modules/Survey/classes/class.ilObjSurveyAccess.php";
1790  if ($ilAccess->checkAccess("write", "", $this->ref_id) || ilObjSurveyAccess::_hasEvaluationAccess($this->object->getId(), $ilUser->getId()))
1791  {
1792  $info->addProperty($this->lng->txt("evaluation_access"), $this->lng->txt("evaluation_access_info"));
1793  }
1794  $info->addMetaDataSections($this->object->getId(),0, $this->object->getType());
1795  $this->ctrl->forwardCommand($info);
1796  }
1797 
1798  function addLocatorItems()
1799  {
1800  global $ilLocator;
1801  switch ($this->ctrl->getCmd())
1802  {
1803  case "next":
1804  case "previous":
1805  case "start":
1806  case "resume":
1807  case "redirectQuestion":
1808  $ilLocator->addItem($this->object->getTitle(), $this->ctrl->getLinkTarget($this, "infoScreen"), "", $_GET["ref_id"]);
1809  break;
1810  case "evaluation":
1811  case "checkEvaluationAccess":
1812  case "evaluationdetails":
1813  case "evaluationuser":
1814  $ilLocator->addItem($this->object->getTitle(), $this->ctrl->getLinkTargetByClass("ilsurveyevaluationgui", "evaluation"), "", $_GET["ref_id"]);
1815  break;
1816  case "create":
1817  case "save":
1818  case "cancel":
1819  case "importFile":
1820  case "cloneAll":
1821  break;
1822  case "infoScreen":
1823  $ilLocator->addItem($this->object->getTitle(), $this->ctrl->getLinkTarget($this, "infoScreen"), "", $_GET["ref_id"]);
1824  break;
1825  default:
1826  $ilLocator->addItem($this->object->getTitle(), $this->ctrl->getLinkTarget($this, ""), "", $_GET["ref_id"]);
1827 
1828  // this has to be done here because ilSurveyEditorGUI is called after finalizing the locator
1829  if ((int)$_GET["q_id"] && !(int)$_REQUEST["new_for_survey"])
1830  {
1831  // not on create
1832  // see ilObjSurveyQuestionPool::addLocatorItems
1833  $q_id = (int)$_GET["q_id"];
1834  include_once "./Modules/SurveyQuestionPool/classes/class.SurveyQuestion.php";
1835  $q_type = SurveyQuestion::_getQuestionType($q_id)."GUI";
1836  $this->ctrl->setParameterByClass($q_type, "q_id", $q_id);
1837  $ilLocator->addItem(SurveyQuestion::_getTitle($q_id),
1838  $this->ctrl->getLinkTargetByClass(array("ilSurveyEditorGUI", $q_type), "editQuestion"));
1839  }
1840  break;
1841  }
1842  }
1843 
1844 
1845 
1851  function _goto($a_target, $a_access_code = "")
1852  {
1853  global $ilAccess, $ilErr, $lng;
1854 
1855  // see ilObjSurveyAccess::_checkGoto()
1856  include_once "./Services/Utilities/classes/class.ilUtil.php";
1857  if (strlen($a_access_code))
1858  {
1859  $_SESSION["anonymous_id"][ilObject::_lookupObjId($a_target)] = $a_access_code;
1860  $_GET["baseClass"] = "ilObjSurveyGUI";
1861  $_GET["cmd"] = "infoScreen";
1862  $_GET["ref_id"] = $a_target;
1863  include("ilias.php");
1864  exit;
1865  }
1866 
1867  if ($ilAccess->checkAccess("read", "", $a_target))
1868  {
1869  $_GET["baseClass"] = "ilObjSurveyGUI";
1870  $_GET["cmd"] = "infoScreen";
1871  $_GET["ref_id"] = $a_target;
1872  include("ilias.php");
1873  exit;
1874  }
1875  else if ($ilAccess->checkAccess("read", "", ROOT_FOLDER_ID))
1876  {
1877  ilUtil::sendFailure(sprintf($lng->txt("msg_no_perm_read_item"),
1878  ilObject::_lookupTitle(ilObject::_lookupObjId($a_target))), true);
1880  }
1881 
1882  $ilErr->raiseError($lng->txt("msg_no_perm_read_lm"), $ilErr->FATAL);
1883  }
1884 }
1885 
1886 ?>
< a tabindex="-1" style="border-style: none;" href="#" title="Refresh Image" onclick="document.getElementById('siimage').src = './securimage_show.php?sid=' + Math.random(); this.blur(); return false">< img src="./images/refresh.png" alt="Reload Image" height="32" width="32" onclick="this.blur()" align="bottom" border="0"/></a >< br/>< strong > Enter Code *if($_SERVER['REQUEST_METHOD']=='POST' &&@ $_POST['do']=='contact') $_SESSION['ctform']['success']
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
Class ilSurveyParticipantsGUI.
static _lookupName($a_user_id)
lookup user name
This class represents an option in a radio group.
print $file
Survey skill service GUI class.
setDataSource($href, $a_delimiter=null)
set datasource link for js autocomplete
confirmDeleteExportFileObject()
confirmation screen for export file deletion
exit
Definition: login.php:54
Class ilInfoScreenGUI.
$_POST['username']
Definition: cron.php:12
importFileObject()
form for new survey object import
const IL_CAL_DATETIME
Class ilSurveyEditorGUI.
This class represents an option in a checkbox group.
This class represents a selection list property in a property form.
resetTemplateObject()
Enable all settings - remove template.
const EVALUATION_ACCESS_OFF
This class represents a property form user interface.
GUI class for the workflow of copying objects.
static validateExternalRaterCode($a_ref_id, $a_code)
_getTitle($question_id)
Returns the question title of a question with a given id.
const EVALUATION_ACCESS_PARTICIPANTS
static getStyleSheetLocation($mode="output", $a_css_name="", $a_css_location="")
get full style sheet file name (path inclusive) of current user
$_GET["client_id"]
This class represents a section header in a property form.
Class ilSurveyConstraintsGUI.
This class represents a file property in a property form.
handleWriteAccess()
Checks for write access and returns to the parent object.
Class ilObject Basic functions for all objects.
$valid
$cmd
Definition: sahs_server.php:35
addObserver(&$a_class, $a_method, $a_element)
setValue($a_value)
Set Value.
static _gotoRepositoryRoot($a_raise_error=false)
Goto repository root.
static getAllSettingsTemplates($a_type)
Get all settings templates of type.
static _lookupId($a_user_str)
lookup id by login
This class represents a checkbox property in a property form.
static setUseRelativeDates($a_status)
set use relative dates
static _lookupTitle($a_id)
lookup object title
const IL_CAL_UNIX
setInfo($a_info)
Set Info.
initImportForm($a_new_type)
savePropertiesObject()
Save the survey properties.
static _getAllReferences($a_id)
get all reference ids of object
static getNamePresentation($a_user_id, $a_user_image=false, $a_profile_link=false, $a_profile_back_link="", $a_force_first_lastname=false, $a_omit_login=false, $a_sortable=true)
Default behaviour is:
Auto completion class for user lists.
This class represents a date/time property in a property form.
_goto($a_target, $a_access_code="")
redirect script
global $ilCtrl
Definition: ilias.php:18
getTabs(&$tabs_gui)
adds tabs to tab gui object
setInfo($a_info)
Set Information Text.
Class ilObjSurveyGUI.
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
$section
Definition: Utf8Test.php:84
setChecked($a_checked)
Set Checked.
input GUI for a time span (start and end date)
addDidacticTemplateOptions(array &$a_options)
This class represents a property in a property form.
Class for single dates.
afterSave(ilObject $a_new_object)
save object public
const ANONYMIZE_FREEACCESS
Export class for surveys.
const NOTIFICATION_PARENT_COURSE
This class represents a number property in a property form.
Survey execution graphical output.
Class ilObjectGUI Basic methods of all Output classes.
static _lookupObjId($a_id)
setValue($a_value)
Set Value.
This class represents a text property in a property form.
infoScreenObject()
this one is called from the info button in the repository not very nice to set cmdClass/Cmd manually...
static formatDate(ilDateTime $date)
Format a date public.
& getGeneral()
Definition: class.ilMD.php:55
Date and time handling
redirection script todo: (a better solution should control the processing via a xml file) ...
deleteExportFileObject()
delete export files
$results
setShowTime($a_showtime)
Set Show Time Information.
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
static lookupTitle($a_id)
Lookup title.
static sendQuestion($a_info="", $a_keep=false)
Send Question to Screen.
const NOTIFICATION_INVITED_USERS
static deliverFile($a_file, $a_filename, $a_mime='', $isInline=false, $removeAfterDelivery=false, $a_exit_after=true)
deliver file for download via browser.
setOptions($a_options)
Set Options.
infoScreen()
show information screen
prepareOutput()
prepare output
evaluationObject()
Redirects the evaluation object call to the ilSurveyEvaluationGUI class.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
const EVALUATION_ACCESS_ALL
enableDateActivation($a_title, $a_postvar, $a_checked=true)
Enable date activation.
const IL_CAL_DATE
propertiesObject(ilPropertyFormGUI $a_form=null)
Display and fill the properties form of the test.
global $ilUser
Definition: imgupload.php:15
confirmResetTemplateObject()
Enable all settings - Confirmation.
This class represents a non editable value in a property form.
_getQuestionType($question_id)
Returns the question type of a question with a given id.
& _getUsedHTMLTags($a_module="")
Returns an array of all allowed HTML tags for text editing.
_hasEvaluationAccess($a_obj_id, $user_id)
This class represents a text area property in a property form.
getCreationMode()
get creation mode
getRefId()
get reference id public
putObjectInTree(ilObject $a_obj, $a_parent_node_id=null)
Add object to tree at given position.
getDidacticTemplateVar($a_type)
Get didactic template setting from creation screen.
New PermissionGUI (extends from old ilPermission2GUI) RBAC related output.
if($_REQUEST['ilias_path']) define('ILIAS_HTTP_PATH' $_REQUEST['ilias_path']
Definition: index.php:7
Survey skill determination GUI class.
cancelDeleteExportFileObject()
cancel deletion of export files
const IL_CAL_TIMESTAMP
Survey evaluation graphical output.
const ANONYMIZE_CODE_ALL
createExportFileObject()
create export file
setValue($a_value)
Set Value.
static redirect($a_script)
http redirect to other script
addHeaderAction()
Add header action menu.
static delDir($a_dir, $a_clean_only=false)
removes a dir and all its content (subdirs and files) recursively
checkPermissionBool($a_perm, $a_cmd="", $a_type="", $a_ref_id=null)
Check permission.
setSuffixes($a_suffixes)
Set Accepted Suffixes.
setDisabled($a_disabled)
Set Disabled.
Settings template application class.
setRequired($a_required)
Set Required.
static getInstanceFromAjaxCall()
(Re-)Build instance from ajax call
downloadExportFileObject()
download export file
initPropertiesForm()
Init survey settings form.