ILIAS  release_5-3 Revision v5.3.23-19-g915713cf615
ilObjSurveyGUI Class Reference

Class ilObjSurveyGUI. More...

+ Inheritance diagram for ilObjSurveyGUI:
+ Collaboration diagram for ilObjSurveyGUI:

Public Member Functions

 __construct ()
 
 executeCommand ()
 
 evaluationObject ()
 Redirects the evaluation object call to the ilSurveyEvaluationGUI class. More...
 
 afterSave (ilObject $a_new_object)
 save object public More...
 
 getTabs ()
 adds tabs to tab gui object More...
 
 savePropertiesObject ()
 Save the survey properties. More...
 
 initPropertiesForm ()
 Init survey settings form. More...
 
 addSubTabs ($a_section)
 Add subtabs for tabs. More...
 
 propertiesObject (ilPropertyFormGUI $a_form=null)
 Display and fill the properties form of the test. More...
 
 doAutoCompleteObject ()
 
 confirmResetTemplateObject ()
 Enable all settings - Confirmation. More...
 
 resetTemplateObject ()
 Enable all settings - remove template. More...
 
 importSurveyObject ()
 form for new survey object import More...
 
 infoScreenObject ()
 this one is called from the info button in the repository not very nice to set cmdClass/Cmd manually, if everything works through ilCtrl in the future this may be changed More...
 
 infoScreen ()
 show information screen More...
 
 addLocatorItems ()
 
 getUserResultsTable ($a_active_id)
 
 sendUserResultsMail ($a_active_id, $a_recipient)
 
 mailUserResultsObject ()
 
- Public Member Functions inherited from ilObjectGUI
 executeCommand ()
 execute command More...
 
 withReferences ()
 determines wether objects are referenced or not (got ref ids or not) More...
 
 setCreationMode ($a_mode=true)
 if true, a creation screen is displayed the current $_GET[ref_id] don't belong to the current class! the mode is determined in ilrepositorygui More...
 
 getCreationMode ()
 get creation mode More...
 
 prepareOutput ($a_show_subobjects=true)
 prepare output More...
 
 getAdminTabs ()
 administration tabs show only permissions and trash folder More...
 
 getHTML ()
 
 confirmedDeleteObject ()
 confirmed deletion of object -> objects are moved to trash or deleted immediately, if trash is disabled More...
 
 cancelDeleteObject ()
 cancel deletion of object More...
 
 cancelObject ()
 cancel action and go back to previous page public More...
 
 createObject ()
 create new object form More...
 
 cancelCreation ()
 cancel create action and go back to repository parent More...
 
 saveObject ()
 save object More...
 
 getDidacticTemplateVar ($a_type)
 Get didactic template setting from creation screen. More...
 
 putObjectInTree (ilObject $a_obj, $a_parent_node_id=null)
 Add object to tree at given position. More...
 
 editObject ()
 edit object More...
 
 addExternalEditFormCustom (ilPropertyFormGUI $a_form)
 
 updateObject ()
 updates object entry in object_data More...
 
 getFormAction ($a_cmd, $a_formaction="")
 get form action for command (command is method name without "Object", e.g. More...
 
 isVisible ($a_ref_id, $a_type)
 
 viewObject ()
 list childs of current object More...
 
 deleteObject ($a_error=false)
 Display deletion confirmation screen. More...
 
 cloneAllObject ()
 Clone single (not container object) Method is overwritten in ilContainerGUI. More...
 

Static Public Member Functions

static _goto ($a_target, $a_access_code="")
 redirect script More...
 
- Static Public Member Functions inherited from ilObjectGUI
static _gotoRepositoryRoot ($a_raise_error=false)
 Goto repository root. More...
 
static _gotoRepositoryNode ($a_ref_id, $a_cmd="frameset")
 Goto repository root. More...
 

Protected Member Functions

 addDidacticTemplateOptions (array &$a_options)
 
 initImportForm ($a_new_type)
 
 viewUserResultsObject ()
 
 getUserResultsPlain ($a_active_id)
 
- Protected Member Functions inherited from ilObjectGUI
 assignObject ()
 
 setTitleAndDescription ()
 called by prepare output More...
 
 initHeaderAction ($a_sub_type=null, $a_sub_id=null)
 Add header action menu. More...
 
 insertHeaderAction ($a_list_gui)
 Insert header action into main template. More...
 
 addHeaderAction ()
 Add header action menu. More...
 
 redrawHeaderActionObject ()
 Ajax call: redraw action header only. More...
 
 showMountWebfolderIcon ()
 
 setTabs ()
 set admin tabs public More...
 
 setAdminTabs ()
 set admin tabs public More...
 
 setLocator ()
 set Locator More...
 
 addLocatorItems ()
 should be overwritten to add object specific items (repository items are preloaded) More...
 
 omitLocator ($a_omit=true)
 
 addAdminLocatorItems ($a_do_not_add_object=false)
 should be overwritten to add object specific items (repository items are preloaded) More...
 
 initCreationForms ($a_new_type)
 Init creation froms. More...
 
 getCreationFormsHTML (array $a_forms)
 Get HTML for creation forms (accordion) More...
 
 initCreateForm ($a_new_type)
 Init object creation form. More...
 
 initDidacticTemplate (ilPropertyFormGUI $form)
 Show didactic template types. More...
 
 addDidacticTemplateOptions (array &$a_options)
 Add custom templates. More...
 
 afterSave (ilObject $a_new_object)
 Post (successful) object creation hook. More...
 
 initEditForm ()
 Init object edit form. More...
 
 initEditCustomForm (ilPropertyFormGUI $a_form)
 Add custom fields to update form. More...
 
 getEditFormValues ()
 Get values for edit form. More...
 
 getEditFormCustomValues (array &$a_values)
 Add values to custom edit fields. More...
 
 validateCustom (ilPropertyFormGUI $a_form)
 Validate custom values (if not possible with checkInput()) More...
 
 updateCustom (ilPropertyFormGUI $a_form)
 Insert custom update form values into object. More...
 
 afterUpdate ()
 Post (successful) object update hook. More...
 
 initImportForm ($a_new_type)
 Init object import form. More...
 
 importFileObject ($parent_id=null, $a_catch_errors=true)
 Import. More...
 
 afterImport (ilObject $a_new_object)
 Post (successful) object import hook. More...
 
 setFormAction ($a_cmd, $a_formaction)
 set specific form action for command More...
 
 getReturnLocation ($a_cmd, $a_location="")
 get return location for command (command is method name without "Object", e.g. More...
 
 setReturnLocation ($a_cmd, $a_location)
 set specific return location for command More...
 
 getTargetFrame ($a_cmd, $a_target_frame="")
 get target frame for command (command is method name without "Object", e.g. More...
 
 setTargetFrame ($a_cmd, $a_target_frame)
 set specific target frame for command More...
 
 showPossibleSubObjects ()
 show possible subobjects (pulldown menu) More...
 
 getTemplateFile ($a_cmd, $a_type="")
 get a template blockfile format: tpl. More...
 
 getTabs ()
 get tabs abstract method. More...
 
 __showButton ($a_cmd, $a_text, $a_target='')
 
 hitsperpageObject ()
 
__initTableGUI ()
 
 __setTableGUIBasicData (&$tbl, &$result_set, $a_from="")
 standard implementation for tables use 'from' variable use different initial setting of table More...
 
 redirectToRefId ($a_ref_id, $a_cmd="")
 redirects to (repository) view per ref id usually to a container and usually used at the end of a save/import method where the object gui type (of the new object) doesn't match with the type of the current $_GET["ref_id"] value More...
 
 fillCloneTemplate ($a_tpl_varname, $a_type)
 Fill object clone template This method can be called from any object GUI class that wants to offer object cloning. More...
 
 getCenterColumnHTML ()
 Get center column. More...
 
 getRightColumnHTML ()
 Display right column. More...
 
 setColumnSettings (ilColumnGUI $column_gui)
 May be overwritten in subclasses. More...
 
 checkPermission ($a_perm, $a_cmd="", $a_type="", $a_ref_id=null)
 Check permission and redirect on error. More...
 
 checkPermissionBool ($a_perm, $a_cmd="", $a_type="", $a_ref_id=null)
 Check permission. More...
 
 enableDragDropFileUpload ()
 Enables the file upload into this object by dropping files. More...
 
 handleAutoRating (ilObject $a_new_obj)
 Activate rating automatically if parent container setting. More...
 

Protected Attributes

 $nav_history
 
 $tabs
 
 $help
 
 $rbacsystem
 
 $log
 
- Protected Attributes inherited from ilObjectGUI
 $ilErr
 
 $locator
 
 $user
 
 $access
 
 $settings
 
 $rbacreview
 
 $toolbar
 
 $rbacsystem
 
 $tmp_import_dir
 
 $tabs_gui = null
 
 $ctrl
 

Additional Inherited Members

- Data Fields inherited from ilObjectGUI
const COPY_WIZARD_NEEDS_PAGE = 1
 
 $objDefinition
 
 $tpl
 
 $tree
 
 $lng
 
 $data
 
 $object
 
 $ref_id
 
 $obj_id
 
 $maxcount
 
 $formaction
 
 $return_location
 
 $target_frame
 
 $tab_target_script
 
 $actions
 
 $sub_objects
 
 $omit_locator = false
 
const CFORM_NEW = 1
 
const CFORM_IMPORT = 2
 
const CFORM_CLONE = 3
 

Detailed Description

Constructor & Destructor Documentation

◆ __construct()

ilObjSurveyGUI::__construct ( )

Definition at line 51 of file class.ilObjSurveyGUI.php.

References $_GET, $DIC, $ilCtrl, ilObjectGUI\$lng, ilLoggerFactory\getLogger(), and user().

52  {
53  global $DIC;
54 
55  $this->lng = $DIC->language();
56  $this->nav_history = $DIC["ilNavigationHistory"];
57  $this->tabs = $DIC->tabs();
58  $this->user = $DIC->user();
59  $this->help = $DIC["ilHelp"];
60  $this->rbacsystem = $DIC->rbac()->system();
61  $this->tree = $DIC->repositoryTree();
62  $this->tpl = $DIC["tpl"];
63  $this->toolbar = $DIC->toolbar();
64  $this->access = $DIC->access();
65  $this->locator = $DIC["ilLocator"];
66  $lng = $DIC->language();
67  $ilCtrl = $DIC->ctrl();
68 
69  $this->type = "svy";
70  $lng->loadLanguageModule("survey");
71  $lng->loadLanguageModule("svy");
72  $this->ctrl = $ilCtrl;
73  $this->ctrl->saveParameter($this, "ref_id");
74 
75  $this->log = ilLoggerFactory::getLogger("svy");
76 
77  parent::__construct("", (int) $_GET["ref_id"], true, false);
78  }
global $DIC
Definition: saml.php:7
$_GET["client_id"]
user()
Definition: user.php:4
global $ilCtrl
Definition: ilias.php:18
static getLogger($a_component_id)
Get component logger.
+ Here is the call graph for this function:

Member Function Documentation

◆ _goto()

static ilObjSurveyGUI::_goto (   $a_target,
  $a_access_code = "" 
)
static

redirect script

Parameters
string$a_target

Definition at line 1925 of file class.ilObjSurveyGUI.php.

References $_GET, $_SESSION, $DIC, ilObjectGUI\$lng, ilObjectGUI\_gotoRepositoryRoot(), ilObject\_lookupObjId(), ilObject\_lookupTitle(), exit, and ilUtil\sendFailure().

1926  {
1927  global $DIC;
1928 
1929  $ilAccess = $DIC->access();
1930  $lng = $DIC->language();
1931 
1932  // see ilObjSurveyAccess::_checkGoto()
1933  if (strlen($a_access_code)) {
1934  $_SESSION["anonymous_id"][ilObject::_lookupObjId($a_target)] = $a_access_code;
1935  $_GET["baseClass"] = "ilObjSurveyGUI";
1936  $_GET["cmd"] = "infoScreen";
1937  $_GET["ref_id"] = $a_target;
1938  include("ilias.php");
1939  exit;
1940  }
1941 
1942  if ($ilAccess->checkAccess("visible", "", $a_target) ||
1943  $ilAccess->checkAccess("read", "", $a_target)) {
1944  $_GET["baseClass"] = "ilObjSurveyGUI";
1945  $_GET["cmd"] = "infoScreen";
1946  $_GET["ref_id"] = $a_target;
1947  include("ilias.php");
1948  exit;
1949  } elseif ($ilAccess->checkAccess("read", "", ROOT_FOLDER_ID)) {
1950  ilUtil::sendFailure(sprintf(
1951  $lng->txt("msg_no_perm_read_item"),
1953  ), true);
1955  }
1956  }
$_SESSION["AccountId"]
global $DIC
Definition: saml.php:7
$_GET["client_id"]
static _gotoRepositoryRoot($a_raise_error=false)
Goto repository root.
static _lookupTitle($a_id)
lookup object title
static _lookupObjId($a_id)
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
+ Here is the call graph for this function:

◆ addDidacticTemplateOptions()

ilObjSurveyGUI::addDidacticTemplateOptions ( array $a_options)
protected

Definition at line 295 of file class.ilObjSurveyGUI.php.

References array, and ilSettingsTemplate\getAllSettingsTemplates().

296  {
297  include_once "Services/Administration/classes/class.ilSettingsTemplate.php";
299  if ($templates) {
300  foreach ($templates as $item) {
301  $a_options["svytpl_" . $item["id"]] = array($item["title"],
302  nl2br(trim($item["description"])));
303  }
304  }
305 
306  // JF, 2013-06-10
307  $a_options["svy360_1"] = array($this->lng->txt("survey_360_mode"),
308  $this->lng->txt("survey_360_mode_info"));
309  }
static getAllSettingsTemplates($a_type, $a_include_auto_generated=false)
Get all settings templates of type.
Create styles array
The data for the language used.
+ Here is the call graph for this function:

◆ addLocatorItems()

ilObjSurveyGUI::addLocatorItems ( )

Definition at line 1872 of file class.ilObjSurveyGUI.php.

References $_GET, ilObjectGUI\$locator, SurveyQuestion\_getQuestionType(), SurveyQuestion\_getTitle(), array, and object.

1873  {
1874  $ilLocator = $this->locator;
1875  switch ($this->ctrl->getCmd()) {
1876  case "next":
1877  case "previous":
1878  case "start":
1879  case "resume":
1880  case "redirectQuestion":
1881  $ilLocator->addItem($this->object->getTitle(), $this->ctrl->getLinkTarget($this, "infoScreen"), "", $_GET["ref_id"]);
1882  break;
1883  case "evaluation":
1884  case "checkEvaluationAccess":
1885  case "evaluationdetails":
1886  case "evaluationuser":
1887  $ilLocator->addItem($this->object->getTitle(), $this->ctrl->getLinkTargetByClass("ilsurveyevaluationgui", "evaluation"), "", $_GET["ref_id"]);
1888  break;
1889  case "create":
1890  case "save":
1891  case "cancel":
1892  case "importSurvey":
1893  case "cloneAll":
1894  break;
1895  case "infoScreen":
1896  $ilLocator->addItem($this->object->getTitle(), $this->ctrl->getLinkTarget($this, "infoScreen"), "", $_GET["ref_id"]);
1897  break;
1898  default:
1899  $ilLocator->addItem($this->object->getTitle(), $this->ctrl->getLinkTarget($this, "infoScreen"), "", $_GET["ref_id"]);
1900 
1901  // this has to be done here because ilSurveyEditorGUI is called after finalizing the locator
1902  if ((int) $_GET["q_id"] && !(int) $_REQUEST["new_for_survey"]) {
1903  // not on create
1904  // see ilObjSurveyQuestionPool::addLocatorItems
1905  $q_id = (int) $_GET["q_id"];
1906  include_once "./Modules/SurveyQuestionPool/classes/class.SurveyQuestion.php";
1907  $q_type = SurveyQuestion::_getQuestionType($q_id) . "GUI";
1908  $this->ctrl->setParameterByClass($q_type, "q_id", $q_id);
1909  $ilLocator->addItem(
1911  $this->ctrl->getLinkTargetByClass(array("ilSurveyEditorGUI", $q_type), "editQuestion")
1912  );
1913  }
1914  break;
1915  }
1916  }
$_GET["client_id"]
static _getTitle($question_id)
Returns the question title of a question with a given id.
static _getQuestionType($question_id)
Returns the question type of a question with a given id.
Create styles array
The data for the language used.
Create new PHPExcel object
obj_idprivate
+ Here is the call graph for this function:

◆ addSubTabs()

ilObjSurveyGUI::addSubTabs (   $a_section)

Add subtabs for tabs.

Parameters
type$a_section

Definition at line 1300 of file class.ilObjSurveyGUI.php.

References object.

Referenced by executeCommand(), and propertiesObject().

1301  {
1302  if ($a_section == 'settings') {
1303  $this->tabs_gui->addSubTabTarget(
1304  "settings",
1305  $this->ctrl->getLinkTarget($this, 'properties')
1306  );
1307 
1308  $lti_settings = new ilLTIProviderObjectSettingGUI($this->object->getRefId());
1309  if ($lti_settings->hasSettingsAccess()) {
1310  $this->tabs_gui->addSubTabTarget(
1311  'lti_provider',
1312  $this->ctrl->getLinkTargetByClass(ilLTIProviderObjectSettingGUI::class)
1313  );
1314  }
1315  }
1316  }
GUI class for LTI provider object settings.
Create new PHPExcel object
obj_idprivate
+ Here is the caller graph for this function:

◆ afterSave()

ilObjSurveyGUI::afterSave ( ilObject  $a_new_object)

save object public

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

References ilObjectGUI\$tpl, ilObjSurvey\ANONYMIZE_CODE_ALL, ilObjSurvey\EVALUATION_ACCESS_PARTICIPANTS, ilObjectGUI\getDidacticTemplateVar(), ilObject\getRefId(), ilUtil\redirect(), and ilUtil\sendSuccess().

316  {
317  // #16446
318  $a_new_object->loadFromDb();
319 
320  $tpl = $this->getDidacticTemplateVar("svytpl");
321  if ($tpl) {
322  $a_new_object->applySettingsTemplate($tpl);
323  }
324 
325  $a_new_object->set360Mode((bool) $this->getDidacticTemplateVar("svy360"));
326  if ($a_new_object->get360Mode()) {
327  // this should rather be ilObjSurvey::ANONYMIZE_ON - see ilObjSurvey::getUserDataFromActiveId()
328  $a_new_object->setAnonymize(ilObjSurvey::ANONYMIZE_CODE_ALL);
329  $a_new_object->setEvaluationAccess(ilObjSurvey::EVALUATION_ACCESS_PARTICIPANTS);
330  }
331  $a_new_object->saveToDB();
332 
333  // always send a message
334  ilUtil::sendSuccess($this->lng->txt("object_added"), true);
335  ilUtil::redirect("ilias.php?baseClass=ilObjSurveyGUI&ref_id=" .
336  $a_new_object->getRefId() . "&cmd=properties");
337  }
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
const EVALUATION_ACCESS_PARTICIPANTS
getRefId()
get reference id public
getDidacticTemplateVar($a_type)
Get didactic template setting from creation screen.
const ANONYMIZE_CODE_ALL
static redirect($a_script)
+ Here is the call graph for this function:

◆ confirmResetTemplateObject()

ilObjSurveyGUI::confirmResetTemplateObject ( )

Enable all settings - Confirmation.

Definition at line 1382 of file class.ilObjSurveyGUI.php.

References ilUtil\sendQuestion().

1383  {
1384  ilUtil::sendQuestion($this->lng->txt("survey_confirm_template_reset"));
1385  $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.il_svy_svy_confirm_resettemplate.html", "Modules/Survey");
1386  $this->tpl->setCurrentBlock("adm_content");
1387  $this->tpl->setVariable("BTN_CONFIRM_REMOVE", $this->lng->txt("confirm"));
1388  $this->tpl->setVariable("BTN_CANCEL_REMOVE", $this->lng->txt("cancel"));
1389  $this->tpl->setVariable("FORM_ACTION", $this->ctrl->getFormAction($this, "resetTemplateObject"));
1390  $this->tpl->parseCurrentBlock();
1391  }
static sendQuestion($a_info="", $a_keep=false)
Send Question to Screen.
+ Here is the call graph for this function:

◆ doAutoCompleteObject()

ilObjSurveyGUI::doAutoCompleteObject ( )

Definition at line 1360 of file class.ilObjSurveyGUI.php.

References array, exit, ilUserAutoComplete\MAX_ENTRIES, and ilUtil\stripSlashes().

1361  {
1362  $fields = array('login','firstname','lastname','email');
1363 
1364  include_once './Services/User/classes/class.ilUserAutoComplete.php';
1365  $auto = new ilUserAutoComplete();
1366  $auto->setSearchFields($fields);
1367  $auto->setResultField('login');
1368  $auto->enableFieldSearchableCheck(true);
1369  $auto->setMoreLinkAvailable(true);
1370 
1371  if (($_REQUEST['fetchall'])) {
1372  $auto->setLimit(ilUserAutoComplete::MAX_ENTRIES);
1373  }
1374 
1375  echo $auto->getList(ilUtil::stripSlashes($_REQUEST['term']));
1376  exit();
1377  }
Auto completion class for user lists.
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
Create styles array
The data for the language used.
+ Here is the call graph for this function:

◆ evaluationObject()

ilObjSurveyGUI::evaluationObject ( )

Redirects the evaluation object call to the ilSurveyEvaluationGUI class.

Coming from ListGUI...

private

Definition at line 287 of file class.ilObjSurveyGUI.php.

288  {
289  include_once("./Modules/Survey/classes/class.ilSurveyEvaluationGUI.php");
290  $eval_gui = new ilSurveyEvaluationGUI($this->object);
291  $this->ctrl->setCmdClass(get_class($eval_gui));
292  $this->ctrl->redirect($eval_gui, "evaluation");
293  }
Survey evaluation graphical output.

◆ executeCommand()

ilObjSurveyGUI::executeCommand ( )

Definition at line 80 of file class.ilObjSurveyGUI.php.

References $_GET, $_SESSION, $GLOBALS, $info, $nav_history, $tabs, ilObjectGUI\addHeaderAction(), addSubTabs(), array, ilObjectGUI\checkPermission(), ilObjectGUI\checkPermissionBool(), ilObjectGUI\getCreationMode(), ilCommonActionDispatcherGUI\getInstanceFromAjaxCall(), ilUtil\getStyleSheetLocation(), infoScreen(), ilLearningProgressBaseGUI\LP_CONTEXT_REPOSITORY, object, ilObjectGUI\prepareOutput(), ilLTIProviderObjectSettingGUI\setCustomRolesForSelection(), and ilObjSurvey\validateExternalRaterCode().

81  {
82  $ilNavigationHistory = $this->nav_history;
83  $ilTabs = $this->tabs;
84 
85  $this->external_rater_360 = false;
86  if (!$this->creation_mode &&
87  $this->object->get360Mode() &&
88  $_SESSION["anonymous_id"][$this->object->getId()] &&
90  $this->object->getRefId(),
91  $_SESSION["anonymous_id"][$this->object->getId()]
92  )) {
93  $this->external_rater_360 = true;
94  }
95 
96  if (!$this->external_rater_360) {
97  if (!$this->checkPermissionBool("visible") &&
98  !$this->checkPermissionBool("read")) {
99  $this->checkPermission("read");
100  }
101 
102  // add entry to navigation history
103  if (!$this->getCreationMode() &&
104  $this->checkPermissionBool("read")) {
105  $this->ctrl->setParameterByClass("ilobjsurveygui", "ref_id", $this->ref_id);
106  $link = $this->ctrl->getLinkTargetByClass("ilobjsurveygui", "");
107  $ilNavigationHistory->addItem($this->ref_id, $link, "svy");
108  }
109  }
110 
111  $cmd = $this->ctrl->getCmd("properties");
112 
113  // workaround for bug #6288, needs better solution
114  if ($cmd == "saveTags") {
115  $this->ctrl->setCmdClass("ilinfoscreengui");
116  }
117 
118  // deep link from repository - "redirect" to page view
119  if (!$this->ctrl->getCmdClass() && $cmd == "questionsrepo") {
120  $_REQUEST["pgov"] = 1;
121  $this->ctrl->setCmd("questions");
122  $this->ctrl->setCmdClass("ilsurveyeditorgui");
123  }
124 
125  $next_class = $this->ctrl->getNextClass($this);
126  $this->ctrl->setReturn($this, "properties");
127  $this->tpl->addCss(ilUtil::getStyleSheetLocation("output", "survey.css", "Modules/Survey"), "screen");
128  $this->prepareOutput();
129 
130  $this->log->debug("next_class= $next_class");
131  switch ($next_class) {
132  case 'illtiproviderobjectsettinggui':
133  $this->addSubTabs('settings');
134  $ilTabs->activateTab("settings");
135  $ilTabs->activateSubTab('lti_provider');
136  $lti_gui = new ilLTIProviderObjectSettingGUI($this->object->getRefId());
137  $lti_gui->setCustomRolesForSelection($GLOBALS['DIC']->rbac()->review()->getLocalRoles($this->object->getRefId()));
138  $lti_gui->offerLTIRolesForSelection(false);
139  $this->ctrl->forwardCommand($lti_gui);
140  break;
141 
142 
143  case "ilinfoscreengui":
144  if (!in_array(
145  $this->ctrl->getCmdClass(),
146  array('ilpublicuserprofilegui', 'ilobjportfoliogui')
147  )) {
148  $this->addHeaderAction();
149  $this->infoScreen(); // forwards command
150  } else {
151  // #16891
152  $ilTabs->clearTargets();
153  include_once("./Services/InfoScreen/classes/class.ilInfoScreenGUI.php");
154  $info = new ilInfoScreenGUI($this);
155  $this->ctrl->forwardCommand($info);
156  }
157  break;
158 
159  case 'ilobjectmetadatagui':
160  $this->checkPermission("write");
161  $ilTabs->activateTab("meta_data");
162  $this->addHeaderAction();
163  include_once 'Services/Object/classes/class.ilObjectMetaDataGUI.php';
164  $md_gui = new ilObjectMetaDataGUI($this->object);
165  $this->ctrl->forwardCommand($md_gui);
166  break;
167 
168  case "ilsurveyevaluationgui":
169  $ilTabs->activateTab("svy_results");
170  $this->addHeaderAction();
171  include_once("./Modules/Survey/classes/class.ilSurveyEvaluationGUI.php");
172  $eval_gui = new ilSurveyEvaluationGUI($this->object);
173  $this->ctrl->forwardCommand($eval_gui);
174  break;
175 
176  case "ilsurveyexecutiongui":
177  $ilTabs->clearTargets();
178  include_once("./Modules/Survey/classes/class.ilSurveyExecutionGUI.php");
179  $exec_gui = new ilSurveyExecutionGUI($this->object);
180  $this->ctrl->forwardCommand($exec_gui);
181  break;
182 
183  case 'ilpermissiongui':
184  $ilTabs->activateTab("perm_settings");
185  $this->addHeaderAction();
186  include_once("Services/AccessControl/classes/class.ilPermissionGUI.php");
187  $perm_gui = new ilPermissionGUI($this);
188  $this->ctrl->forwardCommand($perm_gui);
189  break;
190 
191  case 'ilobjectcopygui':
192  include_once './Services/Object/classes/class.ilObjectCopyGUI.php';
193  $cp = new ilObjectCopyGUI($this);
194  $cp->setType('svy');
195  $this->ctrl->forwardCommand($cp);
196  break;
197 
198  case "ilcommonactiondispatchergui":
199  include_once("Services/Object/classes/class.ilCommonActionDispatcherGUI.php");
201  $this->ctrl->forwardCommand($gui);
202  break;
203 
204  // 360, skill service
205  case 'ilsurveyskillgui':
206  $ilTabs->activateTab("survey_competences");
207  include_once("./Modules/Survey/classes/class.ilSurveySkillGUI.php");
208  $gui = new ilSurveySkillGUI($this->object);
209  $this->ctrl->forwardCommand($gui);
210  break;
211 
212  case 'ilsurveyskilldeterminationgui':
213  $ilTabs->activateTab("maintenance");
214  include_once("./Modules/Survey/classes/class.ilSurveySkillDeterminationGUI.php");
215  $gui = new ilSurveySkillDeterminationGUI($this->object);
216  $this->ctrl->forwardCommand($gui);
217  break;
218 
219  case 'ilsurveyeditorgui':
220  $this->checkPermission("write");
221  $ilTabs->activateTab("survey_questions");
222  include_once("./Modules/Survey/classes/class.ilSurveyEditorGUI.php");
223  $gui = new ilSurveyEditorGUI($this);
224  $this->ctrl->forwardCommand($gui);
225  break;
226 
227  case 'ilsurveyconstraintsgui':
228  $this->checkPermission("write");
229  $ilTabs->activateTab("constraints");
230  include_once("./Modules/Survey/classes/class.ilSurveyConstraintsGUI.php");
231  $gui = new ilSurveyConstraintsGUI($this);
232  $this->ctrl->forwardCommand($gui);
233  break;
234 
235  case 'ilsurveyparticipantsgui':
236  if (!$this->object->get360Mode()) {
237  $ilTabs->activateTab("maintenance");
238  } else {
239  $ilTabs->activateTab("survey_360_appraisees");
240  }
241  include_once("./Modules/Survey/classes/class.ilSurveyParticipantsGUI.php");
242  $gui = new ilSurveyParticipantsGUI($this, $this->checkPermissionBool("write"));
243  $this->ctrl->forwardCommand($gui);
244  break;
245 
246  case "illearningprogressgui":
247  $ilTabs->activateTab("learning_progress");
248  include_once("./Services/Tracking/classes/class.ilLearningProgressGUI.php");
249  $new_gui = new ilLearningProgressGUI(
251  $this->object->getRefId()
252  );
253  $this->ctrl->forwardCommand($new_gui);
254  break;
255 
256  case 'ilexportgui':
257  $ilTabs->activateTab("export");
258  include_once("./Services/Export/classes/class.ilExportGUI.php");
259  $exp_gui = new ilExportGUI($this);
260  $exp_gui->addFormat("xml");
261  $this->ctrl->forwardCommand($exp_gui);
262  break;
263 
264  default:
265  $this->addHeaderAction();
266  $cmd.= "Object";
267 
268  $this->log->debug("Default cmd= $cmd");
269 
270  $this->$cmd();
271  break;
272  }
273 
274  if (strtolower($_GET["baseClass"]) != "iladministrationgui" &&
275  $this->getCreationMode() != true) {
276  $this->tpl->show();
277  }
278  }
Class ilSurveyParticipantsGUI.
Class ilObjectMetaDataGUI.
Survey skill service GUI class.
Class ilInfoScreenGUI.
Class ilSurveyEditorGUI.
$_SESSION["AccountId"]
GUI class for the workflow of copying objects.
static validateExternalRaterCode($a_ref_id, $a_code)
static getStyleSheetLocation($mode="output", $a_css_name="", $a_css_location="")
get full style sheet file name (path inclusive) of current user
$_GET["client_id"]
Class ilSurveyConstraintsGUI.
$GLOBALS['loaded']
Global hash that tracks already loaded includes.
Export User Interface Class.
setCustomRolesForSelection($a_roles)
Set custom roles for mapping to LTI roles.
prepareOutput($a_show_subobjects=true)
prepare output
GUI class for LTI provider object settings.
Survey execution graphical output.
infoScreen()
show information screen
Create styles array
The data for the language used.
Create new PHPExcel object
obj_idprivate
getCreationMode()
get creation mode
addSubTabs($a_section)
Add subtabs for tabs.
checkPermission($a_perm, $a_cmd="", $a_type="", $a_ref_id=null)
Check permission and redirect on error.
New PermissionGUI (extends from old ilPermission2GUI) RBAC related output.
Survey skill determination GUI class.
Survey evaluation graphical output.
$info
Definition: index.php:5
addHeaderAction()
Add header action menu.
checkPermissionBool($a_perm, $a_cmd="", $a_type="", $a_ref_id=null)
Check permission.
Class ilObjUserTrackingGUI.
static getInstanceFromAjaxCall()
(Re-)Build instance from ajax call
+ Here is the call graph for this function:

◆ getTabs()

ilObjSurveyGUI::getTabs ( )

adds tabs to tab gui object

Parameters
object$tabs_guiilTabsGUI object

Definition at line 344 of file class.ilObjSurveyGUI.php.

References $help, $ilUser, $template, ilObjectGUI\$user, ilObjSurveyAccess\_hasEvaluationAccess(), array, ilLearningProgressAccess\checkAccess(), ilObjectGUI\checkPermissionBool(), and object.

345  {
347  $ilHelp = $this->help;
348 
349  if ($this->object instanceof ilObjSurveyQuestionPool) {
350  return true;
351  }
352 
353  $ilHelp->setScreenIdComponent("svy");
354 
355  $hidden_tabs = array();
356  $template = $this->object->getTemplate();
357  if ($template) {
358  include_once "Services/Administration/classes/class.ilSettingsTemplate.php";
360  $hidden_tabs = $template->getHiddenTabs();
361  }
362 
363  if ($this->checkPermissionBool("write")) {
364  $this->tabs_gui->addTab(
365  "survey_questions",
366  $this->lng->txt("survey_questions"),
367  $this->ctrl->getLinkTargetByClass(array("ilsurveyeditorgui", "ilsurveypagegui"), "renderPage")
368  );
369  }
370 
371  if ($this->checkPermissionBool("read")) {
372  $this->tabs_gui->addTab(
373  "info_short",
374  $this->lng->txt("info_short"),
375  $this->ctrl->getLinkTarget($this, 'infoScreen')
376  );
377  }
378 
379  // properties
380  if ($this->checkPermissionBool("write")) {
381  $this->tabs_gui->addTab(
382  "settings",
383  $this->lng->txt("settings"),
384  $this->ctrl->getLinkTarget($this, 'properties')
385  );
386  } elseif ($this->checkPermissionBool("read")) {
387  if ($this->object->get360Mode() &&
388  $this->object->get360SelfRaters() &&
389  $this->object->isAppraisee($ilUser->getId()) &&
390  !$this->object->isAppraiseeClosed($ilUser->getId())) {
391  $this->tabs_gui->addTab(
392  "survey_360_edit_raters",
393  $this->lng->txt("survey_360_edit_raters"),
394  $this->ctrl->getLinkTargetByClass('ilsurveyparticipantsgui', 'editRaters')
395  );
396 
397  // :TODO: mail to raters
398  }
399  }
400 
401  // questions
402  if ($this->checkPermissionBool("write") &&
403  !in_array("constraints", $hidden_tabs) &&
404  !$this->object->get360Mode()) {
405  // constraints
406  $this->tabs_gui->addTab(
407  "constraints",
408  $this->lng->txt("constraints"),
409  $this->ctrl->getLinkTargetByClass("ilsurveyconstraintsgui", "constraints")
410  );
411  }
412 
413  if ($this->checkPermissionBool("write")) {
414  // 360°
415  if ($this->object->get360Mode()) {
416  // 360 mode + competence service
417  include_once("./Services/Skill/classes/class.ilSkillManagementSettings.php");
418  $skmg_set = new ilSkillManagementSettings();
419  if ($this->object->get360SkillService() && $skmg_set->isActivated()) {
420  $this->tabs_gui->addTab(
421  "survey_competences",
422  $this->lng->txt("survey_competences"),
423  $this->ctrl->getLinkTargetByClass("ilsurveyskillgui", "listQuestionAssignment")
424  );
425  }
426 
427  $this->tabs_gui->addTab(
428  "survey_360_appraisees",
429  $this->lng->txt("survey_360_appraisees"),
430  $this->ctrl->getLinkTargetByClass('ilsurveyparticipantsgui', 'listAppraisees')
431  );
432  } else {
433  // maintenance
434  $this->tabs_gui->addTab(
435  "maintenance",
436  $this->lng->txt("maintenance"),
437  $this->ctrl->getLinkTargetByClass('ilsurveyparticipantsgui', 'maintenance')
438  );
439  }
440  }
441 
442  include_once "./Modules/Survey/classes/class.ilObjSurveyAccess.php";
443  if ($this->checkPermissionBool("write") ||
444  ilObjSurveyAccess::_hasEvaluationAccess($this->object->getId(), $ilUser->getId())) {
445  // evaluation
446  $this->tabs_gui->addTab(
447  "svy_results",
448  $this->lng->txt("svy_results"),
449  $this->ctrl->getLinkTargetByClass("ilsurveyevaluationgui", "evaluation")
450  );
451  }
452 
453  // learning progress
454  include_once "./Services/Tracking/classes/class.ilLearningProgressAccess.php";
455  if (ilLearningProgressAccess::checkAccess($this->object->getRefId())) {
456  $this->tabs_gui->addTarget(
457  "learning_progress",
458  $this->ctrl->getLinkTargetByClass(array("ilobjsurveygui", "illearningprogressgui"), ""),
459  "",
460  array("illplistofobjectsgui", "illplistofsettingsgui", "illearningprogressgui", "illplistofprogressgui")
461  );
462  }
463 
464  if ($this->checkPermissionBool("write")) {
465  if (!in_array("meta_data", $hidden_tabs)) {
466  // meta data
467  include_once "Services/Object/classes/class.ilObjectMetaDataGUI.php";
468  $mdgui = new ilObjectMetaDataGUI($this->object);
469  $mdtab = $mdgui->getTab();
470  if ($mdtab) {
471  $this->tabs_gui->addTab(
472  "meta_data",
473  $this->lng->txt("meta_data"),
474  $mdtab
475  );
476  }
477  }
478 
479  if (!in_array("export", $hidden_tabs)) {
480  // export
481  $this->tabs_gui->addTab(
482  "export",
483  $this->lng->txt("export"),
484  $this->ctrl->getLinkTargetByClass("ilexportgui", "")
485  );
486  }
487  }
488 
489  if ($this->checkPermissionBool("edit_permission")) {
490  // permissions
491  $this->tabs_gui->addTab(
492  "perm_settings",
493  $this->lng->txt("perm_settings"),
494  $this->ctrl->getLinkTargetByClass(array(get_class($this),'ilpermissiongui'), "perm")
495  );
496  }
497  }
Class ilObjectMetaDataGUI.
$template
static checkAccess($a_ref_id, $a_allow_only_read=true)
check access to learning progress
$ilUser
Definition: imgupload.php:18
Create styles array
The data for the language used.
static _hasEvaluationAccess($a_obj_id, $user_id)
Create new PHPExcel object
obj_idprivate
checkPermissionBool($a_perm, $a_cmd="", $a_type="", $a_ref_id=null)
Check permission.
Settings template application class.
+ Here is the call graph for this function:

◆ getUserResultsPlain()

ilObjSurveyGUI::getUserResultsPlain (   $a_active_id)
protected

Definition at line 2029 of file class.ilObjSurveyGUI.php.

References $res, $text, $type, array, and object.

Referenced by sendUserResultsMail().

2030  {
2031  $res = array();
2032 
2033  $show_titles = (bool) $this->object->getShowQuestionTitles();
2034 
2035  foreach ($this->object->getSurveyPages() as $page) {
2036  if (count($page) > 0) {
2037  $res[] = "\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n";
2038 
2039  // question block
2040  if (count($page) > 1) {
2041  if ((bool) $page[0]["questionblock_show_blocktitle"]) {
2042  $res[$this->lng->txt("questionblock")] = trim($page[0]["questionblock_title"]) . "\n";
2043  }
2044  }
2045 
2046  // questions
2047 
2048  $page_res = array();
2049 
2050  foreach ($page as $question) {
2051  $question_gui = $this->object->getQuestionGUI($question["type_tag"], $question["question_id"]);
2052  if (is_object($question_gui)) {
2053  $question_parts = array();
2054 
2055  // heading
2056  if (strlen($question["heading"])) {
2057  $question_parts[$this->lng->txt("heading")] = trim($question["heading"]);
2058  }
2059 
2060  if ($show_titles) {
2061  $question_parts[$this->lng->txt("title")] = trim($question["title"]);
2062  }
2063 
2064  if ((bool) $question["questionblock_show_questiontext"]) {
2065  $question_parts[$this->lng->txt("question")] = trim(strip_tags($question_gui->object->getQuestionText()));
2066  }
2067 
2068  $answers = $question_gui->getParsedAnswers(
2069  $this->object->loadWorkingData($question["question_id"], $a_active_id),
2070  true
2071  );
2072 
2073  if (sizeof($answers)) {
2074  $multiline = false;
2075  if (sizeof($answers) > 1 ||
2076  get_class($question_gui) == "SurveyTextQuestionGUI") {
2077  $multiline = true;
2078  }
2079 
2080  $parts = array();
2081  foreach ($answers as $answer) {
2082  $text = null;
2083  if ($answer["textanswer"]) {
2084  $text = ' ("' . $answer["textanswer"] . '")';
2085  }
2086  if (!isset($answer["cols"])) {
2087  if (isset($answer["title"])) {
2088  $parts[] = $answer["title"] . $text;
2089  } elseif (isset($answer["value"])) {
2090  $parts[] = $answer["value"];
2091  } elseif ($text) {
2092  $parts[] = substr($text, 2, -1);
2093  }
2094  }
2095  // matrix
2096  else {
2097  $tmp = array();
2098  foreach ($answer["cols"] as $col) {
2099  $tmp[] = $col["title"];
2100  }
2101  $parts[] = $answer["title"] . ": " . implode(", ", $tmp) . $text;
2102  }
2103  }
2104  $question_parts[$this->lng->txt("answer")] =
2105  ($multiline ? "\n" : "") . implode("\n", $parts);
2106  }
2107 
2108  $tmp = array();
2109  foreach ($question_parts as $type => $value) {
2110  $tmp[] = $type . ": " . $value;
2111  }
2112  $page_res[] = implode("\n", $tmp);
2113  }
2114  }
2115 
2116  $res[] = implode("\n\n-------------------------------\n\n", $page_res);
2117  }
2118  }
2119 
2120  $res[] = "\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n";
2121 
2122  return implode("\n", $res);
2123  }
$type
foreach($_POST as $key=> $value) $res
$text
Definition: errorreport.php:18
Create styles array
The data for the language used.
Create new PHPExcel object
obj_idprivate
+ Here is the caller graph for this function:

◆ getUserResultsTable()

ilObjSurveyGUI::getUserResultsTable (   $a_active_id)

Definition at line 1958 of file class.ilObjSurveyGUI.php.

References object.

Referenced by viewUserResultsObject().

1959  {
1960  $rtpl = new ilTemplate("tpl.svy_view_user_results.html", true, true, "Modules/Survey");
1961 
1962  $show_titles = (bool) $this->object->getShowQuestionTitles();
1963 
1964  foreach ($this->object->getSurveyPages() as $page) {
1965  if (count($page) > 0) {
1966  // question block
1967  if (count($page) > 1) {
1968  if ((bool) $page[0]["questionblock_show_blocktitle"]) {
1969  $rtpl->setVariable("BLOCK_TITLE", trim($page[0]["questionblock_title"]));
1970  }
1971  }
1972 
1973  // questions
1974  foreach ($page as $question) {
1975  $question_gui = $this->object->getQuestionGUI($question["type_tag"], $question["question_id"]);
1976  if (is_object($question_gui)) {
1977  $rtpl->setCurrentBlock("question_bl");
1978 
1979  // heading
1980  if (strlen($question["heading"])) {
1981  $rtpl->setVariable("HEADING", trim($question["heading"]));
1982  }
1983 
1984  $rtpl->setVariable(
1985  "QUESTION_DATA",
1986  $question_gui->getPrintView(
1987  $show_titles,
1988  (bool) $question["questionblock_show_questiontext"],
1989  $this->object->getId(),
1990  $this->object->loadWorkingData($question["question_id"], $a_active_id)
1991  )
1992  );
1993 
1994  $rtpl->parseCurrentBlock();
1995  }
1996  }
1997 
1998  $rtpl->setCurrentBlock("block_bl");
1999  $rtpl->parseCurrentBlock();
2000  }
2001  }
2002 
2003  return $rtpl->get();
2004  }
special template class to simplify handling of ITX/PEAR
Create new PHPExcel object
obj_idprivate
+ Here is the caller graph for this function:

◆ importSurveyObject()

ilObjSurveyGUI::importSurveyObject ( )

form for new survey object import

Definition at line 1443 of file class.ilObjSurveyGUI.php.

References $_GET, $error, $form, ilObjectGUI\$tpl, ilObjectGUI\checkPermission(), ilSettingsTemplate\getAllSettingsTemplates(), initImportForm(), ilObjectGUI\putObjectInTree(), ilUtil\redirect(), ilUtil\sendFailure(), and ilUtil\sendSuccess().

1444  {
1445  $tpl = $this->tpl;
1446 
1447  $parent_id = $_GET["ref_id"];
1448  $new_type = $_REQUEST["new_type"];
1449 
1450  // create permission is already checked in createObject. This check here is done to prevent hacking attempts
1451  $this->checkPermission("create", "", $new_type);
1452 
1453  $this->lng->loadLanguageModule($new_type);
1454  $this->ctrl->setParameter($this, "new_type", $new_type);
1455 
1456  $form = $this->initImportForm($new_type);
1457  if ($form->checkInput()) {
1458  include_once("./Modules/Survey/classes/class.ilObjSurvey.php");
1459  $newObj = new ilObjSurvey();
1460  $newObj->setType($new_type);
1461  $newObj->setTitle("dummy");
1462  $newObj->setDescription("dummy");
1463  $newObj->create(true);
1464  $this->putObjectInTree($newObj);
1465 
1466  // copy uploaded file to import directory
1467 
1468  $this->log->debug("form->getInput(spl) = " . $form->getInput("spl"));
1469 
1470  $error = $newObj->importObject($_FILES["importfile"], $form->getInput("spl"));
1471  if (strlen($error)) {
1472  $newObj->delete();
1474  return;
1475  }
1476 
1477  ilUtil::sendSuccess($this->lng->txt("object_imported"), true);
1478  ilUtil::redirect("ilias.php?ref_id=" . $newObj->getRefId() .
1479  "&baseClass=ilObjSurveyGUI");
1480 
1481  // using template?
1482  include_once "Services/Administration/classes/class.ilSettingsTemplate.php";
1483  $templates = ilSettingsTemplate::getAllSettingsTemplates("svy");
1484  if ($templates) {
1485  $tpl = $this->tpl;
1486  $tpl->addJavaScript("./Modules/Scorm2004/scripts/questions/jquery.js");
1487  // $tpl->addJavaScript("./Modules/Scorm2004/scripts/questions/jquery-ui-min.js");
1488 
1489  $this->tpl->setCurrentBlock("template_option");
1490  $this->tpl->setVariable("VAL_TEMPLATE_OPTION", "");
1491  $this->tpl->setVariable("TXT_TEMPLATE_OPTION", $this->lng->txt("none"));
1492  $this->tpl->parseCurrentBlock();
1493 
1494  foreach ($templates as $item) {
1495  $this->tpl->setCurrentBlock("template_option");
1496  $this->tpl->setVariable("VAL_TEMPLATE_OPTION", $item["id"]);
1497  $this->tpl->setVariable("TXT_TEMPLATE_OPTION", $item["title"]);
1498  $this->tpl->parseCurrentBlock();
1499 
1500  $desc = str_replace("\n", "", nl2br($item["description"]));
1501  $desc = str_replace("\r", "", $desc);
1502 
1503  $this->tpl->setCurrentBlock("js_data");
1504  $this->tpl->setVariable("JS_DATA_ID", $item["id"]);
1505  $this->tpl->setVariable("JS_DATA_TEXT", $desc);
1506  $this->tpl->parseCurrentBlock();
1507  }
1508 
1509  $this->tpl->setCurrentBlock("templates");
1510  $this->tpl->setVariable("TXT_TEMPLATE", $this->lng->txt("svy_settings_template"));
1511  $this->tpl->parseCurrentBlock();
1512  }
1513  }
1514 
1515  // display form to correct errors
1516  $form->setValuesByPost();
1517  $tpl->setContent($form->getHtml());
1518  }
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
static getAllSettingsTemplates($a_type, $a_include_auto_generated=false)
Get all settings templates of type.
$_GET["client_id"]
initImportForm($a_new_type)
$error
Definition: Error.php:17
if(isset($_POST['submit'])) $form
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
putObjectInTree(ilObject $a_obj, $a_parent_node_id=null)
Add object to tree at given position.
checkPermission($a_perm, $a_cmd="", $a_type="", $a_ref_id=null)
Check permission and redirect on error.
static redirect($a_script)
+ Here is the call graph for this function:

◆ infoScreen()

ilObjSurveyGUI::infoScreen ( )

show information screen

Definition at line 1540 of file class.ilObjSurveyGUI.php.

References $_POST, $_SESSION, ilObjectGUI\$access, $ilUser, $info, $list, $tabs, ilObjectGUI\$toolbar, $txt, ilObjectGUI\$user, ilObjSurveyAccess\_hasEvaluationAccess(), array, ilObjectGUI\checkPermission(), ilObjectGUI\checkPermissionBool(), ilDatePresentation\formatDate(), ilSubmitButton\getInstance(), ilLinkButton\getInstance(), ilUserUtil\getNamePresentation(), IL_CAL_UNIX, object, ilUtil\sendFailure(), ilUtil\sendInfo(), ilTextInputGUI\setSize(), and ilDatePresentation\setUseRelativeDates().

Referenced by executeCommand(), and infoScreenObject().

1541  {
1542  $ilTabs = $this->tabs;
1543  $ilUser = $this->user;
1544  $ilToolbar = $this->toolbar;
1545  $ilAccess = $this->access;
1546 
1547  if (!$this->external_rater_360) {
1548  if (!$this->checkPermissionBool("read")) {
1549  $this->checkPermission("visible");
1550  }
1551  }
1552 
1553  $ilTabs->activateTab("info_short");
1554 
1555  include_once "./Modules/Survey/classes/class.ilSurveyExecutionGUI.php";
1556  $output_gui = new ilSurveyExecutionGUI($this->object);
1557 
1558  include_once("./Services/InfoScreen/classes/class.ilInfoScreenGUI.php");
1559  $info = new ilInfoScreenGUI($this);
1560  $info->enablePrivateNotes();
1561 
1562 
1563  $is_appraisee = false;
1564 
1565  // 360° - appraisee infos
1566  if ($this->object->get360Mode() &&
1567  $this->object->isAppraisee($ilUser->getId())) {
1568  $is_appraisee = true;
1569 
1570  $info->addSection($this->lng->txt("survey_360_appraisee_info"));
1571 
1572  $appr_data = $this->object->getAppraiseesData();
1573  $appr_data = $appr_data[$ilUser->getId()];
1574  $info->addProperty($this->lng->txt("survey_360_raters_status_info"), $appr_data["finished"]);
1575 
1576  if (!$appr_data["closed"]) {
1577  include_once "Services/UIComponent/Button/classes/class.ilLinkButton.php";
1578  $button = ilLinkButton::getInstance();
1579  $button->setCaption("survey_360_appraisee_close_action");
1580  $button->setUrl($this->ctrl->getLinkTargetByClass("ilsurveyparticipantsgui", "confirmappraiseeclose"));
1581  $close_button_360 = '<div>' . $button->render() . '</div>';
1582 
1583  $txt = "survey_360_appraisee_close_action_info";
1584  if ($this->object->get360SkillService()) {
1585  $txt .= "_skill";
1586  }
1587  $info->addProperty(
1588  $this->lng->txt("status"),
1589  $close_button_360 . $this->lng->txt($txt)
1590  );
1591  } else {
1593 
1594  $dt = new ilDateTime($appr_data["closed"], IL_CAL_UNIX);
1595  $info->addProperty(
1596  $this->lng->txt("status"),
1597  sprintf(
1598  $this->lng->txt("survey_360_appraisee_close_action_status"),
1600  )
1601  );
1602  }
1603  }
1604 
1605 
1606  // handle (anonymous) code
1607 
1608  // validate incoming
1609  $code_input = false;
1610  $anonymous_code = $_POST["anonymous_id"];
1611  if ($anonymous_code) {
1612  $code_input = true;
1613  // if(!$this->object->isUnusedCode($anonymous_code, $ilUser->getId()))
1614  if (!$this->object->checkSurveyCode($anonymous_code)) { // #15031 - valid as long survey is not finished
1615  $anonymous_code = null;
1616  } else {
1617  // #15860
1618  $this->object->bindSurveyCodeToUser($ilUser->getId(), $anonymous_code);
1619  }
1620  }
1621  if ($anonymous_code) {
1622  $_SESSION["anonymous_id"][$this->object->getId()] = $anonymous_code;
1623  } else {
1624  $anonymous_code = $_SESSION["anonymous_id"][$this->object->getId()];
1625  if ($anonymous_code) {
1626  $code_input = true;
1627  }
1628  }
1629 
1630  // try to find code for current (registered) user from existing run
1631  if ($this->object->getAnonymize() && !$anonymous_code) {
1632  $anonymous_code = $this->object->findCodeForUser($ilUser->getId());
1633  }
1634 
1635  // get existing runs for current user, might generate code
1636  $participant_status = $this->object->getUserSurveyExecutionStatus($anonymous_code);
1637  if ($participant_status) {
1638  $anonymous_code = $participant_status["code"];
1639  $participant_status = $participant_status["runs"];
1640  }
1641 
1642  // (final) check for proper anonymous code
1643  if (!$this->object->isAccessibleWithoutCode() &&
1644  !$is_appraisee &&
1645  $code_input && // #11346
1646  (!$anonymous_code || !$this->object->isAnonymousKey($anonymous_code))) {
1647  $anonymous_code = null;
1648  ilUtil::sendInfo($this->lng->txt("wrong_survey_code_used"));
1649  }
1650 
1651  // :TODO: really save in session?
1652  $_SESSION["anonymous_id"][$this->object->getId()] = $anonymous_code;
1653  $survey_started = $this->object->isSurveyStarted($ilUser->getId(), $anonymous_code);
1654 
1655  $showButtons = $big_button = false;
1656 
1657  // already finished?
1658  if (!$this->object->get360Mode() &&
1659  ($survey_started === 1 && // survey finished
1660  !(!$this->object->isAccessibleWithoutCode() && !$anonymous_code && $ilUser->getId() == ANONYMOUS_USER_ID))) { // not code accessible an no anonymous code and anonymous user (see #0020333)
1661  ilUtil::sendInfo($this->lng->txt("already_completed_survey"));
1662 
1663  if ($ilUser->getId() != ANONYMOUS_USER_ID) {
1664  if ($this->object->hasViewOwnResults()) {
1665  include_once "Services/UIComponent/Button/classes/class.ilLinkButton.php";
1666  $button = ilLinkButton::getInstance();
1667  $button->setCaption("svy_view_own_results");
1668  $button->setUrl($this->ctrl->getLinkTarget($this, "viewUserResults"));
1669  $ilToolbar->addButtonInstance($button);
1670  }
1671 
1672  // see ilSurveyExecutionGUI
1673  if ($this->object->hasMailConfirmation()) {
1674  if ($this->object->hasViewOwnResults()) {
1675  $ilToolbar->addSeparator();
1676  }
1677 
1678  if ($ilUser->getId() == ANONYMOUS_USER_ID ||
1679  !$ilUser->getEmail()) {
1680  require_once "Services/Form/classes/class.ilTextInputGUI.php";
1681  $mail = new ilTextInputGUI($this->lng->txt("email"), "mail");
1682  $mail->setSize(25);
1683  $mail->setValue($ilUser->getEmail());
1684  $ilToolbar->addInputItem($mail, true);
1685  }
1686 
1687  $ilToolbar->setFormAction($this->ctrl->getFormAction($this, "mailUserResults"));
1688 
1689  include_once "Services/UIComponent/Button/classes/class.ilSubmitButton.php";
1690  $button = ilSubmitButton::getInstance();
1691  $button->setCaption("svy_mail_send_confirmation");
1692  $button->setCommand("mailUserResults");
1693  $ilToolbar->addButtonInstance($button);
1694  }
1695  }
1696  } else {
1697  // "active" survey?
1698  $canStart = $this->object->canStartSurvey(null, $this->external_rater_360);
1699 
1700  $showButtons = $canStart["result"];
1701  if (!$showButtons) {
1702  if ($canStart["edit_settings"] &&
1703  $ilAccess->checkAccess("write", "", $this->ref_id)) {
1704  $canStart["messages"][] = "<a href=\"" . $this->ctrl->getLinkTarget($this, "properties") . "\">&raquo; " .
1705  $this->lng->txt("survey_edit_settings") . "</a>";
1706  }
1707  ilUtil::sendInfo(implode("<br />", $canStart["messages"]));
1708  }
1709  }
1710 
1711  if ($showButtons) {
1712  // code is mandatory and not given yet
1713  if (!$is_appraisee &&
1714  !$anonymous_code &&
1715  !$this->object->isAccessibleWithoutCode()) {
1716  $info->setFormAction($this->ctrl->getFormAction($this, "infoScreen"));
1717  $info->addSection($this->lng->txt("anonymization"));
1718  $info->addProperty("", $this->lng->txt("anonymize_anonymous_introduction"));
1719  $info->addPropertyTextinput($this->lng->txt("enter_anonymous_id"), "anonymous_id", "", 8, "infoScreen", $this->lng->txt("submit"), true);
1720  } else {
1721  // trunk/default
1722  if (!$this->object->get360Mode()) {
1723  if ($anonymous_code) {
1724  $info->addHiddenElement("anonymous_id", $anonymous_code);
1725  }
1726  if ($survey_started === 0) {
1727  $big_button = array("resume", $this->lng->txt("resume_survey"));
1728  } elseif ($survey_started === false) {
1729  $big_button = array("start", $this->lng->txt("start_survey"));
1730  }
1731  }
1732  // 360°
1733  else {
1734  $appr_ids = array();
1735 
1736  // use given code (if proper external one)
1737  if ($anonymous_code) {
1738  $anonymous_id = $this->object->getAnonymousIdByCode($anonymous_code);
1739  if ($anonymous_id) {
1740  $appr_ids = $this->object->getAppraiseesToRate(0, $anonymous_id);
1741  }
1742  }
1743 
1744  // registered user
1745  // if an auto-code was generated, we still have to check for the original user id
1746  if (!$appr_ids && $ilUser->getId() != ANONYMOUS_USER_ID) {
1747  $appr_ids = $this->object->getAppraiseesToRate($ilUser->getId());
1748  }
1749 
1750  if (sizeof($appr_ids)) {
1751  // map existing runs to appraisees
1752  $active_appraisees = array();
1753  if ($participant_status) {
1754  foreach ($participant_status as $item) {
1755  $active_appraisees[$item["appr_id"]] = $item["finished"];
1756  }
1757  }
1758 
1759  $list = array();
1760 
1761  foreach ($appr_ids as $appr_id) {
1762  if ($this->object->isAppraiseeClosed($appr_id)) {
1763  // closed
1764  $list[$appr_id] = $this->lng->txt("survey_360_appraisee_is_closed");
1765  } elseif (array_key_exists($appr_id, $active_appraisees)) {
1766  // already done
1767  if ($active_appraisees[$appr_id]) {
1768  $list[$appr_id] = $this->lng->txt("already_completed_survey");
1769  }
1770  // resume
1771  else {
1772  $list[$appr_id] = array("resume", $this->lng->txt("resume_survey"));
1773  }
1774  } else {
1775  // start
1776  $list[$appr_id] = array("start", $this->lng->txt("start_survey"));
1777  }
1778  }
1779 
1780  $info->addSection($this->lng->txt("survey_360_rate_other_appraisees"));
1781 
1782  include_once "Services/User/classes/class.ilUserUtil.php";
1783  foreach ($list as $appr_id => $item) {
1784  $appr_name = ilUserUtil::getNamePresentation($appr_id, false, false, "", true);
1785 
1786  if (!is_array($item)) {
1787  $info->addProperty($appr_name, $item);
1788  } else {
1789  $this->ctrl->setParameter($output_gui, "appr_id", $appr_id);
1790  $href = $this->ctrl->getLinkTarget($output_gui, $item[0]);
1791  $this->ctrl->setParameter($output_gui, "appr_id", "");
1792 
1793  include_once "Services/UIComponent/Button/classes/class.ilLinkButton.php";
1794  $button = ilLinkButton::getInstance();
1795  $button->setCaption($item[1], false);
1796  $button->setUrl($href);
1797  $big_button_360 = '<div>' . $button->render() . '</div>';
1798 
1799  $info->addProperty($appr_name, $big_button_360);
1800  }
1801  }
1802  } elseif (!$is_appraisee) {
1803  ilUtil::sendFailure($this->lng->txt("survey_360_no_appraisees"));
1804  }
1805  }
1806  }
1807 
1808  if ($this->object->get360Mode() &&
1809  $this->object->get360SelfAppraisee() &&
1810  !$this->object->isAppraisee($ilUser->getId()) &&
1811  $ilUser->getId() != ANONYMOUS_USER_ID) { // #14968
1812  $link = $this->ctrl->getLinkTargetByClass("ilsurveyparticipantsgui", "addSelfAppraisee");
1813  $link = '<a href="' . $link . '">' . $this->lng->txt("survey_360_add_self_appraisee") . '</a>';
1814  $info->addProperty("&nbsp;", $link);
1815  }
1816  }
1817 
1818  if ($big_button) {
1819  $ilToolbar->setFormAction($this->ctrl->getFormAction($output_gui, "infoScreen"));
1820 
1821  include_once "Services/UIComponent/Button/classes/class.ilSubmitButton.php";
1822  $button = ilSubmitButton::getInstance();
1823  $button->setCaption($big_button[1], false);
1824  $button->setCommand($big_button[0]);
1825  $button->setPrimary(true);
1826  $ilToolbar->addButtonInstance($button);
1827 
1828  $ilToolbar->setCloseFormTag(false);
1829  $info->setOpenFormTag(false);
1830  }
1831  /* #12016
1832  else
1833  {
1834  $info->setFormAction($this->ctrl->getFormAction($output_gui, "infoScreen"));
1835  }
1836  */
1837 
1838  if (strlen($this->object->getIntroduction())) {
1839  $introduction = $this->object->getIntroduction();
1840  $info->addSection($this->lng->txt("introduction"));
1841  $info->addProperty("", $this->object->prepareTextareaOutput($introduction) .
1842  "<br />" . $info->getHiddenToggleButton());
1843  } else {
1844  $info->addSection("");
1845  $info->addProperty("", $info->getHiddenToggleButton());
1846  }
1847 
1848  $info->hideFurtherSections(false);
1849 
1850  if (!$this->object->get360Mode()) {
1851  $info->addSection($this->lng->txt("svy_general_properties"));
1852 
1853  $info->addProperty(
1854  $this->lng->txt("survey_results_anonymization"),
1855  !$this->object->hasAnonymizedResults()
1856  ? $this->lng->txt("survey_results_personalized_info")
1857  : $this->lng->txt("survey_results_anonymized_info")
1858  );
1859 
1860  include_once "./Modules/Survey/classes/class.ilObjSurveyAccess.php";
1861  if ($this->checkPermissionBool("write") ||
1862  ilObjSurveyAccess::_hasEvaluationAccess($this->object->getId(), $ilUser->getId())) {
1863  $info->addProperty($this->lng->txt("evaluation_access"), $this->lng->txt("evaluation_access_info"));
1864  }
1865  }
1866 
1867  $info->addMetaDataSections($this->object->getId(), 0, $this->object->getType());
1868 
1869  $this->ctrl->forwardCommand($info);
1870  }
if(isset($_REQUEST['delete'])) $list
Definition: registry.php:41
Class ilInfoScreenGUI.
$_SESSION["AccountId"]
static formatDate(ilDateTime $date, $a_skip_day=false, $a_include_wd=false)
Format a date public.
static setUseRelativeDates($a_status)
set use relative dates
const IL_CAL_UNIX
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
Survey execution graphical output.
setSize($a_size)
Set Size.
This class represents a text property in a property form.
Date and time handling
$ilUser
Definition: imgupload.php:18
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, $a_ctrl_path="ilpublicuserprofilegui")
Default behaviour is:
$txt
Definition: error.php:11
Create styles array
The data for the language used.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
static _hasEvaluationAccess($a_obj_id, $user_id)
Create new PHPExcel object
obj_idprivate
checkPermission($a_perm, $a_cmd="", $a_type="", $a_ref_id=null)
Check permission and redirect on error.
$info
Definition: index.php:5
checkPermissionBool($a_perm, $a_cmd="", $a_type="", $a_ref_id=null)
Check permission.
$_POST["username"]
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ infoScreenObject()

ilObjSurveyGUI::infoScreenObject ( )

this one is called from the info button in the repository not very nice to set cmdClass/Cmd manually, if everything works through ilCtrl in the future this may be changed

Definition at line 1530 of file class.ilObjSurveyGUI.php.

References infoScreen().

1531  {
1532  $this->ctrl->setCmd("showSummary");
1533  $this->ctrl->setCmdClass("ilinfoscreengui");
1534  $this->infoScreen();
1535  }
infoScreen()
show information screen
+ Here is the call graph for this function:

◆ initImportForm()

ilObjSurveyGUI::initImportForm (   $a_new_type)
protected

Definition at line 1411 of file class.ilObjSurveyGUI.php.

References $form, array, ilSelectInputGUI\setOptions(), and ilFileInputGUI\setSuffixes().

Referenced by importSurveyObject().

1412  {
1413  include_once("Services/Form/classes/class.ilPropertyFormGUI.php");
1414  $form = new ilPropertyFormGUI();
1415  $form->setTarget("_top");
1416  $form->setFormAction($this->ctrl->getFormAction($this));
1417  $form->setTitle($this->lng->txt("import_svy"));
1418 
1419  include_once("./Services/Form/classes/class.ilFileInputGUI.php");
1420  $fi = new ilFileInputGUI($this->lng->txt("import_file"), "importfile");
1421  $fi->setSuffixes(array("zip"));
1422  $fi->setRequired(true);
1423  $form->addItem($fi);
1424 
1425  include_once("./Modules/Survey/classes/class.ilObjSurvey.php");
1426  $svy = new ilObjSurvey();
1427  $questionspools = $svy->getAvailableQuestionpools(true, true, true);
1428 
1429  $pools = new ilSelectInputGUI($this->lng->txt("select_questionpool_short"), "spl");
1430  $pools->setOptions(array(""=>$this->lng->txt("dont_use_questionpool")) + $questionspools);
1431  $pools->setRequired(false);
1432  $form->addItem($pools);
1433 
1434  $form->addCommandButton("importSurvey", $this->lng->txt("import"));
1435  $form->addCommandButton("cancel", $this->lng->txt("cancel"));
1436 
1437  return $form;
1438  }
This class represents a selection list property in a property form.
This class represents a property form user interface.
This class represents a file property in a property form.
if(isset($_POST['submit'])) $form
setOptions($a_options)
Set Options.
Create styles array
The data for the language used.
setSuffixes($a_suffixes)
Set Accepted Suffixes.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ initPropertiesForm()

ilObjSurveyGUI::initPropertiesForm ( )

Init survey settings form.

Returns
ilPropertyFormGUI

Definition at line 754 of file class.ilObjSurveyGUI.php.

References $end, $form, $header, $id, $info, $results, $section, $template, $title, ilObjectGUI\$tree, $txt, ilObject\_getAllReferences(), ilObjAdvancedEditing\_getUsedHTMLTags(), ilObjSurvey\_hasDatasets(), ilObjUser\_lookupName(), ilSubEnabledFormPropertyGUI\addSubItem(), array, ilObjSurvey\EVALUATION_ACCESS_ALL, ilObjSurvey\EVALUATION_ACCESS_OFF, ilObjSurvey\EVALUATION_ACCESS_PARTICIPANTS, ilMD\getGeneral(), IL_CAL_TIMESTAMP, IL_CAL_UNIX, ilObjSurvey\NOTIFICATION_APPRAISEES, ilObjSurvey\NOTIFICATION_APPRAISEES_AND_RATERS, ilObjSurvey\NOTIFICATION_INVITED_USERS, ilObjSurvey\NOTIFICATION_PARENT_COURSE, ilObjSurvey\NOTIFICATION_RATERS, object, ilObjSurvey\RESULTS_360_ALL, ilObjSurvey\RESULTS_360_NONE, ilObjSurvey\RESULTS_360_OWN, ilCheckboxInputGUI\setChecked(), ilTextAreaInputGUI\setCols(), ilTextInputGUI\setDataSource(), ilDateTimeInputGUI\setDate(), ilRadioOption\setInfo(), ilFormPropertyGUI\setInfo(), ilCheckboxInputGUI\setOptionTitle(), ilFormPropertyGUI\setRequired(), ilDateTimeInputGUI\setShowTime(), ilDateDurationInputGUI\setShowTime(), ilTextInputGUI\setValue(), ilCheckboxInputGUI\setValue(), ilRadioGroupInputGUI\setValue(), ilNonEditableValueGUI\setValue(), and ilTextAreaInputGUI\setValue().

Referenced by propertiesObject(), and savePropertiesObject().

755  {
756  $template_settings = $hide_rte_switch = null;
757  $template = $this->object->getTemplate();
758  if ($template) {
759  include_once "Services/Administration/classes/class.ilSettingsTemplate.php";
761 
762  $template_settings = $template->getSettings();
763  $hide_rte_switch = $template_settings["rte_switch"]["hide"];
764  }
765 
766  include_once("./Services/Form/classes/class.ilPropertyFormGUI.php");
767  $form = new ilPropertyFormGUI();
768  $form->setFormAction($this->ctrl->getFormAction($this));
769  $form->setTableWidth("100%");
770  $form->setId("survey_properties");
771 
772  // general properties
774  $header->setTitle($this->lng->txt("settings"));
775  $form->addItem($header);
776 
777 
778  // title & description (meta data)
779 
780  include_once 'Services/MetaData/classes/class.ilMD.php';
781  $md_obj = new ilMD($this->object->getId(), 0, "svy");
782  $md_section = $md_obj->getGeneral();
783 
784  $title = new ilTextInputGUI($this->lng->txt("title"), "title");
785  $title->setRequired(true);
786  $title->setValue($md_section->getTitle());
787  $form->addItem($title);
788 
789  $ids = $md_section->getDescriptionIds();
790  if ($ids) {
791  $desc_obj = $md_section->getDescription(array_pop($ids));
792 
793  $desc = new ilTextAreaInputGUI($this->lng->txt("description"), "description");
794  $desc->setCols(50);
795  $desc->setRows(4);
796  $desc->setValue($desc_obj->getDescription());
797  $form->addItem($desc);
798  }
799 
800  // pool usage
801  $pool_usage = new ilRadioGroupInputGUI($this->lng->txt("survey_question_pool_usage"), "use_pool");
802  $opt = new ilRadioOption($this->lng->txt("survey_question_pool_usage_active"), 1);
803  $opt->setInfo($this->lng->txt("survey_question_pool_usage_active_info"));
804  $pool_usage->addOption($opt);
805  $opt = new ilRadioOption($this->lng->txt("survey_question_pool_usage_inactive"), 0);
806  $opt->setInfo($this->lng->txt("survey_question_pool_usage_inactive_info"));
807  $pool_usage->addOption($opt);
808  $pool_usage->setValue($this->object->getPoolUsage());
809  $form->addItem($pool_usage);
810 
811  // 360°: appraisees
812  if ($this->object->get360Mode()) {
813  $self_eval = new ilCheckboxInputGUI($this->lng->txt("survey_360_self_evaluation"), "self_eval");
814  $self_eval->setInfo($this->lng->txt("survey_360_self_evaluation_info"));
815  $self_eval->setChecked($this->object->get360SelfEvaluation());
816  $form->addItem($self_eval);
817 
818  $self_rate = new ilCheckboxInputGUI($this->lng->txt("survey_360_self_raters"), "self_rate");
819  $self_rate->setInfo($this->lng->txt("survey_360_self_raters_info"));
820  $self_rate->setChecked($this->object->get360SelfRaters());
821  $form->addItem($self_rate);
822 
823  $self_appr = new ilCheckboxInputGUI($this->lng->txt("survey_360_self_appraisee"), "self_appr");
824  $self_appr->setInfo($this->lng->txt("survey_360_self_appraisee_info"));
825  $self_appr->setChecked($this->object->get360SelfAppraisee());
826  $form->addItem($self_appr);
827  }
828 
829 
830  // activation
831 
832  include_once "Services/Object/classes/class.ilObjectActivation.php";
833  $this->lng->loadLanguageModule('rep');
834 
836  $section->setTitle($this->lng->txt('rep_activation_availability'));
837  $form->addItem($section);
838 
839  // additional info only with multiple references
840  $act_obj_info = $act_ref_info = "";
841  if (sizeof(ilObject::_getAllReferences($this->object->getId())) > 1) {
842  $act_obj_info = ' ' . $this->lng->txt('rep_activation_online_object_info');
843  $act_ref_info = $this->lng->txt('rep_activation_access_ref_info');
844  }
845 
846  $online = new ilCheckboxInputGUI($this->lng->txt('rep_activation_online'), 'online');
847  $online->setInfo($this->lng->txt('svy_activation_online_info') . $act_obj_info);
848  $online->setChecked($this->object->isOnline());
849  $form->addItem($online);
850 
851  include_once "Services/Form/classes/class.ilDateDurationInputGUI.php";
852  $dur = new ilDateDurationInputGUI($this->lng->txt('rep_visibility_until'), "access_period");
853  $dur->setShowTime(true);
854  $date = $this->object->getActivationStartDate();
855  $dur->setStart($date
856  ? new ilDateTime($date, IL_CAL_UNIX)
857  : null);
858  $date = $this->object->getActivationEndDate();
859  $dur->setEnd($date
860  ? new ilDateTime($date, IL_CAL_UNIX)
861  : null);
862  $form->addItem($dur);
863 
864  $visible = new ilCheckboxInputGUI($this->lng->txt('rep_activation_limited_visibility'), 'access_visiblity');
865  $visible->setInfo($this->lng->txt('svy_activation_limited_visibility_info'));
866  $visible->setChecked($this->object->getActivationVisibility());
867  $dur->addSubItem($visible);
868 
869 
870  // before start
871 
873  $section->setTitle($this->lng->txt('svy_settings_section_before_start'));
874  $form->addItem($section);
875 
876  // introduction
877  $intro = new ilTextAreaInputGUI($this->lng->txt("introduction"), "introduction");
878  $intro->setValue($this->object->prepareTextareaOutput($this->object->getIntroduction()));
879  $intro->setRows(10);
880  $intro->setCols(80);
881  $intro->setUseRte(true);
882  $intro->setInfo($this->lng->txt("survey_introduction_info"));
883  include_once "./Services/AdvancedEditing/classes/class.ilObjAdvancedEditing.php";
884  $intro->setRteTags(ilObjAdvancedEditing::_getUsedHTMLTags("survey"));
885  $intro->addPlugin("latex");
886  $intro->addButton("latex");
887  $intro->addButton("pastelatex");
888  $intro->setRTESupport($this->object->getId(), "svy", "survey", null, $hide_rte_switch);
889  $form->addItem($intro);
890 
891 
892  // access
893 
895  $section->setTitle($this->lng->txt('svy_settings_section_access'));
896  $form->addItem($section);
897 
898  // enable start date
899  $start = $this->object->getStartDate();
900  // start date
901  $startingtime = new ilDateTimeInputGUI($this->lng->txt("start_date"), 'start_date');
902  $startingtime->setShowTime(true);
903  if ($start) {
904  $startingtime->setDate(new ilDate($start, IL_CAL_TIMESTAMP));
905  }
906  $form->addItem($startingtime);
907 
908  // enable end date
909  $end = $this->object->getEndDate();
910  // end date
911  $endingtime = new ilDateTimeInputGUI($this->lng->txt("end_date"), 'end_date');
912  $endingtime->setShowTime(true);
913  if ($end) {
914  $endingtime->setDate(new ilDate($end, IL_CAL_TIMESTAMP));
915  }
916  $form->addItem($endingtime);
917 
918  // anonymization
919  if (!$this->object->get360Mode()) {
920  $codes = new ilCheckboxInputGUI($this->lng->txt("survey_access_codes"), "acc_codes");
921  $codes->setInfo($this->lng->txt("survey_access_codes_info"));
922  $codes->setChecked(!$this->object->isAccessibleWithoutCode());
923  $form->addItem($codes);
924 
925  if (ilObjSurvey::_hasDatasets($this->object->getSurveyId())) {
926  $codes->setDisabled(true);
927  }
928  }
929 
930 
931  // question behaviour
932 
934  $section->setTitle($this->lng->txt('svy_settings_section_question_behaviour'));
935  $form->addItem($section);
936 
937  // show question titles
938  $show_question_titles = new ilCheckboxInputGUI($this->lng->txt("svy_show_questiontitles"), "show_question_titles");
939  $show_question_titles->setValue(1);
940  $show_question_titles->setChecked($this->object->getShowQuestionTitles());
941  $form->addItem($show_question_titles);
942 
943 
944  // finishing
945 
947  $info->setTitle($this->lng->txt("svy_settings_section_finishing"));
948  $form->addItem($info);
949 
950  $view_own = new ilCheckboxInputGUI($this->lng->txt("svy_results_view_own"), "view_own");
951  $view_own->setInfo($this->lng->txt("svy_results_view_own_info"));
952  $view_own->setChecked($this->object->hasViewOwnResults());
953  $form->addItem($view_own);
954 
955  $mail_confirm = new ilCheckboxInputGUI($this->lng->txt("svy_results_mail_confirm"), "mail_confirm");
956  $mail_confirm->setInfo($this->lng->txt("svy_results_mail_confirm_info"));
957  $mail_confirm->setChecked($this->object->hasMailConfirmation());
958  $form->addItem($mail_confirm);
959 
960  $mail_own = new ilCheckboxInputGUI($this->lng->txt("svy_results_mail_own"), "mail_own");
961  $mail_own->setInfo($this->lng->txt("svy_results_mail_own_info"));
962  $mail_own->setChecked($this->object->hasMailOwnResults());
963  $mail_confirm->addSubItem($mail_own);
964 
965  // final statement
966  $finalstatement = new ilTextAreaInputGUI($this->lng->txt("outro"), "outro");
967  $finalstatement->setValue($this->object->prepareTextareaOutput($this->object->getOutro()));
968  $finalstatement->setRows(10);
969  $finalstatement->setCols(80);
970  $finalstatement->setUseRte(true);
971  $finalstatement->setRteTags(ilObjAdvancedEditing::_getUsedHTMLTags("survey"));
972  $finalstatement->addPlugin("latex");
973  $finalstatement->addButton("latex");
974  $finalstatement->addButton("pastelatex");
975  $finalstatement->setRTESupport($this->object->getId(), "svy", "survey", null, $hide_rte_switch);
976  $form->addItem($finalstatement);
977 
978  // mail notification
979  $mailnotification = new ilCheckboxInputGUI($this->lng->txt("mailnotification"), "mailnotification");
980  // $mailnotification->setOptionTitle($this->lng->txt("activate"));
981  $mailnotification->setInfo($this->lng->txt("svy_result_mail_notification_info")); // #11762
982  $mailnotification->setValue(1);
983  $mailnotification->setChecked($this->object->getMailNotification());
984 
985  // addresses
986  $mailaddresses = new ilTextInputGUI($this->lng->txt("mailaddresses"), "mailaddresses");
987  $mailaddresses->setValue($this->object->getMailAddresses());
988  $mailaddresses->setSize(80);
989  $mailaddresses->setInfo($this->lng->txt('mailaddresses_info'));
990  $mailaddresses->setRequired(true);
991 
992  // participant data
993  $participantdata = new ilTextAreaInputGUI($this->lng->txt("mailparticipantdata"), "mailparticipantdata");
994  $participantdata->setValue($this->object->getMailParticipantData());
995  $participantdata->setRows(6);
996  $participantdata->setCols(80);
997  $participantdata->setUseRte(false);
998  $participantdata->setInfo($this->lng->txt("mailparticipantdata_info"));
999 
1000  // #12755 - because of privacy concerns we restrict user data to a minimum
1001  $placeholders = array(
1002  "FIRST_NAME" => "firstname",
1003  "LAST_NAME" => "lastname",
1004  "LOGIN" => "login"
1005  );
1006  $txt = array();
1007  foreach ($placeholders as $placeholder => $caption) {
1008  $txt[] = "[" . strtoupper($placeholder) . "]: " . $this->lng->txt($caption);
1009  }
1010  $txt = implode("<br />", $txt);
1011  $participantdatainfo = new ilNonEditableValueGUI($this->lng->txt("mailparticipantdata_placeholder"), "", true);
1012  $participantdatainfo->setValue($txt);
1013 
1014  $mailnotification->addSubItem($mailaddresses);
1015  $mailnotification->addSubItem($participantdata);
1016  $mailnotification->addSubItem($participantdatainfo);
1017  $form->addItem($mailnotification);
1018 
1019  // tutor notification - currently not available for 360°
1020  if (!$this->object->get360Mode()) {
1021  // parent course?
1022  $tree = $this->tree;
1023  $has_parent = $tree->checkForParentType($this->object->getRefId(), "grp");
1024  if (!$has_parent) {
1025  $has_parent = $tree->checkForParentType($this->object->getRefId(), "crs");
1026  }
1027  $num_inv = sizeof($this->object->getInvitedUsers());
1028 
1029  // notification
1030  $tut = new ilCheckboxInputGUI($this->lng->txt("survey_notification_tutor_setting"), "tut");
1031  $tut->setChecked($this->object->getTutorNotificationStatus());
1032  $form->addItem($tut);
1033 
1034  $tut_logins = array();
1035  $tuts = $this->object->getTutorNotificationRecipients();
1036  if ($tuts) {
1037  foreach ($tuts as $tut_id) {
1038  $tmp = ilObjUser::_lookupName($tut_id);
1039  if ($tmp["login"]) {
1040  $tut_logins[] = $tmp["login"];
1041  }
1042  }
1043  }
1044  $tut_ids = new ilTextInputGUI($this->lng->txt("survey_notification_tutor_recipients"), "tut_ids");
1045  $tut_ids->setDataSource($this->ctrl->getLinkTarget($this, "doAutoComplete", "", true));
1046  $tut_ids->setRequired(true);
1047  $tut_ids->setMulti(true);
1048  $tut_ids->setMultiValues($tut_logins);
1049  $tut_ids->setValue(array_shift($tut_logins));
1050  $tut->addSubItem($tut_ids);
1051 
1052  $tut_grp = new ilRadioGroupInputGUI($this->lng->txt("survey_notification_target_group"), "tut_grp");
1053  $tut_grp->setRequired(true);
1054  $tut_grp->setValue($this->object->getTutorNotificationTarget());
1055  $tut->addSubItem($tut_grp);
1056 
1057  $tut_grp_crs = new ilRadioOption(
1058  $this->lng->txt("survey_notification_target_group_parent_course"),
1060  );
1061  if (!$has_parent) {
1062  $tut_grp_crs->setInfo($this->lng->txt("survey_notification_target_group_parent_course_inactive"));
1063  } else {
1064  $tut_grp_crs->setInfo(sprintf(
1065  $this->lng->txt("survey_notification_target_group_invited_info"),
1066  count($this->object->getNotificationTargetUserIds(false))
1067  ));
1068  }
1069  $tut_grp->addOption($tut_grp_crs);
1070 
1071  $tut_grp_inv = new ilRadioOption(
1072  $this->lng->txt("survey_notification_target_group_invited"),
1074  );
1075  $tut_grp_inv->setInfo(sprintf($this->lng->txt("survey_notification_target_group_invited_info"), $num_inv));
1076  $tut_grp->addOption($tut_grp_inv);
1077  }
1078 
1079 
1080  // reminders
1081 
1082  $info = new ilFormSectionHeaderGUI();
1083  $info->setTitle($this->lng->txt("svy_settings_section_reminders"));
1084  $form->addItem($info);
1085 
1086  $rmd = new ilCheckboxInputGUI($this->lng->txt("survey_reminder_setting"), "rmd");
1087  $rmd->setChecked($this->object->getReminderStatus());
1088  $form->addItem($rmd);
1089 
1090  $rmd_start = new ilDateTimeInputGUI($this->lng->txt("survey_reminder_start"), "rmd_start");
1091  $rmd_start->setRequired(true);
1092  $start = $this->object->getReminderStart();
1093  if ($start) {
1094  $rmd_start->setDate($start);
1095  }
1096  $rmd->addSubItem($rmd_start);
1097 
1098  $end = $this->object->getReminderEnd();
1099  $rmd_end = new ilDateTimeInputGUI($this->lng->txt("survey_reminder_end"), "rmd_end");
1100  if ($end) {
1101  $rmd_end->setDate($end);
1102  }
1103  $rmd->addSubItem($rmd_end);
1104 
1105  $rmd_freq = new ilNumberInputGUI($this->lng->txt("survey_reminder_frequency"), "rmd_freq");
1106  $rmd_freq->setRequired(true);
1107  $rmd_freq->setSize(3);
1108  $rmd_freq->setSuffix($this->lng->txt("survey_reminder_frequency_days"));
1109  $rmd_freq->setValue($this->object->getReminderFrequency());
1110  $rmd_freq->setMinValue(1);
1111  $rmd->addSubItem($rmd_freq);
1112 
1113 
1114  if (!$this->object->get360Mode()) {
1115  $rmd_grp = new ilRadioGroupInputGUI($this->lng->txt("survey_notification_target_group"), "rmd_grp");
1116  $rmd_grp->setRequired(true);
1117  $rmd_grp->setValue($this->object->getReminderTarget());
1118  $rmd->addSubItem($rmd_grp);
1119 
1120  $rmd_grp_crs = new ilRadioOption(
1121  $this->lng->txt("survey_notification_target_group_parent_course"),
1123  );
1124  if (!$has_parent) {
1125  $rmd_grp_crs->setInfo($this->lng->txt("survey_notification_target_group_parent_course_inactive"));
1126  } else {
1127  $rmd_grp_crs->setInfo(sprintf(
1128  $this->lng->txt("survey_notification_target_group_invited_info"),
1129  count($this->object->getNotificationTargetUserIds(false))
1130  ));
1131  }
1132  $rmd_grp->addOption($rmd_grp_crs);
1133 
1134  $rmd_grp_inv = new ilRadioOption(
1135  $this->lng->txt("survey_notification_target_group_invited"),
1137  );
1138  $rmd_grp_inv->setInfo(sprintf($this->lng->txt("survey_notification_target_group_invited_info"), $num_inv));
1139  $rmd_grp->addOption($rmd_grp_inv);
1140 
1141  $mtmpl = $this->object->getReminderMailTemplates();
1142  if ($mtmpl) {
1143  $rmdt = new ilRadioGroupInputGUI($this->lng->txt("svy_reminder_mail_template"), "rmdt");
1144  $rmdt->setRequired(true);
1145  $rmdt->addOption(new ilRadioOption($this->lng->txt("svy_reminder_mail_template_none"), -1));
1146  foreach ($mtmpl as $mtmpl_id => $mtmpl_caption) {
1147  $option = new ilRadioOption($mtmpl_caption, $mtmpl_id);
1148  $rmdt->addOption($option);
1149  }
1150  $rmdt->setValue($this->object->getReminderTemplate()
1151  ? $this->object->getReminderTemplate()
1152  : -1);
1153  $rmd->addSubItem($rmdt);
1154  }
1155  } else {
1156  // remind appraisees
1157  $cb = new ilCheckboxInputGUI($this->lng->txt("survey_notification_target_group"), "remind_appraisees");
1158  $cb->setOptionTitle($this->lng->txt("survey_360_appraisees"));
1159  $cb->setInfo($this->lng->txt("survey_360_appraisees_remind_info"));
1160  $cb->setValue("1");
1161  $cb->setChecked(in_array(
1162  $this->object->getReminderTarget(),
1164  ));
1165  $rmd->addSubItem($cb);
1166 
1167  // remind raters
1168  $cb = new ilCheckboxInputGUI("", "remind_raters");
1169  $cb->setOptionTitle($this->lng->txt("survey_360_raters"));
1170  $cb->setInfo($this->lng->txt("survey_360_raters_remind_info"));
1171  $cb->setValue("1");
1172  $cb->setChecked(in_array(
1173  $this->object->getReminderTarget(),
1175  ));
1176  $rmd->addSubItem($cb);
1177  }
1178 
1179 
1180  // results
1181 
1183  $results->setTitle($this->lng->txt("results"));
1184  $form->addItem($results);
1185 
1186  // evaluation access
1187  if (!$this->object->get360Mode()) {
1188  $evaluation_access = new ilRadioGroupInputGUI($this->lng->txt('evaluation_access'), "evaluation_access");
1189 
1190  $option = new ilCheckboxOption($this->lng->txt("evaluation_access_off"), ilObjSurvey::EVALUATION_ACCESS_OFF, '');
1191  $option->setInfo($this->lng->txt("svy_evaluation_access_off_info"));
1192  $evaluation_access->addOption($option);
1193 
1194  $option = new ilCheckboxOption($this->lng->txt("evaluation_access_all"), ilObjSurvey::EVALUATION_ACCESS_ALL, '');
1195  $option->setInfo($this->lng->txt("svy_evaluation_access_all_info"));
1196  $evaluation_access->addOption($option);
1197 
1198  $option = new ilCheckboxOption($this->lng->txt("evaluation_access_participants"), ilObjSurvey::EVALUATION_ACCESS_PARTICIPANTS, '');
1199  $option->setInfo($this->lng->txt("svy_evaluation_access_participants_info"));
1200  $evaluation_access->addOption($option);
1201 
1202  $evaluation_access->setValue($this->object->getEvaluationAccess());
1203  $form->addItem($evaluation_access);
1204 
1205 
1206  $anonymization_options = new ilRadioGroupInputGUI($this->lng->txt("survey_results_anonymization"), "anonymization_options");
1207 
1208  $option = new ilCheckboxOption($this->lng->txt("survey_results_personalized"), "statpers");
1209  $option->setInfo($this->lng->txt("survey_results_personalized_info"));
1210  $anonymization_options->addOption($option);
1211 
1212  $option = new ilCheckboxOption($this->lng->txt("survey_results_anonymized"), "statanon");
1213  $option->setInfo($this->lng->txt("survey_results_anonymized_info"));
1214  $anonymization_options->addOption($option);
1215  $anonymization_options->setValue($this->object->hasAnonymizedResults()
1216  ? "statanon"
1217  : "statpers");
1218  $form->addItem($anonymization_options);
1219 
1220  $surveySetting = new ilSetting("survey");
1221  if ($surveySetting->get("anonymous_participants", false)) {
1222  $min = "";
1223  if ($surveySetting->get("anonymous_participants_min", 0)) {
1224  $min = " (" . $this->lng->txt("svy_anonymous_participants_min") . ": " .
1225  $surveySetting->get("anonymous_participants_min") . ")";
1226  }
1227 
1228  $anon_list = new ilCheckboxInputGUI($this->lng->txt("svy_anonymous_participants_svy"), "anon_list");
1229  $anon_list->setInfo($this->lng->txt("svy_anonymous_participants_svy_info") . $min);
1230  $anon_list->setChecked($this->object->hasAnonymousUserList());
1231  $option->addSubItem($anon_list);
1232  }
1233 
1234  if ($this->object->_hasDatasets($this->object->getSurveyId())) {
1235  $anonymization_options->setDisabled(true);
1236  if ($anon_list) {
1237  $anon_list->setDisabled(true);
1238  }
1239  }
1240  }
1241  // 360°
1242  else {
1243  $ts_results = new ilRadioGroupInputGUI($this->lng->txt("survey_360_results"), "ts_res");
1244  $ts_results->setValue($this->object->get360Results());
1245 
1246  $option = new ilRadioOption($this->lng->txt("survey_360_results_none"), ilObjSurvey::RESULTS_360_NONE);
1247  $option->setInfo($this->lng->txt("survey_360_results_none_info"));
1248  $ts_results->addOption($option);
1249 
1250  $option = new ilRadioOption($this->lng->txt("survey_360_results_own"), ilObjSurvey::RESULTS_360_OWN);
1251  $option->setInfo($this->lng->txt("survey_360_results_own_info"));
1252  $ts_results->addOption($option);
1253 
1254  $option = new ilRadioOption($this->lng->txt("survey_360_results_all"), ilObjSurvey::RESULTS_360_ALL);
1255  $option->setInfo($this->lng->txt("survey_360_results_all_info"));
1256  $ts_results->addOption($option);
1257  $form->addItem($ts_results);
1258  }
1259 
1260 
1261  // competence service activation for 360 mode
1262 
1263  include_once("./Services/Skill/classes/class.ilSkillManagementSettings.php");
1264  $skmg_set = new ilSkillManagementSettings();
1265  if ($this->object->get360Mode() && $skmg_set->isActivated()) {
1266  $other = new ilFormSectionHeaderGUI();
1267  $other->setTitle($this->lng->txt("other"));
1268  $form->addItem($other);
1269 
1270  $skill_service = new ilCheckboxInputGUI($this->lng->txt("survey_activate_skill_service"), "skill_service");
1271  $skill_service->setInfo($this->lng->txt("survey_activate_skill_service_info"));
1272  $skill_service->setChecked($this->object->get360SkillService());
1273  $form->addItem($skill_service);
1274  }
1275 
1276 
1277  $form->addCommandButton("saveProperties", $this->lng->txt("save"));
1278 
1279  // remove items when using template
1280  if ($template_settings) {
1281  foreach ($template_settings as $id => $item) {
1282  if ($item["hide"]) {
1283  if ($id == "enabled_end_date") {
1284  $id = "end_date";
1285  }
1286  if ($id == "enabled_start_date") {
1287  $id = "start_date";
1288  }
1289  $form->removeItemByPostVar($id, true);
1290  }
1291  }
1292  }
1293  return $form;
1294  }
static _lookupName($a_user_id)
lookup user name
This class represents an option in a radio group.
setDataSource($href, $a_delimiter=null)
set datasource link for js autocomplete
This class represents an option in a checkbox group.
const EVALUATION_ACCESS_OFF
$template
This class represents a property form user interface.
const EVALUATION_ACCESS_PARTICIPANTS
This class represents a section header in a property form.
static _hasDatasets($survey_id)
static _getUsedHTMLTags($a_module="")
Returns an array of all allowed HTML tags for text editing.
$end
Definition: saml1-acs.php:18
const NOTIFICATION_APPRAISEES
if(!array_key_exists('StateId', $_REQUEST)) $id
setValue($a_value)
Set Value.
This class represents a checkbox property in a property form.
const IL_CAL_UNIX
setInfo($a_info)
Set Info.
static _getAllReferences($a_id)
get all reference ids of object
This class represents a date/time property in a property form.
setInfo($a_info)
Set Information Text.
$section
Definition: Utf8Test.php:83
setChecked($a_checked)
Set Checked.
input GUI for a time span (start and end date)
This class represents a property in a property form.
Class for single dates.
if(isset($_POST['submit'])) $form
const NOTIFICATION_PARENT_COURSE
This class represents a number property in a property form.
const NOTIFICATION_APPRAISEES_AND_RATERS
setValue($a_value)
Set Value.
This class represents a text property in a property form.
setDate(ilDateTime $a_date=null)
set date E.g $dt_form->setDate(new ilDateTime(time(),IL_CAL_UTC)); or $dt_form->setDate(new ilDateTim...
& getGeneral()
Definition: class.ilMD.php:40
Date and time handling
setShowTime($a_showtime)
Set Show Time Information.
const NOTIFICATION_INVITED_USERS
$txt
Definition: error.php:11
Create styles array
The data for the language used.
const EVALUATION_ACCESS_ALL
This class represents a non editable value in a property form.
Create new PHPExcel object
obj_idprivate
$results
Definition: svg-scanner.php:47
This class represents a text area property in a property form.
const IL_CAL_TIMESTAMP
setOptionTitle($a_optiontitle)
Set Option Title (optional).
$info
Definition: index.php:5
setValue($a_value)
Set Value.
Settings template application class.
setRequired($a_required)
Set Required.
setShowTime($a_showtime)
Set Show Time Information.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ mailUserResultsObject()

ilObjSurveyGUI::mailUserResultsObject ( )

Definition at line 2165 of file class.ilObjSurveyGUI.php.

References $_POST, $_SESSION, $ilUser, ilObjectGUI\$user, ilUtil\is_email(), object, ilUtil\sendSuccess(), and sendUserResultsMail().

2166  {
2167  $ilUser = $this->user;
2168 
2169  $anonymous_code = $_SESSION["anonymous_id"][$this->object->getId()];
2170  $active_id = $this->object->getActiveID($ilUser->getId(), $anonymous_code, 0);
2171  if ($this->object->isSurveyStarted($ilUser->getId(), $anonymous_code) !== 1 ||
2172  !$active_id) {
2173  $this->ctrl->redirect($this, "infoScreen");
2174  }
2175 
2176  $recipient = $_POST["mail"];
2177  if (!$recipient) {
2178  $recipient = $ilUser->getEmail();
2179  }
2180  if (!ilUtil::is_email($recipient)) {
2181  $this->ctrl->redirect($this, "infoScreen");
2182  }
2183 
2184  $this->sendUserResultsMail($active_id, $recipient);
2185 
2186  ilUtil::sendSuccess($this->lng->txt("mail_sent"), true);
2187  $this->ctrl->redirect($this, "infoScreen");
2188  }
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
$_SESSION["AccountId"]
static is_email($a_email, ilMailRfc822AddressParserFactory $mailAddressParserFactory=null)
This preg-based function checks whether an e-mail address is formally valid.
$ilUser
Definition: imgupload.php:18
sendUserResultsMail($a_active_id, $a_recipient)
Create new PHPExcel object
obj_idprivate
$_POST["username"]
+ Here is the call graph for this function:

◆ propertiesObject()

ilObjSurveyGUI::propertiesObject ( ilPropertyFormGUI  $a_form = null)

Display and fill the properties form of the test.

public

Definition at line 1324 of file class.ilObjSurveyGUI.php.

References $help, $message, $tabs, addSubTabs(), ilObjectGUI\checkPermission(), initPropertiesForm(), ilSettingsTemplate\lookupTitle(), and object.

Referenced by savePropertiesObject().

1325  {
1326  $ilTabs = $this->tabs;
1327  $ilHelp = $this->help;
1328 
1329  $this->checkPermission("write");
1330 
1331  $this->addSubTabs('settings');
1332  $ilTabs->activateTab("settings");
1333  $ilTabs->activateSubTab('settings');
1334 
1335  if ($this->object->get360Mode()) {
1336  $ilHelp->setScreenId("settings_360");
1337  }
1338 
1339  if (!$a_form) {
1340  $a_form = $this->initPropertiesForm();
1341  }
1342 
1343  // using template?
1344  $message = "";
1345  if ($this->object->getTemplate()) {
1346  $link = $this->ctrl->getLinkTarget($this, "confirmResetTemplate");
1347  $link = "<a href=\"" . $link . "\">" . $this->lng->txt("survey_using_template_link") . "</a>";
1348  $message = "<div style=\"margin-top:10px\">" .
1349  $this->tpl->getMessageHTML(sprintf(
1350  $this->lng->txt("survey_using_template"),
1351  ilSettingsTemplate::lookupTitle($this->object->getTemplate()),
1352  $link
1353  ), "info") . // #10651
1354  "</div>";
1355  }
1356 
1357  $this->tpl->setContent($a_form->getHTML() . $message);
1358  }
catch(Exception $e) $message
static lookupTitle($a_id)
Lookup title.
Create new PHPExcel object
obj_idprivate
addSubTabs($a_section)
Add subtabs for tabs.
checkPermission($a_perm, $a_cmd="", $a_type="", $a_ref_id=null)
Check permission and redirect on error.
initPropertiesForm()
Init survey settings form.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ resetTemplateObject()

ilObjSurveyGUI::resetTemplateObject ( )

Enable all settings - remove template.

Definition at line 1396 of file class.ilObjSurveyGUI.php.

References ilUtil\sendSuccess().

1397  {
1398  $this->object->setTemplate(null);
1399  $this->object->saveToDB();
1400 
1401  ilUtil::sendSuccess($this->lng->txt("survey_template_reset"), true);
1402  $this->ctrl->redirect($this, "properties");
1403  }
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
+ Here is the call graph for this function:

◆ savePropertiesObject()

ilObjSurveyGUI::savePropertiesObject ( )

Save the survey properties.

Save the survey properties

private

Definition at line 511 of file class.ilObjSurveyGUI.php.

References $_POST, $_SESSION, $current, $end, $form, $rbacsystem, $template, $valid, ilObjSurvey\_hasDatasets(), ilObjUser\_lookupId(), ilObjSurvey\ANONYMIZE_CODE_ALL, ilObjSurvey\ANONYMIZE_FREEACCESS, ilObjSurvey\ANONYMIZE_OFF, ilObjSurvey\ANONYMIZE_ON, array, ilMD\getGeneral(), IL_CAL_DATETIME, IL_CAL_UNIX, initPropertiesForm(), ilObjSurvey\NOTIFICATION_APPRAISEES, ilObjSurvey\NOTIFICATION_APPRAISEES_AND_RATERS, ilObjSurvey\NOTIFICATION_RATERS, object, propertiesObject(), ilUtil\sendFailure(), ilUtil\sendSuccess(), string, ilUtil\stripSlashes(), and ilMDBase\update().

512  {
514 
515  $form = $this->initPropertiesForm();
516  if ($form->checkInput()) {
517  $valid = true;
518 
519  if (!$this->object->get360Mode()) {
520  if ($form->getInput("tut")) {
521  // check if given "tutors" have write permission
522  $tut_ids =array();
523  $tut_logins = $form->getInput("tut_ids");
524  foreach ($tut_logins as $tut_login) {
525  $tut_id = ilObjUser::_lookupId($tut_login);
526  if ($tut_id && $rbacsystem->checkAccessOfUser($tut_id, "write", $this->object->getRefId())) {
527  $tut_ids[] = $tut_id;
528  }
529  }
530  if (!$tut_ids) {
531  $tut_ids = $form->getItemByPostVar("tut_ids");
532  $tut_ids->setAlert($this->lng->txt("survey_notification_tutor_recipients_invalid"));
533  $valid = false;
534  }
535  }
536  }
537 
538  if ($valid) {
539  if ($form->getInput("rmd")) {
540  $rmd_start = $form->getItemByPostVar("rmd_start")->getDate();
541  $rmd_end = $form->getItemByPostVar("rmd_end")->getDate();
542  if ($rmd_end) {
543  if ($rmd_start->get(IL_CAL_UNIX) > $rmd_end->get(IL_CAL_UNIX)) {
544  $tmp = $rmd_start;
545  $rmd_start = $rmd_end;
546  $rmd_end = $tmp;
547  }
548  }
549  $this->object->setReminderStatus(true);
550  $this->object->setReminderStart($rmd_start);
551  $this->object->setReminderEnd($rmd_end);
552  $this->object->setReminderFrequency($form->getInput("rmd_freq"));
553  if (!$this->object->get360Mode()) {
554  $this->object->setReminderTarget($form->getInput("rmd_grp"));
555  $this->object->setReminderTemplate(($form->getInput("rmdt") > 0)
556  ? $form->getInput("rmdt")
557  : null);
558  } else {
559  if ($form->getInput("remind_appraisees") && $form->getInput("remind_raters")) {
560  $this->object->setReminderTarget(ilObjSurvey::NOTIFICATION_APPRAISEES_AND_RATERS);
561  } elseif ($form->getInput("remind_appraisees")) {
562  $this->object->setReminderTarget(ilObjSurvey::NOTIFICATION_APPRAISEES);
563  } elseif ($form->getInput("remind_raters")) {
564  $this->object->setReminderTarget(ilObjSurvey::NOTIFICATION_RATERS);
565  } else {
566  $this->object->setReminderTarget(0);
567  }
568  }
569  } else {
570  $this->object->setReminderStatus(false);
571  }
572 
573  if (!$this->object->get360Mode()) {
574  if ($form->getInput("tut")) {
575  $this->object->setTutorNotificationStatus(true);
576  $this->object->setTutorNotificationRecipients($tut_ids); // see above
577  $this->object->setTutorNotificationTarget($form->getInput("tut_grp"));
578  } else {
579  $this->object->setTutorNotificationStatus(false);
580  }
581  }
582 
583  // #10055
584  if ($_POST['online'] && count($this->object->questions) == 0) {
585  $_POST['online'] = null;
586  ilUtil::sendFailure($this->lng->txt("cannot_switch_to_online_no_questions"), true);
587  }
588 
589  $template_settings = null;
590  $template = $this->object->getTemplate();
591  if ($template) {
592  include_once "Services/Administration/classes/class.ilSettingsTemplate.php";
594  $template_settings = $template->getSettings();
595  }
596 
597  include_once 'Services/MetaData/classes/class.ilMD.php';
598  $md_obj = new ilMD($this->object->getId(), 0, "svy");
599  $md_section = $md_obj->getGeneral();
600 
601  // title
602  $md_section->setTitle(ilUtil::stripSlashes($_POST['title']));
603  $md_section->update();
604 
605  // Description
606  $md_desc_ids = $md_section->getDescriptionIds();
607  if ($md_desc_ids) {
608  $md_desc = $md_section->getDescription(array_pop($md_desc_ids));
609  $md_desc->setDescription(ilUtil::stripSlashes($_POST['description']));
610  $md_desc->update();
611  }
612 
613  $this->object->setViewOwnResults($_POST["view_own"]);
614  $this->object->setMailOwnResults($_POST["mail_own"]);
615  $this->object->setMailConfirmation($_POST["mail_confirm"]);
616 
617  // both are saved in object, too
618  $this->object->setTitle(ilUtil::stripSlashes($_POST['title']));
619  $this->object->setDescription(ilUtil::stripSlashes($_POST['description']));
620  $this->object->update();
621 
622  $this->object->setStatus($_POST['online']);
623 
624  // activation
625  $period = $form->getItemByPostVar("access_period");
626  if ($period->getStart() && $period->getEnd()) {
627  $this->object->setActivationLimited(true);
628  $this->object->setActivationVisibility($_POST["access_visiblity"]);
629  $this->object->setActivationStartDate($period->getStart()->get(IL_CAL_UNIX));
630  $this->object->setActivationEndDate($period->getEnd()->get(IL_CAL_UNIX));
631  } else {
632  $this->object->setActivationLimited(false);
633  }
634 
635  if (!$template_settings["enabled_start_date"]["hide"]) {
636  $start = $form->getItemByPostVar("start_date");
637  if ($start->getDate()) {
638  $datetime = explode(" ", $start->getDate()->get(IL_CAL_DATETIME));
639  $this->object->setStartDateAndTime($datetime[0], $datetime[1]);
640  } else {
641  $this->object->setStartDate(null);
642  }
643  }
644 
645  if (!$template_settings["enabled_end_date"]["hide"]) {
646  $end = $form->getItemByPostVar("end_date");
647  if ($end->getDate()) {
648  $datetime = explode(" ", $end->getDate()->get(IL_CAL_DATETIME));
649  $this->object->setEndDateAndTime($datetime[0], $datetime[1]);
650  } else {
651  $this->object->setEndDate(null);
652  }
653  }
654 
655 
656  include_once "./Services/AdvancedEditing/classes/class.ilObjAdvancedEditing.php";
657  $introduction = $_POST["introduction"];
658  $this->object->setIntroduction($introduction);
659  $outro = $_POST["outro"];
660  $this->object->setOutro($outro);
661 
662  if (!$template_settings["show_question_titles"]["hide"]) {
663  $this->object->setShowQuestionTitles($_POST["show_question_titles"]);
664  }
665 
666  if (!$template_settings["use_pool"]["hide"]) {
667  $this->object->setPoolUsage($_POST["use_pool"]);
668  }
669 
670  $this->object->setMailNotification($_POST['mailnotification']);
671  $this->object->setMailAddresses($_POST['mailaddresses']);
672  $this->object->setMailParticipantData($_POST['mailparticipantdata']);
673 
674  // 360°
675  if ($this->object->get360Mode()) {
676  $this->object->set360SelfEvaluation((bool) $_POST["self_eval"]);
677  $this->object->set360SelfAppraisee((bool) $_POST["self_appr"]);
678  $this->object->set360SelfRaters((bool) $_POST["self_rate"]);
679  $this->object->set360Results((int) $_POST["ts_res"]);
680  ;
681  $this->object->set360SkillService((int) $_POST["skill_service"]);
682  } else {
683  if (!$template_settings["evaluation_access"]["hide"]) {
684  $this->object->setEvaluationAccess($_POST["evaluation_access"]);
685  }
686 
687  $hasDatasets = ilObjSurvey::_hasDatasets($this->object->getSurveyId());
688  if (!$hasDatasets) {
689  $hide_codes = $template_settings["acc_codes"]["hide"];
690  $hide_anon = $template_settings["anonymization_options"]["hide"];
691  if (!$hide_codes || !$hide_anon) {
692  $current = $this->object->getAnonymize();
693 
694  // get current setting if property is hidden
695  if (!$hide_codes) {
696  $codes = (bool) $_POST["acc_codes"];
697  } else {
700  }
701  if (!$hide_anon) {
702  $anon = ((string) $_POST["anonymization_options"] == "statanon");
703  } else {
706  }
707 
708  // parse incoming values
709  if (!$anon) {
710  if (!$codes) {
711  $this->object->setAnonymize(ilObjSurvey::ANONYMIZE_OFF);
712  } else {
713  $this->object->setAnonymize(ilObjSurvey::ANONYMIZE_CODE_ALL);
714  }
715  } else {
716  if ($codes) {
717  $this->object->setAnonymize(ilObjSurvey::ANONYMIZE_ON);
718  } else {
719  $this->object->setAnonymize(ilObjSurvey::ANONYMIZE_FREEACCESS);
720  }
721 
722  $this->object->setAnonymousUserList($_POST["anon_list"]);
723  }
724 
725  // if settings were changed get rid of existing code
726  unset($_SESSION["anonymous_id"][$this->object->getId()]);
727  }
728  }
729  }
730 
731  $this->object->saveToDb();
732 
733  if (strcmp($_SESSION["info"], "") != 0) {
734  ilUtil::sendSuccess($_SESSION["info"] . "<br />" . $this->lng->txt("settings_saved"), true);
735  } else {
736  ilUtil::sendSuccess($this->lng->txt("settings_saved"), true);
737  }
738  $this->ctrl->redirect($this, "properties");
739  } else {
740  // #16714
741  ilUtil::sendFailure($this->lng->txt("form_input_not_valid"));
742  }
743  }
744 
745  $form->setValuesByPost();
746  $this->propertiesObject($form);
747  }
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
Add rich text string
const IL_CAL_DATETIME
$_SESSION["AccountId"]
$template
static _hasDatasets($survey_id)
$valid
$end
Definition: saml1-acs.php:18
const NOTIFICATION_APPRAISEES
static _lookupId($a_user_str)
Lookup id by login.
const IL_CAL_UNIX
if(isset($_POST['submit'])) $form
const ANONYMIZE_FREEACCESS
const NOTIFICATION_APPRAISEES_AND_RATERS
& getGeneral()
Definition: class.ilMD.php:40
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
Create styles array
The data for the language used.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
propertiesObject(ilPropertyFormGUI $a_form=null)
Display and fill the properties form of the test.
Create new PHPExcel object
obj_idprivate
const ANONYMIZE_CODE_ALL
$_POST["username"]
Settings template application class.
initPropertiesForm()
Init survey settings form.
+ Here is the call graph for this function:

◆ sendUserResultsMail()

ilObjSurveyGUI::sendUserResultsMail (   $a_active_id,
  $a_recipient 
)

Definition at line 2125 of file class.ilObjSurveyGUI.php.

References $ilUser, ilObjectGUI\$user, ilMail\_getInstallationSignature(), ilLink\_getLink(), array, ilDatePresentation\formatDate(), ilMail\getSalutation(), getUserResultsPlain(), IL_CAL_UNIX, and object.

Referenced by mailUserResultsObject().

2126  {
2127  $ilUser = $this->user;
2128 
2129  $finished = $this->object->getSurveyParticipants(array($a_active_id));
2130  $finished = array_pop($finished);
2131  $finished = ilDatePresentation::formatDate(new ilDateTime($finished["finished_tstamp"], IL_CAL_UNIX));
2132 
2133  require_once "Services/Mail/classes/class.ilMail.php";
2134  require_once "Services/Link/classes/class.ilLink.php";
2135 
2136  $body = ilMail::getSalutation($ilUser->getId()) . "\n\n";
2137  $body .= $this->lng->txt("svy_mail_own_results_body") . "\n";
2138  $body .= "\n" . $this->lng->txt("obj_svy") . ": " . $this->object->getTitle() . "\n";
2139  $body .= ilLink::_getLink($this->object->getRefId(), "svy") . "\n";
2140  $body .= "\n" . $this->lng->txt("survey_results_finished") . ": " . $finished . "\n\n";
2141 
2142  if ($this->object->hasMailOwnResults()) {
2143  $subject = "svy_mail_own_results_subject";
2144  $body .= $this->getUserResultsPlain($a_active_id);
2145  } else {
2146  $subject = "svy_mail_confirmation_subject";
2147  }
2148 
2149  // $body .= ilMail::_getAutoGeneratedMessageString($this->lng);
2151 
2152  require_once "Services/Mail/classes/class.ilMail.php";
2153  $mail = new ilMail(ANONYMOUS_USER_ID);
2154  $mail->sendMimeMail(
2155  $a_recipient,
2156  null,
2157  null,
2158  sprintf($this->lng->txt($subject), $this->object->getTitle()),
2159  $body,
2160  null,
2161  true
2162  );
2163  }
static formatDate(ilDateTime $date, $a_skip_day=false, $a_include_wd=false)
Format a date public.
getUserResultsPlain($a_active_id)
const IL_CAL_UNIX
This class handles base functions for mail handling.
Date and time handling
$ilUser
Definition: imgupload.php:18
Create styles array
The data for the language used.
Create new PHPExcel object
obj_idprivate
static _getInstallationSignature()
static getSalutation($a_usr_id, ilLanguage $a_language=null)
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ viewUserResultsObject()

ilObjSurveyGUI::viewUserResultsObject ( )
protected

Definition at line 2006 of file class.ilObjSurveyGUI.php.

References $_SESSION, $html, $ilUser, $tabs, ilObjectGUI\$tpl, ilObjectGUI\$user, getUserResultsTable(), and object.

2007  {
2008  $ilUser = $this->user;
2009  $tpl = $this->tpl;
2010  $ilTabs = $this->tabs;
2011 
2012  $anonymous_code = $_SESSION["anonymous_id"][$this->object->getId()];
2013  $active_id = $this->object->getActiveID($ilUser->getId(), $anonymous_code, 0);
2014  if ($this->object->isSurveyStarted($ilUser->getId(), $anonymous_code) !== 1 ||
2015  !$active_id) {
2016  $this->ctrl->redirect($this, "infoScreen");
2017  }
2018 
2019  $ilTabs->clearTargets();
2020  $ilTabs->setBackTarget(
2021  $this->lng->txt("btn_back"),
2022  $this->ctrl->getLinkTarget($this, "infoScreen")
2023  );
2024 
2025  $html = $this->getUserResultsTable($active_id);
2026  $tpl->setContent($html);
2027  }
$_SESSION["AccountId"]
$ilUser
Definition: imgupload.php:18
Create new PHPExcel object
obj_idprivate
getUserResultsTable($a_active_id)
$html
Definition: example_001.php:87
+ Here is the call graph for this function:

Field Documentation

◆ $help

ilObjSurveyGUI::$help
protected

Definition at line 39 of file class.ilObjSurveyGUI.php.

Referenced by getTabs(), and propertiesObject().

◆ $log

ilObjSurveyGUI::$log
protected

Definition at line 49 of file class.ilObjSurveyGUI.php.

◆ $nav_history

ilObjSurveyGUI::$nav_history
protected

Definition at line 29 of file class.ilObjSurveyGUI.php.

Referenced by executeCommand().

◆ $rbacsystem

ilObjSurveyGUI::$rbacsystem
protected

Definition at line 44 of file class.ilObjSurveyGUI.php.

Referenced by savePropertiesObject().

◆ $tabs

ilObjSurveyGUI::$tabs
protected

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