ILIAS  release_5-0 Revision 5.0.0-1144-gc4397b1f870
ilObjSurveyGUI Class Reference

Class ilObjSurveyGUI. More...

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

Public Member Functions

 __construct ()
 
 executeCommand ()
 execute command More...
 
 evaluationObject ()
 Redirects the evaluation object call to the ilSurveyEvaluationGUI class. More...
 
 afterSave (ilObject $a_new_object)
 save object @access public More...
 
 getTabs (&$tabs_gui)
 adds tabs to tab gui object More...
 
 handleWriteAccess ()
 Checks for write access and returns to the parent object. More...
 
 savePropertiesObject ()
 Save the survey properties. More...
 
 initPropertiesForm ()
 Init survey settings form. 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...
 
 importFileObject ()
 form for new survey object import More...
 
 exportObject ()
 
 createExportFileObject ()
 create export file More...
 
 downloadExportFileObject ()
 download export file More...
 
 confirmDeleteExportFileObject ()
 confirmation screen for export file deletion More...
 
 cancelDeleteExportFileObject ()
 cancel deletion of export files More...
 
 deleteExportFileObject ()
 delete export files 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 ()
 should be overwritten to add object specific items (repository items are preloaded) More...
 
 getUserResultsTable ($a_active_id)
 
 sendUserResultsMail ($a_active_id, $a_recipient)
 
 mailUserResultsObject ()
 
- Public Member Functions inherited from ilObjectGUI
 ilObjectGUI ($a_data, $a_id=0, $a_call_by_reference=true, $a_prepare_output=true)
 Constructor @access public. More...
 
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...
 
 getAdminTabs (&$tabs_gui)
 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 ($in_rep=false)
 cancel action and go back to previous page @access public More...
 
 createObject ()
 create new object form More...
 
 cancelCreation ()
 cancel create action and go back to repository parent More...
 
 saveObject ()
 save object More...
 
 editObject ()
 edit object More...
 
 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)
 Add custom templates. More...
 
 initImportForm ($a_new_type)
 Init object import form. More...
 
 viewUserResultsObject ()
 
 getUserResultsPlain ($a_active_id)
 
- Protected Member Functions inherited from ilObjectGUI
 assignObject ()
 
 prepareOutput ()
 prepare output More...
 
 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 @access public More...
 
 setAdminTabs ()
 set admin tabs @access 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...
 
 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...
 
 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)
 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...
 
 getTitlesByRefId ($a_ref_ids)
 get Titles of objects this method is used for error messages in methods cut/copy/paste More...
 
 getTabs (&$tabs_gui)
 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 ($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...
 

Additional Inherited Members

- Data Fields inherited from ilObjectGUI
const COPY_WIZARD_NEEDS_PAGE = 1
 
 $ilias
 
 $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 24 of file class.ilObjSurveyGUI.php.

25 {
26 global $lng, $ilCtrl;
27
28 $this->type = "svy";
29 $lng->loadLanguageModule("survey");
30 $this->ctrl = $ilCtrl;
31 $this->ctrl->saveParameter($this, "ref_id");
32
33 parent::__construct("", (int)$_GET["ref_id"], true, false);
34 }
$_GET["client_id"]
global $ilCtrl
Definition: ilias.php:18

References $_GET, $ilCtrl, and ilObjectGUI\$lng.

Member Function Documentation

◆ _goto()

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

redirect script

Parameters
string$a_target

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

2001 {
2002 global $ilAccess, $ilErr, $lng;
2003
2004 // see ilObjSurveyAccess::_checkGoto()
2005 include_once "./Services/Utilities/classes/class.ilUtil.php";
2006 if (strlen($a_access_code))
2007 {
2008 $_SESSION["anonymous_id"][ilObject::_lookupObjId($a_target)] = $a_access_code;
2009 $_GET["baseClass"] = "ilObjSurveyGUI";
2010 $_GET["cmd"] = "infoScreen";
2011 $_GET["ref_id"] = $a_target;
2012 include("ilias.php");
2013 exit;
2014 }
2015
2016 if ($ilAccess->checkAccess("read", "", $a_target))
2017 {
2018 $_GET["baseClass"] = "ilObjSurveyGUI";
2019 $_GET["cmd"] = "infoScreen";
2020 $_GET["ref_id"] = $a_target;
2021 include("ilias.php");
2022 exit;
2023 }
2024 else if ($ilAccess->checkAccess("read", "", ROOT_FOLDER_ID))
2025 {
2026 ilUtil::sendFailure(sprintf($lng->txt("msg_no_perm_read_item"),
2029 }
2030
2031 $ilErr->raiseError($lng->txt("msg_no_perm_read_lm"), $ilErr->FATAL);
2032 }
static _gotoRepositoryRoot($a_raise_error=false)
Goto repository root.
static _lookupObjId($a_id)
static _lookupTitle($a_id)
lookup object title
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
< a tabindex="-1" style="border-style: none;" href="#" title="Refresh Image" onclick="document.getElementById('siimage').src = './securimage_show.php?sid=' + Math.random(); this.blur(); return false">< img src="./images/refresh.png" alt="Reload Image" height="32" width="32" onclick="this.blur()" align="bottom" border="0"/></a >< br/>< strong > Enter Code *if($_SERVER['REQUEST_METHOD']=='POST' &&@ $_POST['do']=='contact') $_SESSION['ctform']['success']
exit
Definition: login.php:54

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

+ Here is the call graph for this function:

◆ addDidacticTemplateOptions()

ilObjSurveyGUI::addDidacticTemplateOptions ( array &  $a_options)
protected

Add custom templates.

Parameters
array$a_options

Reimplemented from ilObjectGUI.

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

230 {
231 include_once "Services/Administration/classes/class.ilSettingsTemplate.php";
233 if($templates)
234 {
235 foreach($templates as $item)
236 {
237 $a_options["svytpl_".$item["id"]] = array($item["title"],
238 nl2br(trim($item["description"])));
239 }
240 }
241
242 // JF, 2013-06-10
243 $a_options["svy360_1"] = array($this->lng->txt("survey_360_mode"),
244 $this->lng->txt("survey_360_mode_info"));
245 }
static getAllSettingsTemplates($a_type, $a_include_auto_generated=false)
Get all settings templates of type.

References ilSettingsTemplate\getAllSettingsTemplates().

+ Here is the call graph for this function:

◆ addLocatorItems()

ilObjSurveyGUI::addLocatorItems ( )

should be overwritten to add object specific items (repository items are preloaded)

Reimplemented from ilObjectGUI.

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

1948 {
1949 global $ilLocator;
1950 switch ($this->ctrl->getCmd())
1951 {
1952 case "next":
1953 case "previous":
1954 case "start":
1955 case "resume":
1956 case "redirectQuestion":
1957 $ilLocator->addItem($this->object->getTitle(), $this->ctrl->getLinkTarget($this, "infoScreen"), "", $_GET["ref_id"]);
1958 break;
1959 case "evaluation":
1960 case "checkEvaluationAccess":
1961 case "evaluationdetails":
1962 case "evaluationuser":
1963 $ilLocator->addItem($this->object->getTitle(), $this->ctrl->getLinkTargetByClass("ilsurveyevaluationgui", "evaluation"), "", $_GET["ref_id"]);
1964 break;
1965 case "create":
1966 case "save":
1967 case "cancel":
1968 case "importFile":
1969 case "cloneAll":
1970 break;
1971 case "infoScreen":
1972 $ilLocator->addItem($this->object->getTitle(), $this->ctrl->getLinkTarget($this, "infoScreen"), "", $_GET["ref_id"]);
1973 break;
1974 default:
1975 $ilLocator->addItem($this->object->getTitle(), $this->ctrl->getLinkTarget($this, ""), "", $_GET["ref_id"]);
1976
1977 // this has to be done here because ilSurveyEditorGUI is called after finalizing the locator
1978 if ((int)$_GET["q_id"] && !(int)$_REQUEST["new_for_survey"])
1979 {
1980 // not on create
1981 // see ilObjSurveyQuestionPool::addLocatorItems
1982 $q_id = (int)$_GET["q_id"];
1983 include_once "./Modules/SurveyQuestionPool/classes/class.SurveyQuestion.php";
1984 $q_type = SurveyQuestion::_getQuestionType($q_id)."GUI";
1985 $this->ctrl->setParameterByClass($q_type, "q_id", $q_id);
1986 $ilLocator->addItem(SurveyQuestion::_getTitle($q_id),
1987 $this->ctrl->getLinkTargetByClass(array("ilSurveyEditorGUI", $q_type), "editQuestion"));
1988 }
1989 break;
1990 }
1991 }
_getQuestionType($question_id)
Returns the question type of a question with a given id.
_getTitle($question_id)
Returns the question title of a question with a given id.
if($_REQUEST['ilias_path']) define('ILIAS_HTTP_PATH' $_REQUEST['ilias_path']
Definition: index.php:7

References $_GET, $_REQUEST, SurveyQuestion\_getQuestionType(), and SurveyQuestion\_getTitle().

+ Here is the call graph for this function:

◆ afterSave()

ilObjSurveyGUI::afterSave ( ilObject  $a_new_object)

save object @access public

Reimplemented from ilObjectGUI.

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

252 {
253 // #16446
254 $a_new_object->loadFromDb();
255
256 $tpl = $this->getDidacticTemplateVar("svytpl");
257 if($tpl)
258 {
259 $a_new_object->applySettingsTemplate($tpl);
260 }
261
262 $a_new_object->set360Mode((bool)$this->getDidacticTemplateVar("svy360"));
263 if($a_new_object->get360Mode())
264 {
265 // this should rather be ilObjSurvey::ANONYMIZE_ON - see ilObjSurvey::getUserDataFromActiveId()
266 $a_new_object->setAnonymize(ilObjSurvey::ANONYMIZE_CODE_ALL);
267 $a_new_object->setEvaluationAccess(ilObjSurvey::EVALUATION_ACCESS_PARTICIPANTS);
268 }
269 $a_new_object->saveToDB();
270
271 // always send a message
272 ilUtil::sendSuccess($this->lng->txt("object_added"),true);
273 ilUtil::redirect("ilias.php?baseClass=ilObjSurveyGUI&ref_id=".
274 $a_new_object->getRefId()."&cmd=properties");
275 }
const EVALUATION_ACCESS_PARTICIPANTS
const ANONYMIZE_CODE_ALL
getDidacticTemplateVar($a_type)
Get didactic template setting from creation screen.
getRefId()
get reference id @access public
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
static redirect($a_script)
http redirect to other script

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

+ Here is the call graph for this function:

◆ cancelDeleteExportFileObject()

ilObjSurveyGUI::cancelDeleteExportFileObject ( )

cancel deletion of export files

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

1524 {
1525 ilUtil::sendInfo($this->lng->txt('msg_cancel'), true);
1526 $this->ctrl->redirect($this, "export");
1527 }
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.

References ilUtil\sendInfo().

+ Here is the call graph for this function:

◆ confirmDeleteExportFileObject()

ilObjSurveyGUI::confirmDeleteExportFileObject ( )

confirmation screen for export file deletion

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

1482 {
1483 global $ilTabs;
1484
1485 $this->handleWriteAccess();
1486 $ilTabs->activateTab("export");
1487
1488 if (!isset($_POST["file"]))
1489 {
1490 ilUtil::sendFailure($this->lng->txt("no_checkbox"), true);
1491 $this->ctrl->redirect($this, "export");
1492 }
1493
1494 ilUtil::sendQuestion($this->lng->txt("info_delete_sure"));
1495
1496 $export_dir = $this->object->getExportDirectory();
1497 $export_files = $this->object->getExportFiles($export_dir);
1498 $data = array();
1499 if (count($_POST["file"]) > 0)
1500 {
1501 foreach ($_POST["file"] as $exp_file)
1502 {
1503 $file_arr = explode("__", $exp_file);
1504 $date = new ilDateTime($file_arr[0], IL_CAL_UNIX);
1505 array_push($data, array(
1506 'file' => $exp_file,
1507 'size' => filesize($export_dir."/".$exp_file),
1508 'date' => $date->get(IL_CAL_DATETIME)
1509 ));
1510 }
1511 }
1512
1513 include_once "./Modules/Survey/classes/tables/class.ilSurveyExportTableGUI.php";
1514 $table_gui = new ilSurveyExportTableGUI($this, 'export', true);
1515 $table_gui->setData($data);
1516 $this->tpl->setVariable('ADM_CONTENT', $table_gui->getHTML());
1517 }
const IL_CAL_UNIX
const IL_CAL_DATETIME
@classDescription Date and time handling
handleWriteAccess()
Checks for write access and returns to the parent object.
static sendQuestion($a_info="", $a_keep=false)
Send Question to Screen.
$_POST['username']
Definition: cron.php:12

References $_POST, ilObjectGUI\$data, handleWriteAccess(), IL_CAL_DATETIME, IL_CAL_UNIX, ilUtil\sendFailure(), and ilUtil\sendQuestion().

+ Here is the call graph for this function:

◆ confirmResetTemplateObject()

ilObjSurveyGUI::confirmResetTemplateObject ( )

Enable all settings - Confirmation.

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

1262 {
1263 ilUtil::sendQuestion($this->lng->txt("survey_confirm_template_reset"));
1264 $this->tpl->addBlockFile("ADM_CONTENT", "adm_content", "tpl.il_svy_svy_confirm_resettemplate.html", "Modules/Survey");
1265 $this->tpl->setCurrentBlock("adm_content");
1266 $this->tpl->setVariable("BTN_CONFIRM_REMOVE", $this->lng->txt("confirm"));
1267 $this->tpl->setVariable("BTN_CANCEL_REMOVE", $this->lng->txt("cancel"));
1268 $this->tpl->setVariable("FORM_ACTION", $this->ctrl->getFormAction($this, "resetTemplateObject"));
1269 $this->tpl->parseCurrentBlock();
1270 }

References ilUtil\sendQuestion().

+ Here is the call graph for this function:

◆ createExportFileObject()

ilObjSurveyGUI::createExportFileObject ( )

create export file

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

1446 {
1447 $this->handleWriteAccess();
1448 include_once("./Modules/Survey/classes/class.ilSurveyExport.php");
1449 $survey_exp = new ilSurveyExport($this->object);
1450 $survey_exp->buildExportFile();
1451 $this->ctrl->redirect($this, "export");
1452 }
Export class for surveys.

References handleWriteAccess().

+ Here is the call graph for this function:

◆ deleteExportFileObject()

ilObjSurveyGUI::deleteExportFileObject ( )

delete export files

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

1534 {
1535 $export_dir = $this->object->getExportDirectory();
1536 foreach ($_POST["file"] as $file)
1537 {
1538 $file = basename($file);
1539
1540 $exp_file = $export_dir."/".$file;
1541 $exp_dir = $export_dir."/".substr($file, 0, strlen($file) - 4);
1542 if (@is_file($exp_file))
1543 {
1544 unlink($exp_file);
1545 }
1546 if (@is_dir($exp_dir))
1547 {
1548 include_once "./Services/Utilities/classes/class.ilUtil.php";
1549 ilUtil::delDir($exp_dir);
1550 }
1551 }
1552 ilUtil::sendSuccess($this->lng->txt('msg_deleted_export_files'), true);
1553 $this->ctrl->redirect($this, "export");
1554 }
print $file
static delDir($a_dir, $a_clean_only=false)
removes a dir and all its content (subdirs and files) recursively

References $_POST, $file, ilUtil\delDir(), and ilUtil\sendSuccess().

+ Here is the call graph for this function:

◆ doAutoCompleteObject()

ilObjSurveyGUI::doAutoCompleteObject ( )

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

1239 {
1240 $fields = array('login','firstname','lastname','email');
1241
1242 include_once './Services/User/classes/class.ilUserAutoComplete.php';
1243 $auto = new ilUserAutoComplete();
1244 $auto->setSearchFields($fields);
1245 $auto->setResultField('login');
1246 $auto->enableFieldSearchableCheck(true);
1247 $auto->setMoreLinkAvailable(true);
1248
1249 if(($_REQUEST['fetchall']))
1250 {
1251 $auto->setLimit(ilUserAutoComplete::MAX_ENTRIES);
1252 }
1253
1254 echo $auto->getList(ilUtil::stripSlashes($_REQUEST['term']));
1255 exit();
1256 }
Auto completion class for user lists.
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled

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

+ Here is the call graph for this function:

◆ downloadExportFileObject()

ilObjSurveyGUI::downloadExportFileObject ( )

download export file

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

1458 {
1459 if(!isset($_POST["file"]))
1460 {
1461 ilUtil::sendFailure($this->lng->txt("no_checkbox"), true);
1462 $this->ctrl->redirect($this, "export");
1463 }
1464
1465 if (count($_POST["file"]) > 1)
1466 {
1467 ilUtil::sendFailure($this->lng->txt("select_max_one_item"), true);
1468 $this->ctrl->redirect($this, "export");
1469 }
1470
1471 $file = basename($_POST["file"][0]);
1472
1473 $export_dir = $this->object->getExportDirectory();
1474 include_once "./Services/Utilities/classes/class.ilUtil.php";
1475 ilUtil::deliverFile($export_dir."/".$file, $file);
1476 }
static deliverFile($a_file, $a_filename, $a_mime='', $isInline=false, $removeAfterDelivery=false, $a_exit_after=true)
deliver file for download via browser.

References $_POST, $file, ilUtil\deliverFile(), and ilUtil\sendFailure().

+ Here is the call graph for this function:

◆ evaluationObject()

ilObjSurveyGUI::evaluationObject ( )

Redirects the evaluation object call to the ilSurveyEvaluationGUI class.

Coming from ListGUI...

@access private

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

222 {
223 include_once("./Modules/Survey/classes/class.ilSurveyEvaluationGUI.php");
224 $eval_gui = new ilSurveyEvaluationGUI($this->object);
225 $this->ctrl->setCmdClass(get_class($eval_gui));
226 $this->ctrl->redirect($eval_gui, "evaluation");
227 }
Survey evaluation graphical output.

◆ executeCommand()

ilObjSurveyGUI::executeCommand ( )

execute command

Reimplemented from ilObjectGUI.

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

37 {
38 global $ilAccess, $ilNavigationHistory, $ilErr, $ilTabs;
39
40 $this->external_rater_360 = false;
41 if(!$this->creation_mode &&
42 $this->object->get360Mode() &&
43 $_SESSION["anonymous_id"][$this->object->getId()] &&
44 ilObjSurvey::validateExternalRaterCode($this->object->getRefId(),
45 $_SESSION["anonymous_id"][$this->object->getId()]))
46 {
47 $this->external_rater_360 = true;
48 }
49
50 if(!$this->external_rater_360)
51 {
52 if (!$ilAccess->checkAccess("read", "", $this->ref_id) &&
53 !$ilAccess->checkAccess("visible", "", $this->ref_id))
54 {
55 $ilErr->raiseError($this->lng->txt("permission_denied"), $ilErr->MESSAGE);
56 }
57
58 // add entry to navigation history
59 if (!$this->getCreationMode() &&
60 $ilAccess->checkAccess("read", "", $this->ref_id))
61 {
62 $this->ctrl->setParameterByClass("ilobjsurveygui", "ref_id", $this->ref_id);
63 $link = $this->ctrl->getLinkTargetByClass("ilobjsurveygui", "");
64 $ilNavigationHistory->addItem($this->ref_id, $link, "svy");
65 }
66 }
67
68 $cmd = $this->ctrl->getCmd("properties");
69
70 // workaround for bug #6288, needs better solution
71 if ($cmd == "saveTags")
72 {
73 $this->ctrl->setCmdClass("ilinfoscreengui");
74 }
75
76 // deep link from repository - "redirect" to page view
77 if(!$this->ctrl->getCmdClass() && $cmd == "questionsrepo")
78 {
79 $_REQUEST["pgov"] = 1;
80 $this->ctrl->setCmd("questions");
81 $this->ctrl->setCmdClass("ilsurveyeditorgui");
82 }
83
84 $next_class = $this->ctrl->getNextClass($this);
85 $this->ctrl->setReturn($this, "properties");
86 $this->tpl->addCss(ilUtil::getStyleSheetLocation("output", "survey.css", "Modules/Survey"), "screen");
87 $this->prepareOutput();
88
89 switch($next_class)
90 {
91 case "ilinfoscreengui":
92 if(!in_array($this->ctrl->getCmdClass(),
93 array('ilpublicuserprofilegui', 'ilobjportfoliogui')))
94 {
95 $this->addHeaderAction();
96 $this->infoScreen(); // forwards command
97 }
98 else
99 {
100 // #16891
101 $ilTabs->clearTargets();
102 include_once("./Services/InfoScreen/classes/class.ilInfoScreenGUI.php");
103 $info = new ilInfoScreenGUI($this);
104 $this->ctrl->forwardCommand($info);
105 }
106 break;
107
108 case 'ilmdeditorgui':
109 $this->handleWriteAccess();
110 $ilTabs->activateTab("meta_data");
111 $this->addHeaderAction();
112 include_once 'Services/MetaData/classes/class.ilMDEditorGUI.php';
113 $md_gui =& new ilMDEditorGUI($this->object->getId(), 0, $this->object->getType());
114 $md_gui->addObserver($this->object,'MDUpdateListener','General');
115
116 $this->ctrl->forwardCommand($md_gui);
117 break;
118
119 case "ilsurveyevaluationgui":
120 $ilTabs->activateTab("svy_results");
121 $this->addHeaderAction();
122 include_once("./Modules/Survey/classes/class.ilSurveyEvaluationGUI.php");
123 $eval_gui = new ilSurveyEvaluationGUI($this->object);
124 $this->ctrl->forwardCommand($eval_gui);
125 break;
126
127 case "ilsurveyexecutiongui":
128 $ilTabs->clearTargets();
129 include_once("./Modules/Survey/classes/class.ilSurveyExecutionGUI.php");
130 $exec_gui = new ilSurveyExecutionGUI($this->object);
131 $this->ctrl->forwardCommand($exec_gui);
132 break;
133
134 case 'ilpermissiongui':
135 $ilTabs->activateTab("perm_settings");
136 $this->addHeaderAction();
137 include_once("Services/AccessControl/classes/class.ilPermissionGUI.php");
138 $perm_gui =& new ilPermissionGUI($this);
139 $this->ctrl->forwardCommand($perm_gui);
140 break;
141
142 case 'ilobjectcopygui':
143 include_once './Services/Object/classes/class.ilObjectCopyGUI.php';
144 $cp = new ilObjectCopyGUI($this);
145 $cp->setType('svy');
146 $this->ctrl->forwardCommand($cp);
147 break;
148
149 case "ilcommonactiondispatchergui":
150 include_once("Services/Object/classes/class.ilCommonActionDispatcherGUI.php");
152 $this->ctrl->forwardCommand($gui);
153 break;
154
155 // 360, skill service
156 case 'ilsurveyskillgui':
157 $ilTabs->activateTab("survey_competences");
158 include_once("./Modules/Survey/classes/class.ilSurveySkillGUI.php");
159 $gui = new ilSurveySkillGUI($this->object);
160 $this->ctrl->forwardCommand($gui);
161 break;
162
163 case 'ilsurveyskilldeterminationgui':
164 $ilTabs->activateTab("maintenance");
165 include_once("./Modules/Survey/classes/class.ilSurveySkillDeterminationGUI.php");
166 $gui = new ilSurveySkillDeterminationGUI($this->object);
167 $this->ctrl->forwardCommand($gui);
168 break;
169
170 case 'ilsurveyeditorgui':
171 $this->handleWriteAccess();
172 $ilTabs->activateTab("survey_questions");
173 include_once("./Modules/Survey/classes/class.ilSurveyEditorGUI.php");
174 $gui = new ilSurveyEditorGUI($this);
175 $this->ctrl->forwardCommand($gui);
176 break;
177
178 case 'ilsurveyconstraintsgui':
179 $this->handleWriteAccess();
180 $ilTabs->activateTab("constraints");
181 include_once("./Modules/Survey/classes/class.ilSurveyConstraintsGUI.php");
182 $gui = new ilSurveyConstraintsGUI($this);
183 $this->ctrl->forwardCommand($gui);
184 break;
185
186 case 'ilsurveyparticipantsgui':
187 if(!$this->object->get360Mode())
188 {
189 $ilTabs->activateTab("maintenance");
190 }
191 else
192 {
193 $ilTabs->activateTab("survey_360_appraisees");
194 }
195 include_once("./Modules/Survey/classes/class.ilSurveyParticipantsGUI.php");
196 $gui = new ilSurveyParticipantsGUI($this);
197 $this->ctrl->forwardCommand($gui);
198 break;
199
200 default:
201 $this->addHeaderAction();
202 $cmd.= "Object";
203 $this->$cmd();
204 break;
205 }
206
207 if (strtolower($_GET["baseClass"]) != "iladministrationgui" &&
208 $this->getCreationMode() != true)
209 {
210 $this->tpl->show();
211 }
212 }
static getInstanceFromAjaxCall()
(Re-)Build instance from ajax call
Class ilInfoScreenGUI.
infoScreen()
show information screen
static validateExternalRaterCode($a_ref_id, $a_code)
GUI class for the workflow of copying objects.
prepareOutput()
prepare output
getCreationMode()
get creation mode
addHeaderAction()
Add header action menu.
New PermissionGUI (extends from old ilPermission2GUI) RBAC related output.
Class ilSurveyConstraintsGUI.
Class ilSurveyEditorGUI.
Survey execution graphical output.
Class ilSurveyParticipantsGUI.
Survey skill determination GUI class.
Survey skill service GUI class.
static getStyleSheetLocation($mode="output", $a_css_name="", $a_css_location="")
get full style sheet file name (path inclusive) of current user
$cmd
Definition: sahs_server.php:35

References $_GET, $_REQUEST, $_SESSION, $cmd, $ilErr, ilObjectGUI\addHeaderAction(), ilObjectGUI\getCreationMode(), ilCommonActionDispatcherGUI\getInstanceFromAjaxCall(), ilUtil\getStyleSheetLocation(), handleWriteAccess(), infoScreen(), ilObjectGUI\prepareOutput(), and ilObjSurvey\validateExternalRaterCode().

+ Here is the call graph for this function:

◆ exportObject()

ilObjSurveyGUI::exportObject ( )

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

1407 {
1408 global $ilTabs, $ilToolbar;
1409
1410 $this->handleWriteAccess();
1411 $ilTabs->activateTab("export");
1412
1413 include_once "Services/UIComponent/Button/classes/class.ilLinkButton.php";
1414 $button = ilLinkButton::getInstance();
1415 $button->setCaption("svy_create_export_file");
1416 $button->setUrl($this->ctrl->getLinkTarget($this, "createExportFile"));
1417 $ilToolbar->addButtonInstance($button);
1418
1419 $export_dir = $this->object->getExportDirectory();
1420 $export_files = $this->object->getExportFiles($export_dir);
1421 $data = array();
1422 if(count($export_files) > 0)
1423 {
1424 foreach($export_files as $exp_file)
1425 {
1426 $file_arr = explode("__", $exp_file);
1427 $date = new ilDateTime($file_arr[0], IL_CAL_UNIX);
1428 array_push($data, array(
1429 'file' => $exp_file,
1430 'size' => filesize($export_dir."/".$exp_file),
1431 'date' => $date->get(IL_CAL_DATETIME)
1432 ));
1433 }
1434 }
1435
1436 include_once "./Modules/Survey/classes/tables/class.ilSurveyExportTableGUI.php";
1437 $table_gui = new ilSurveyExportTableGUI($this, 'export');
1438 $table_gui->setData($data);
1439 $this->tpl->setVariable('ADM_CONTENT', $table_gui->getHTML());
1440 }
static getInstance()
Factory.

References ilObjectGUI\$data, ilLinkButton\getInstance(), handleWriteAccess(), IL_CAL_DATETIME, and IL_CAL_UNIX.

+ Here is the call graph for this function:

◆ getTabs()

ilObjSurveyGUI::getTabs ( $tabs_gui)

adds tabs to tab gui object

Parameters
object$tabs_guiilTabsGUI object

Reimplemented from ilObjectGUI.

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

283 {
284 global $ilAccess, $ilUser, $ilHelp;
285
286 if($this->object instanceof ilObjSurveyQuestionPool)
287 {
288 return true;
289 }
290
291 $ilHelp->setScreenIdComponent("svy");
292
293 $hidden_tabs = array();
294 $template = $this->object->getTemplate();
295 if($template)
296 {
297 include_once "Services/Administration/classes/class.ilSettingsTemplate.php";
298 $template = new ilSettingsTemplate($template);
299 $hidden_tabs = $template->getHiddenTabs();
300 }
301
302 if ($ilAccess->checkAccess("write", "", $this->ref_id))
303 {
304 $tabs_gui->addTab("survey_questions",
305 $this->lng->txt("survey_questions"),
306 $this->ctrl->getLinkTargetByClass(array("ilsurveyeditorgui", "ilsurveypagegui"), "renderPage"));
307 }
308
309 if ($ilAccess->checkAccess("visible", "", $this->ref_id))
310 {
311 $tabs_gui->addTab("info_short",
312 $this->lng->txt("info_short"),
313 $this->ctrl->getLinkTarget($this,'infoScreen'));
314 }
315
316 // properties
317 if ($ilAccess->checkAccess("write", "", $this->ref_id))
318 {
319 $tabs_gui->addTab("settings",
320 $this->lng->txt("settings"),
321 $this->ctrl->getLinkTarget($this,'properties'));
322 }
323 else if ($ilAccess->checkAccess("read", "", $this->ref_id))
324 {
325 if($this->object->get360Mode() &&
326 $this->object->get360SelfRaters() &&
327 $this->object->isAppraisee($ilUser->getId()) &&
328 !$this->object->isAppraiseeClosed($ilUser->getId()))
329 {
330 $tabs_gui->addTab("survey_360_edit_raters",
331 $this->lng->txt("survey_360_edit_raters"),
332 $this->ctrl->getLinkTargetByClass('ilsurveyparticipantsgui','editRaters'));
333
334 // :TODO: mail to raters
335 }
336 }
337
338 // questions
339 if ($ilAccess->checkAccess("write", "", $this->ref_id) &&
340 !in_array("constraints", $hidden_tabs) &&
341 !$this->object->get360Mode())
342 {
343 // constraints
344 $tabs_gui->addTab("constraints",
345 $this->lng->txt("constraints"),
346 $this->ctrl->getLinkTargetByClass("ilsurveyconstraintsgui", "constraints"));
347 }
348
349 if ($ilAccess->checkAccess("write", "", $this->ref_id))
350 {
351 // 360°
352 if($this->object->get360Mode())
353 {
354 // 360 mode + competence service
355 include_once("./Services/Skill/classes/class.ilSkillManagementSettings.php");
356 $skmg_set = new ilSkillManagementSettings();
357 if ($this->object->get360SkillService() && $skmg_set->isActivated())
358 {
359 $tabs_gui->addTab("survey_competences",
360 $this->lng->txt("survey_competences"),
361 $this->ctrl->getLinkTargetByClass("ilsurveyskillgui", "listQuestionAssignment"));
362 }
363
364 $tabs_gui->addTab("survey_360_appraisees",
365 $this->lng->txt("survey_360_appraisees"),
366 $this->ctrl->getLinkTargetByClass('ilsurveyparticipantsgui', 'listAppraisees'));
367 }
368 else
369 {
370 // maintenance
371 $tabs_gui->addTab("maintenance",
372 $this->lng->txt("maintenance"),
373 $this->ctrl->getLinkTargetByClass('ilsurveyparticipantsgui', 'maintenance'));
374 }
375 }
376
377 include_once "./Modules/Survey/classes/class.ilObjSurveyAccess.php";
378 if ($ilAccess->checkAccess("write", "", $this->ref_id) ||
379 ilObjSurveyAccess::_hasEvaluationAccess($this->object->getId(), $ilUser->getId()))
380 {
381 // evaluation
382 $tabs_gui->addTab("svy_results",
383 $this->lng->txt("svy_results"),
384 $this->ctrl->getLinkTargetByClass("ilsurveyevaluationgui", "evaluation"));
385 }
386
387 if ($ilAccess->checkAccess("write", "", $this->ref_id))
388 {
389 if(!in_array("meta_data", $hidden_tabs))
390 {
391 // meta data
392 $tabs_gui->addTab("meta_data",
393 $this->lng->txt("meta_data"),
394 $this->ctrl->getLinkTargetByClass('ilmdeditorgui','listSection'));
395 }
396
397 if(!in_array("export", $hidden_tabs))
398 {
399 // export
400 $tabs_gui->addTab("export",
401 $this->lng->txt("export"),
402 $this->ctrl->getLinkTarget($this,'export'));
403 }
404 }
405
406 if ($ilAccess->checkAccess("edit_permission", "", $this->ref_id))
407 {
408 // permissions
409 $tabs_gui->addTab("perm_settings",
410 $this->lng->txt("perm_settings"),
411 $this->ctrl->getLinkTargetByClass(array(get_class($this),'ilpermissiongui'), "perm"));
412 }
413 }
_hasEvaluationAccess($a_obj_id, $user_id)
Settings template application class.
global $ilUser
Definition: imgupload.php:15

References $ilUser, and ilObjSurveyAccess\_hasEvaluationAccess().

+ Here is the call graph for this function:

◆ getUserResultsPlain()

ilObjSurveyGUI::getUserResultsPlain (   $a_active_id)
protected

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

2109 {
2110 $res = array();
2111
2112 $show_titles = (bool)$this->object->getShowQuestionTitles();
2113
2114 foreach($this->object->getSurveyPages() as $page)
2115 {
2116 if(count($page) > 0)
2117 {
2118 $res[] = "\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n";
2119
2120 // question block
2121 if(count($page) > 1)
2122 {
2123 if((bool)$page[0]["questionblock_show_blocktitle"])
2124 {
2125 $res[$this->lng->txt("questionblock")] = trim($page[0]["questionblock_title"])."\n";
2126 }
2127 }
2128
2129 // questions
2130
2131 $page_res = array();
2132
2133 foreach($page as $question)
2134 {
2135 $question_gui = $this->object->getQuestionGUI($question["type_tag"], $question["question_id"]);
2136 if(is_object($question_gui))
2137 {
2138 $question_parts = array();
2139
2140 // heading
2141 if(strlen($question["heading"]))
2142 {
2143 $question_parts[$this->lng->txt("heading")] = trim($question["heading"]);
2144 }
2145
2146 if($show_titles)
2147 {
2148 $question_parts[$this->lng->txt("title")] = trim($question["title"]);
2149 }
2150
2151 if((bool)$question["questionblock_show_questiontext"])
2152 {
2153 $question_parts[$this->lng->txt("question")] = trim(strip_tags($question_gui->object->getQuestionText()));
2154 }
2155
2156 $answers = $question_gui->getParsedAnswers(
2157 $this->object->loadWorkingData($question["question_id"], $a_active_id),
2158 true
2159 );
2160
2161 if(sizeof($answers))
2162 {
2163 $multiline = false;
2164 if(sizeof($answers) > 1 ||
2165 get_class($question_gui) == "SurveyTextQuestionGUI")
2166 {
2167 $multiline = true;
2168 }
2169
2170 $parts = array();
2171 foreach($answers as $answer)
2172 {
2173 $text = null;
2174 if($answer["textanswer"])
2175 {
2176 $text = ' ("'.$answer["textanswer"].'")';
2177 }
2178 if(!isset($answer["cols"]))
2179 {
2180 if(isset($answer["title"]))
2181 {
2182 $parts[] = $answer["title"].$text;
2183 }
2184 else if(isset($answer["value"]))
2185 {
2186 $parts[] = $answer["value"];
2187 }
2188 else if($text)
2189 {
2190 $parts[] = substr($text, 2, -1);
2191 }
2192 }
2193 // matrix
2194 else
2195 {
2196 $tmp = array();
2197 foreach($answer["cols"] as $col)
2198 {
2199 $tmp[] = $col["title"];
2200 }
2201 $parts[] = $answer["title"].": ".implode(", ", $tmp).$text;
2202 }
2203
2204 }
2205 $question_parts[$this->lng->txt("answer")] =
2206 ($multiline ? "\n" : "").implode("\n", $parts);
2207 }
2208
2209 $tmp = array();
2210 foreach($question_parts as $type => $value)
2211 {
2212 $tmp[] = $type.": ".$value;
2213 }
2214 $page_res[] = implode("\n", $tmp);
2215 }
2216 }
2217
2218 $res[] = implode("\n\n-------------------------------\n\n", $page_res);
2219 }
2220 }
2221
2222 $res[] = "\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n";
2223
2224 return implode("\n", $res);
2225 }

References $res.

Referenced by sendUserResultsMail().

+ Here is the caller graph for this function:

◆ getUserResultsTable()

ilObjSurveyGUI::getUserResultsTable (   $a_active_id)

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

2035 {
2036 $rtpl = new ilTemplate("tpl.svy_view_user_results.html", true, true, "Modules/Survey");
2037
2038 $show_titles = (bool)$this->object->getShowQuestionTitles();
2039
2040 foreach($this->object->getSurveyPages() as $page)
2041 {
2042 if(count($page) > 0)
2043 {
2044 // question block
2045 if(count($page) > 1)
2046 {
2047 if((bool)$page[0]["questionblock_show_blocktitle"])
2048 {
2049 $rtpl->setVariable("BLOCK_TITLE", trim($page[0]["questionblock_title"]));
2050 }
2051 }
2052
2053 // questions
2054 foreach($page as $question)
2055 {
2056 $question_gui = $this->object->getQuestionGUI($question["type_tag"], $question["question_id"]);
2057 if(is_object($question_gui))
2058 {
2059 $rtpl->setCurrentBlock("question_bl");
2060
2061 // heading
2062 if(strlen($question["heading"]))
2063 {
2064 $rtpl->setVariable("HEADING", trim($question["heading"]));
2065 }
2066
2067 $rtpl->setVariable("QUESTION_DATA",
2068 $question_gui->getPrintView(
2069 $show_titles,
2070 (bool)$question["questionblock_show_questiontext"],
2071 $this->object->getId(),
2072 $this->object->loadWorkingData($question["question_id"], $a_active_id)
2073 )
2074 );
2075
2076 $rtpl->parseCurrentBlock();
2077 }
2078 }
2079
2080 $rtpl->setCurrentBlock("block_bl");
2081 $rtpl->parseCurrentBlock();
2082 }
2083 }
2084
2085 return $rtpl->get();
2086 }
special template class to simplify handling of ITX/PEAR

Referenced by viewUserResultsObject().

+ Here is the caller graph for this function:

◆ handleWriteAccess()

ilObjSurveyGUI::handleWriteAccess ( )

Checks for write access and returns to the parent object.

Checks for write access and returns to the parent object

@access public

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

423 {
424 global $ilAccess;
425 if (!$ilAccess->checkAccess("write", "", $this->ref_id))
426 {
427 // allow only write access
428 ilUtil::sendInfo($this->lng->txt("cannot_edit_survey"), TRUE);
429 $this->ctrl->redirect($this, "infoScreen");
430 }
431 }

References ilUtil\sendInfo().

Referenced by confirmDeleteExportFileObject(), createExportFileObject(), executeCommand(), exportObject(), and propertiesObject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ importFileObject()

ilObjSurveyGUI::importFileObject ( )

form for new survey object import

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

1323 {
1324 global $tpl, $ilErr;
1325
1326 $parent_id = $_GET["ref_id"];
1327 $new_type = $_REQUEST["new_type"];
1328
1329 // create permission is already checked in createObject. This check here is done to prevent hacking attempts
1330 if (!$this->checkPermissionBool("create", "", $new_type))
1331 {
1332 $ilErr->raiseError($this->lng->txt("no_create_permission"));
1333 }
1334
1335 $this->lng->loadLanguageModule($new_type);
1336 $this->ctrl->setParameter($this, "new_type", $new_type);
1337
1338 $form = $this->initImportForm($new_type);
1339 if ($form->checkInput())
1340 {
1341 include_once("./Modules/Survey/classes/class.ilObjSurvey.php");
1342 $newObj = new ilObjSurvey();
1343 $newObj->setType($new_type);
1344 $newObj->setTitle("dummy");
1345 $newObj->setDescription("dummy");
1346 $newObj->create(true);
1347 $this->putObjectInTree($newObj);
1348
1349 // copy uploaded file to import directory
1350 $error = $newObj->importObject($_FILES["importfile"], $form->getInput("spl"));
1351 if (strlen($error))
1352 {
1353 $newObj->delete();
1354 $this->ilias->raiseError($error, $this->ilias->error_obj->MESSAGE);
1355 return;
1356 }
1357
1358 ilUtil::sendSuccess($this->lng->txt("object_imported"),true);
1359 ilUtil::redirect("ilias.php?ref_id=".$newObj->getRefId().
1360 "&baseClass=ilObjSurveyGUI");
1361
1362 // using template?
1363 include_once "Services/Administration/classes/class.ilSettingsTemplate.php";
1365 if($templates)
1366 {
1367 global $tpl;
1368 $tpl->addJavaScript("./Modules/Scorm2004/scripts/questions/jquery.js");
1369 // $tpl->addJavaScript("./Modules/Scorm2004/scripts/questions/jquery-ui-min.js");
1370
1371 $this->tpl->setCurrentBlock("template_option");
1372 $this->tpl->setVariable("VAL_TEMPLATE_OPTION", "");
1373 $this->tpl->setVariable("TXT_TEMPLATE_OPTION", $this->lng->txt("none"));
1374 $this->tpl->parseCurrentBlock();
1375
1376 foreach($templates as $item)
1377 {
1378 $this->tpl->setCurrentBlock("template_option");
1379 $this->tpl->setVariable("VAL_TEMPLATE_OPTION", $item["id"]);
1380 $this->tpl->setVariable("TXT_TEMPLATE_OPTION", $item["title"]);
1381 $this->tpl->parseCurrentBlock();
1382
1383 $desc = str_replace("\n", "", nl2br($item["description"]));
1384 $desc = str_replace("\r", "", $desc);
1385
1386 $this->tpl->setCurrentBlock("js_data");
1387 $this->tpl->setVariable("JS_DATA_ID", $item["id"]);
1388 $this->tpl->setVariable("JS_DATA_TEXT", $desc);
1389 $this->tpl->parseCurrentBlock();
1390 }
1391
1392 $this->tpl->setCurrentBlock("templates");
1393 $this->tpl->setVariable("TXT_TEMPLATE", $this->lng->txt("svy_settings_template"));
1394 $this->tpl->parseCurrentBlock();
1395 }
1396 }
1397
1398 // display form to correct errors
1399 $form->setValuesByPost();
1400 $tpl->setContent($form->getHtml());
1401 }
initImportForm($a_new_type)
Init object import form.
putObjectInTree(ilObject $a_obj, $a_parent_node_id=null)
Add object to tree at given position.
checkPermissionBool($a_perm, $a_cmd="", $a_type="", $a_ref_id=null)
Check permission.
redirection script todo: (a better solution should control the processing via a xml file)

References $_GET, $_REQUEST, $ilErr, ilObjectGUI\$tpl, ilObjectGUI\checkPermissionBool(), ilSettingsTemplate\getAllSettingsTemplates(), initImportForm(), ilObjectGUI\putObjectInTree(), ilUtil\redirect(), and ilUtil\sendSuccess().

+ Here is the call graph for this function:

◆ infoScreen()

ilObjSurveyGUI::infoScreen ( )

show information screen

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

1577 {
1578 global $ilAccess, $ilTabs, $ilUser, $ilToolbar;
1579
1580 if (!$this->external_rater_360 &&
1581 !$ilAccess->checkAccess("visible", "", $this->ref_id))
1582 {
1583 $this->ilias->raiseError($this->lng->txt("msg_no_perm_read"),$this->ilias->error_obj->MESSAGE);
1584 }
1585
1586 $ilTabs->activateTab("info_short");
1587
1588 include_once "./Modules/Survey/classes/class.ilSurveyExecutionGUI.php";
1589 $output_gui =& new ilSurveyExecutionGUI($this->object);
1590
1591 include_once("./Services/InfoScreen/classes/class.ilInfoScreenGUI.php");
1592 $info = new ilInfoScreenGUI($this);
1593 $info->enablePrivateNotes();
1594
1595 // "active" survey?
1596 $canStart = $this->object->canStartSurvey(null, $this->external_rater_360);
1597
1598 $showButtons = $canStart["result"];
1599 if (!$showButtons)
1600 {
1601 if($canStart["edit_settings"] &&
1602 $ilAccess->checkAccess("write", "", $this->ref_id))
1603 {
1604 $canStart["messages"][] = "<a href=\"".$this->ctrl->getLinkTarget($this, "properties")."\">&raquo; ".
1605 $this->lng->txt("survey_edit_settings")."</a>";
1606 }
1607 ilUtil::sendInfo(implode("<br />", $canStart["messages"]));
1608 }
1609
1610 $big_button = false;
1611 if ($showButtons)
1612 {
1613 // closing survey?
1614 $is_appraisee = false;
1615 if($this->object->get360Mode() &&
1616 $this->object->isAppraisee($ilUser->getId()))
1617 {
1618 $info->addSection($this->lng->txt("survey_360_appraisee_info"));
1619
1620 $appr_data = $this->object->getAppraiseesData();
1621 $appr_data = $appr_data[$ilUser->getId()];
1622 $info->addProperty($this->lng->txt("survey_360_raters_status_info"), $appr_data["finished"]);
1623
1624 if(!$appr_data["closed"])
1625 {
1626 include_once "Services/UIComponent/Button/classes/class.ilLinkButton.php";
1627 $button = ilLinkButton::getInstance();
1628 $button->setCaption("survey_360_appraisee_close_action");
1629 $button->setUrl($this->ctrl->getLinkTargetByClass("ilsurveyparticipantsgui", "confirmappraiseeclose"));
1630 $close_button_360 = '<div>'.$button->render().'</div>';
1631
1632 $txt = "survey_360_appraisee_close_action_info";
1633 if($this->object->get360SkillService())
1634 {
1635 $txt .= "_skill";
1636 }
1637 $info->addProperty($this->lng->txt("status"),
1638 $close_button_360.$this->lng->txt($txt));
1639 }
1640 else
1641 {
1643
1644 $dt = new ilDateTime($appr_data["closed"], IL_CAL_UNIX);
1645 $info->addProperty($this->lng->txt("status"),
1646 sprintf($this->lng->txt("survey_360_appraisee_close_action_status"),
1648 }
1649
1650 $is_appraisee = true;
1651 }
1652
1653
1654 // handle code
1655
1656 // validate incoming
1657 $code_input = false;
1658 $anonymous_code = $_POST["anonymous_id"];
1659 if ($anonymous_code)
1660 {
1661 $code_input = true;
1662 // if(!$this->object->isUnusedCode($anonymous_code, $ilUser->getId()))
1663 if(!$this->object->checkSurveyCode($anonymous_code)) // #15031 - valid as long survey is not finished
1664 {
1665 $anonymous_code = null;
1666 }
1667 else
1668 {
1669 // #15860
1670 $this->object->bindSurveyCodeToUser($ilUser->getId(), $anonymous_code);
1671 }
1672 }
1673 if ($anonymous_code)
1674 {
1675 $_SESSION["anonymous_id"][$this->object->getId()] = $anonymous_code;
1676 }
1677 else
1678 {
1679 $anonymous_code = $_SESSION["anonymous_id"][$this->object->getId()];
1680 if($anonymous_code)
1681 {
1682 $code_input = true;
1683 }
1684 }
1685
1686 // try to find code for current (registered) user from existing run
1687 if($this->object->getAnonymize() && !$anonymous_code)
1688 {
1689 $anonymous_code = $this->object->findCodeForUser($ilUser->getId());
1690 }
1691
1692 // get existing runs for current user, might generate code
1693 $participant_status = $this->object->getUserSurveyExecutionStatus($anonymous_code);
1694 if($participant_status)
1695 {
1696 $anonymous_code = $participant_status["code"];
1697 $participant_status = $participant_status["runs"];
1698 }
1699
1700 // (final) check for proper anonymous code
1701 if(!$this->object->isAccessibleWithoutCode() &&
1702 !$is_appraisee &&
1703 $code_input && // #11346
1704 (!$anonymous_code || !$this->object->isAnonymousKey($anonymous_code)))
1705 {
1706 $anonymous_code = null;
1707 ilUtil::sendInfo($this->lng->txt("wrong_survey_code_used"));
1708 }
1709
1710 // :TODO: really save in session?
1711 $_SESSION["anonymous_id"][$this->object->getId()] = $anonymous_code;
1712
1713 // code is mandatory and not given yet
1714 if(!$is_appraisee &&
1715 !$anonymous_code &&
1716 !$this->object->isAccessibleWithoutCode())
1717 {
1718 $info->setFormAction($this->ctrl->getFormAction($this, "infoScreen"));
1719 $info->addSection($this->lng->txt("anonymization"));
1720 $info->addProperty("", $this->lng->txt("anonymize_anonymous_introduction"));
1721 $info->addPropertyTextinput($this->lng->txt("enter_anonymous_id"), "anonymous_id", "", 8, "infoScreen", $this->lng->txt("submit"), true);
1722 }
1723 else
1724 {
1725 // trunk/default
1726 if(!$this->object->get360Mode())
1727 {
1728 if($anonymous_code)
1729 {
1730 $info->addHiddenElement("anonymous_id", $anonymous_code);
1731 }
1732
1733 $survey_started = $this->object->isSurveyStarted($ilUser->getId(), $anonymous_code);
1734 if ($survey_started === 1)
1735 {
1736 if($ilUser->getId() != ANONYMOUS_USER_ID)
1737 {
1738 if($this->object->hasViewOwnResults())
1739 {
1740 include_once "Services/UIComponent/Button/classes/class.ilLinkButton.php";
1741 $button = ilLinkButton::getInstance();
1742 $button->setCaption("svy_view_own_results");
1743 $button->setUrl($this->ctrl->getLinkTarget($this, "viewUserResults"));
1744 $ilToolbar->addButtonInstance($button);
1745 }
1746
1747 if($this->object->hasMailOwnResults())
1748 {
1749 if($this->object->hasViewOwnResults())
1750 {
1751 $ilToolbar->addSeparator();
1752 }
1753
1754 require_once "Services/Form/classes/class.ilTextInputGUI.php";
1755 $mail = new ilTextInputGUI($this->lng->txt("email"), "mail");
1756 $mail->setSize(25);
1757 $mail->setValue($ilUser->getEmail());
1758 $ilToolbar->addInputItem($mail, true);
1759
1760 $ilToolbar->setFormAction($this->ctrl->getFormAction($this, "mailUserResults"));
1761
1762 include_once "Services/UIComponent/Button/classes/class.ilSubmitButton.php";
1763 $button = ilSubmitButton::getInstance();
1764 $button->setCaption("svy_mail_own_results");
1765 $button->setCommand("mailUserResults");
1766 $ilToolbar->addButtonInstance($button);
1767 }
1768 }
1769
1770 ilUtil::sendInfo($this->lng->txt("already_completed_survey"));
1771 }
1772 elseif ($survey_started === 0)
1773 {
1774 $big_button = array("resume", $this->lng->txt("resume_survey"));
1775 }
1776 elseif ($survey_started === FALSE)
1777 {
1778 $big_button = array("start", $this->lng->txt("start_survey"));
1779 }
1780 }
1781 // 360°
1782 else
1783 {
1784 $appr_ids = array();
1785
1786 // use given code (if proper external one)
1787 if($anonymous_code)
1788 {
1789 $anonymous_id = $this->object->getAnonymousIdByCode($anonymous_code);
1790 if($anonymous_id)
1791 {
1792 $appr_ids = $this->object->getAppraiseesToRate(0, $anonymous_id);
1793 }
1794 }
1795
1796 // registered user
1797 // if an auto-code was generated, we still have to check for the original user id
1798 if(!$appr_ids && $ilUser->getId() != ANONYMOUS_USER_ID)
1799 {
1800 $appr_ids = $this->object->getAppraiseesToRate($ilUser->getId());
1801 }
1802
1803 if(sizeof($appr_ids))
1804 {
1805 // map existing runs to appraisees
1806 $active_appraisees = array();
1807 if($participant_status)
1808 {
1809 foreach($participant_status as $item)
1810 {
1811 $active_appraisees[$item["appr_id"]] = $item["finished"];
1812 }
1813 }
1814
1815 $list = array();
1816
1817 foreach($appr_ids as $appr_id)
1818 {
1819 if($this->object->isAppraiseeClosed($appr_id))
1820 {
1821 // closed
1822 $list[$appr_id] = $this->lng->txt("survey_360_appraisee_is_closed");
1823 }
1824 else if(array_key_exists($appr_id, $active_appraisees))
1825 {
1826 // already done
1827 if($active_appraisees[$appr_id])
1828 {
1829 $list[$appr_id] = $this->lng->txt("already_completed_survey");
1830 }
1831 // resume
1832 else
1833 {
1834 $list[$appr_id] = array("resume", $this->lng->txt("resume_survey"));
1835 }
1836 }
1837 else
1838 {
1839 // start
1840 $list[$appr_id] = array("start", $this->lng->txt("start_survey"));
1841 }
1842 }
1843
1844 $info->addSection($this->lng->txt("survey_360_rate_other_appraisees"));
1845
1846 include_once "Services/User/classes/class.ilUserUtil.php";
1847 foreach($list as $appr_id => $item)
1848 {
1849 $appr_name = ilUserUtil::getNamePresentation($appr_id, false, false, "", true);
1850
1851 if(!is_array($item))
1852 {
1853 $info->addProperty($appr_name, $item);
1854 }
1855 else
1856 {
1857 $this->ctrl->setParameter($output_gui, "appr_id", $appr_id);
1858 $href = $this->ctrl->getLinkTarget($output_gui, $item[0]);
1859 $this->ctrl->setParameter($output_gui, "appr_id", "");
1860
1861 include_once "Services/UIComponent/Button/classes/class.ilLinkButton.php";
1862 $button = ilLinkButton::getInstance();
1863 $button->setCaption($item[1], false);
1864 $button->setUrl($href);
1865 $big_button_360 = '<div>'.$button->render().'</div>';
1866
1867 $info->addProperty($appr_name, $big_button_360);
1868 }
1869 }
1870 }
1871 else if(!$is_appraisee)
1872 {
1873 ilUtil::sendFailure($this->lng->txt("survey_360_no_appraisees"));
1874 }
1875 }
1876 }
1877
1878 if($this->object->get360Mode() &&
1879 $this->object->get360SelfAppraisee() &&
1880 !$this->object->isAppraisee($ilUser->getId()) &&
1881 $ilUser->getId() != ANONYMOUS_USER_ID) // #14968
1882 {
1883 $link = $this->ctrl->getLinkTargetByClass("ilsurveyparticipantsgui", "addSelfAppraisee");
1884 $link = '<a href="'.$link.'">'.$this->lng->txt("survey_360_add_self_appraisee").'</a>';
1885 $info->addProperty("&nbsp;", $link);
1886 }
1887 }
1888
1889 if($big_button)
1890 {
1891 $ilToolbar->setFormAction($this->ctrl->getFormAction($output_gui, "infoScreen"));
1892
1893 include_once "Services/UIComponent/Button/classes/class.ilSubmitButton.php";
1894 $button = ilSubmitButton::getInstance();
1895 $button->setCaption($big_button[1], false);
1896 $button->setCommand($big_button[0]);
1897 $button->setPrimary(true);
1898 $ilToolbar->addButtonInstance($button);
1899
1900 $ilToolbar->setCloseFormTag(false);
1901 $info->setOpenFormTag(false);
1902 }
1903 /* #12016
1904 else
1905 {
1906 $info->setFormAction($this->ctrl->getFormAction($output_gui, "infoScreen"));
1907 }
1908 */
1909
1910 if (strlen($this->object->getIntroduction()))
1911 {
1912 $introduction = $this->object->getIntroduction();
1913 $info->addSection($this->lng->txt("introduction"));
1914 $info->addProperty("", $this->object->prepareTextareaOutput($introduction).
1915 "<br />".$info->getHiddenToggleButton());
1916 }
1917 else
1918 {
1919 $info->addSection("");
1920 $info->addProperty("", $info->getHiddenToggleButton());
1921 }
1922
1923 $info->hideFurtherSections(false);
1924
1925 if(!$this->object->get360Mode())
1926 {
1927 $info->addSection($this->lng->txt("svy_general_properties"));
1928
1929 $info->addProperty($this->lng->txt("survey_results_anonymization"),
1930 !$this->object->hasAnonymizedResults()
1931 ? $this->lng->txt("survey_results_personalized_info")
1932 : $this->lng->txt("survey_results_anonymized_info"));
1933
1934 include_once "./Modules/Survey/classes/class.ilObjSurveyAccess.php";
1935 if ($ilAccess->checkAccess("write", "", $this->ref_id) ||
1936 ilObjSurveyAccess::_hasEvaluationAccess($this->object->getId(), $ilUser->getId()))
1937 {
1938 $info->addProperty($this->lng->txt("evaluation_access"), $this->lng->txt("evaluation_access_info"));
1939 }
1940 }
1941
1942 $info->addMetaDataSections($this->object->getId(),0, $this->object->getType());
1943
1944 $this->ctrl->forwardCommand($info);
1945 }
static setUseRelativeDates($a_status)
set use relative dates
static formatDate(ilDateTime $date)
Format a date @access public.
static getInstance()
Factory.
This class represents a text property in a property form.
static getNamePresentation($a_user_id, $a_user_image=false, $a_profile_link=false, $a_profile_back_link="", $a_force_first_lastname=false, $a_omit_login=false, $a_sortable=true)
Default behaviour is:
$txt
Definition: error.php:10

References $_POST, $_SESSION, $ilUser, $txt, ilObjSurveyAccess\_hasEvaluationAccess(), ilDatePresentation\formatDate(), ilLinkButton\getInstance(), ilSubmitButton\getInstance(), ilUserUtil\getNamePresentation(), IL_CAL_UNIX, ilUtil\sendFailure(), ilUtil\sendInfo(), and ilDatePresentation\setUseRelativeDates().

Referenced by executeCommand(), and infoScreenObject().

+ 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 1566 of file class.ilObjSurveyGUI.php.

1567 {
1568 $this->ctrl->setCmd("showSummary");
1569 $this->ctrl->setCmdClass("ilinfoscreengui");
1570 $this->infoScreen();
1571 }

References infoScreen().

+ Here is the call graph for this function:

◆ initImportForm()

ilObjSurveyGUI::initImportForm (   $a_new_type)
protected

Init object import form.

Parameters
stringnew type
Returns
ilPropertyFormGUI

Reimplemented from ilObjectGUI.

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

1291 {
1292 include_once("Services/Form/classes/class.ilPropertyFormGUI.php");
1293 $form = new ilPropertyFormGUI();
1294 $form->setTarget("_top");
1295 $form->setFormAction($this->ctrl->getFormAction($this));
1296 $form->setTitle($this->lng->txt("import_svy"));
1297
1298 include_once("./Services/Form/classes/class.ilFileInputGUI.php");
1299 $fi = new ilFileInputGUI($this->lng->txt("import_file"), "importfile");
1300 $fi->setSuffixes(array("zip"));
1301 $fi->setRequired(true);
1302 $form->addItem($fi);
1303
1304 include_once("./Modules/Survey/classes/class.ilObjSurvey.php");
1305 $svy = new ilObjSurvey();
1306 $questionspools = $svy->getAvailableQuestionpools(true, true, true);
1307
1308 $pools = new ilSelectInputGUI($this->lng->txt("select_questionpool_short"), "spl");
1309 $pools->setOptions(array(""=>$this->lng->txt("dont_use_questionpool")) + $questionspools);
1310 $pools->setRequired(false);
1311 $form->addItem($pools);
1312
1313 $form->addCommandButton("importFile", $this->lng->txt("import"));
1314 $form->addCommandButton("cancel", $this->lng->txt("cancel"));
1315
1316 return $form;
1317 }
This class represents a file property in a property form.
This class represents a property form user interface.
This class represents a selection list property in a property form.

Referenced by importFileObject().

+ Here is the caller graph for this function:

◆ initPropertiesForm()

ilObjSurveyGUI::initPropertiesForm ( )

Init survey settings form.

Returns
ilPropertyFormGUI

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

698 {
699 $template_settings = $hide_rte_switch = null;
700 $template = $this->object->getTemplate();
701 if($template)
702 {
703 include_once "Services/Administration/classes/class.ilSettingsTemplate.php";
704 $template = new ilSettingsTemplate($template);
705
706 $template_settings = $template->getSettings();
707 $hide_rte_switch = $template_settings["rte_switch"]["hide"];
708 }
709
710 include_once("./Services/Form/classes/class.ilPropertyFormGUI.php");
711 $form = new ilPropertyFormGUI();
712 $form->setFormAction($this->ctrl->getFormAction($this));
713 $form->setTableWidth("100%");
714 $form->setId("survey_properties");
715
716 // general properties
717 $header = new ilFormSectionHeaderGUI();
718 $header->setTitle($this->lng->txt("settings"));
719 $form->addItem($header);
720
721
722 // title & description (meta data)
723
724 include_once 'Services/MetaData/classes/class.ilMD.php';
725 $md_obj = new ilMD($this->object->getId(), 0, "svy");
726 $md_section = $md_obj->getGeneral();
727
728 $title = new ilTextInputGUI($this->lng->txt("title"), "title");
729 $title->setRequired(true);
730 $title->setValue($md_section->getTitle());
731 $form->addItem($title);
732
733 $ids = $md_section->getDescriptionIds();
734 if($ids)
735 {
736 $desc_obj = $md_section->getDescription(array_pop($ids));
737
738 $desc = new ilTextAreaInputGUI($this->lng->txt("description"), "description");
739 $desc->setCols(50);
740 $desc->setRows(4);
741 $desc->setValue($desc_obj->getDescription());
742 $form->addItem($desc);
743 }
744
745 // pool usage
746 $pool_usage = new ilRadioGroupInputGUI($this->lng->txt("survey_question_pool_usage"), "use_pool");
747 $opt = new ilRadioOption($this->lng->txt("survey_question_pool_usage_active"), 1);
748 $opt->setInfo($this->lng->txt("survey_question_pool_usage_active_info"));
749 $pool_usage->addOption($opt);
750 $opt = new ilRadioOption($this->lng->txt("survey_question_pool_usage_inactive"), 0);
751 $opt->setInfo($this->lng->txt("survey_question_pool_usage_inactive_info"));
752 $pool_usage->addOption($opt);
753 $pool_usage->setValue($this->object->getPoolUsage());
754 $form->addItem($pool_usage);
755
756 // 360°: appraisees
757 if($this->object->get360Mode())
758 {
759 $self_eval = new ilCheckboxInputGUI($this->lng->txt("survey_360_self_evaluation"), "self_eval");
760 $self_eval->setInfo($this->lng->txt("survey_360_self_evaluation_info"));
761 $self_eval->setChecked($this->object->get360SelfEvaluation());
762 $form->addItem($self_eval);
763
764 $self_rate = new ilCheckboxInputGUI($this->lng->txt("survey_360_self_raters"), "self_rate");
765 $self_rate->setInfo($this->lng->txt("survey_360_self_raters_info"));
766 $self_rate->setChecked($this->object->get360SelfRaters());
767 $form->addItem($self_rate);
768
769 $self_appr = new ilCheckboxInputGUI($this->lng->txt("survey_360_self_appraisee"), "self_appr");
770 $self_appr->setInfo($this->lng->txt("survey_360_self_appraisee_info"));
771 $self_appr->setChecked($this->object->get360SelfAppraisee());
772 $form->addItem($self_appr);
773 }
774
775
776 // activation
777
778 include_once "Services/Object/classes/class.ilObjectActivation.php";
779 $this->lng->loadLanguageModule('rep');
780
782 $section->setTitle($this->lng->txt('rep_activation_availability'));
783 $form->addItem($section);
784
785 // additional info only with multiple references
786 $act_obj_info = $act_ref_info = "";
787 if(sizeof(ilObject::_getAllReferences($this->object->getId())) > 1)
788 {
789 $act_obj_info = ' '.$this->lng->txt('rep_activation_online_object_info');
790 $act_ref_info = $this->lng->txt('rep_activation_access_ref_info');
791 }
792
793 $online = new ilCheckboxInputGUI($this->lng->txt('rep_activation_online'),'online');
794 $online->setInfo($this->lng->txt('svy_activation_online_info').$act_obj_info);
795 $online->setChecked($this->object->isOnline());
796 $form->addItem($online);
797
798 $act_type = new ilCheckboxInputGUI($this->lng->txt('rep_visibility_until'),'access_type');
799 // $act_type->setInfo($this->lng->txt('svy_availability_until_info'));
800 $act_type->setChecked($this->object->isActivationLimited());
801
802 $this->tpl->addJavaScript('./Services/Form/js/date_duration.js');
803 include_once "Services/Form/classes/class.ilDateDurationInputGUI.php";
804 $dur = new ilDateDurationInputGUI($this->lng->txt('rep_time_period'), "access_period");
805 $dur->setShowTime(true);
806 $date = $this->object->getActivationStartDate();
807 $dur->setStart(new ilDateTime($date ? $date : time(), IL_CAL_UNIX));
808 $dur->setStartText($this->lng->txt('rep_activation_limited_start'));
809 $date = $this->object->getActivationEndDate();
810 $dur->setEnd(new ilDateTime($date ? $date : time(), IL_CAL_UNIX));
811 $dur->setEndText($this->lng->txt('rep_activation_limited_end'));
812 $act_type->addSubItem($dur);
813
814 $visible = new ilCheckboxInputGUI($this->lng->txt('rep_activation_limited_visibility'), 'access_visiblity');
815 $visible->setInfo($this->lng->txt('svy_activation_limited_visibility_info'));
816 $visible->setChecked($this->object->getActivationVisibility());
817 $act_type->addSubItem($visible);
818
819 $form->addItem($act_type);
820
821
822 // before start
823
825 $section->setTitle($this->lng->txt('svy_settings_section_before_start'));
826 $form->addItem($section);
827
828 // introduction
829 $intro = new ilTextAreaInputGUI($this->lng->txt("introduction"), "introduction");
830 $intro->setValue($this->object->prepareTextareaOutput($this->object->getIntroduction()));
831 $intro->setRows(10);
832 $intro->setCols(80);
833 $intro->setUseRte(TRUE);
834 $intro->setInfo($this->lng->txt("survey_introduction_info"));
835 include_once "./Services/AdvancedEditing/classes/class.ilObjAdvancedEditing.php";
836 $intro->setRteTags(ilObjAdvancedEditing::_getUsedHTMLTags("survey"));
837 $intro->addPlugin("latex");
838 $intro->addButton("latex");
839 $intro->addButton("pastelatex");
840 $intro->setRTESupport($this->object->getId(), "svy", "survey", null, $hide_rte_switch);
841 $form->addItem($intro);
842
843
844 // access
845
847 $section->setTitle($this->lng->txt('svy_settings_section_access'));
848 $form->addItem($section);
849
850 // enable start date
851 $start = $this->object->getStartDate();
852 $enablestartingtime = new ilCheckboxInputGUI($this->lng->txt("start_date"), "enabled_start_date");
853 $enablestartingtime->setValue(1);
854 // $enablestartingtime->setOptionTitle($this->lng->txt("enabled"));
855 $enablestartingtime->setChecked($start);
856 // start date
857 $startingtime = new ilDateTimeInputGUI('', 'start_date');
858 $startingtime->setShowTime(true);
859 if ($start)
860 {
861 $startingtime->setDate(new ilDate($start, IL_CAL_TIMESTAMP));
862 }
863 $enablestartingtime->addSubItem($startingtime);
864 $form->addItem($enablestartingtime);
865
866 // enable end date
867 $end = $this->object->getEndDate();
868 $enableendingtime = new ilCheckboxInputGUI($this->lng->txt("end_date"), "enabled_end_date");
869 $enableendingtime->setValue(1);
870 // $enableendingtime->setOptionTitle($this->lng->txt("enabled"));
871 $enableendingtime->setChecked($end);
872 // end date
873 $endingtime = new ilDateTimeInputGUI('', 'end_date');
874 $endingtime->setShowTime(true);
875 if ($end)
876 {
877 $endingtime->setDate(new ilDate($end, IL_CAL_TIMESTAMP));
878 }
879 $enableendingtime->addSubItem($endingtime);
880 $form->addItem($enableendingtime);
881
882 // anonymization
883 if(!$this->object->get360Mode())
884 {
885 $codes = new ilCheckboxInputGUI($this->lng->txt("survey_access_codes"), "acc_codes");
886 $codes->setInfo($this->lng->txt("survey_access_codes_info"));
887 $codes->setChecked(!$this->object->isAccessibleWithoutCode());
888 $form->addItem($codes);
889
890 if ($this->object->_hasDatasets($this->object->getSurveyId()))
891 {
892 $codes->setDisabled(true);
893 }
894 }
895
896
897 // question behaviour
898
900 $section->setTitle($this->lng->txt('svy_settings_section_question_behaviour'));
901 $form->addItem($section);
902
903 // show question titles
904 $show_question_titles = new ilCheckboxInputGUI($this->lng->txt("svy_show_questiontitles"), "show_question_titles");
905 $show_question_titles->setValue(1);
906 $show_question_titles->setChecked($this->object->getShowQuestionTitles());
907 $form->addItem($show_question_titles);
908
909
910 // finishing
911
912 $info = new ilFormSectionHeaderGUI();
913 $info->setTitle($this->lng->txt("svy_settings_section_finishing"));
914 $form->addItem($info);
915
916 $view_own = new ilCheckboxInputGUI($this->lng->txt("svy_results_view_own"), "view_own");
917 $view_own->setInfo($this->lng->txt("svy_results_view_own_info"));
918 $view_own->setChecked($this->object->hasViewOwnResults());
919 $form->addItem($view_own);
920
921 $mail_own = new ilCheckboxInputGUI($this->lng->txt("svy_results_mail_own"), "mail_own");
922 $mail_own->setInfo($this->lng->txt("svy_results_mail_own_info"));
923 $mail_own->setChecked($this->object->hasMailOwnResults());
924 $form->addItem($mail_own);
925
926 // final statement
927 $finalstatement = new ilTextAreaInputGUI($this->lng->txt("outro"), "outro");
928 $finalstatement->setValue($this->object->prepareTextareaOutput($this->object->getOutro()));
929 $finalstatement->setRows(10);
930 $finalstatement->setCols(80);
931 $finalstatement->setUseRte(TRUE);
932 $finalstatement->setRteTags(ilObjAdvancedEditing::_getUsedHTMLTags("survey"));
933 $finalstatement->addPlugin("latex");
934 $finalstatement->addButton("latex");
935 $finalstatement->addButton("pastelatex");
936 $finalstatement->setRTESupport($this->object->getId(), "svy", "survey", null, $hide_rte_switch);
937 $form->addItem($finalstatement);
938
939 // mail notification
940 $mailnotification = new ilCheckboxInputGUI($this->lng->txt("mailnotification"), "mailnotification");
941 // $mailnotification->setOptionTitle($this->lng->txt("activate"));
942 $mailnotification->setInfo($this->lng->txt("svy_result_mail_notification_info")); // #11762
943 $mailnotification->setValue(1);
944 $mailnotification->setChecked($this->object->getMailNotification());
945
946 // addresses
947 $mailaddresses = new ilTextInputGUI($this->lng->txt("mailaddresses"), "mailaddresses");
948 $mailaddresses->setValue($this->object->getMailAddresses());
949 $mailaddresses->setSize(80);
950 $mailaddresses->setInfo($this->lng->txt('mailaddresses_info'));
951 $mailaddresses->setRequired(true);
952
953 // participant data
954 $participantdata = new ilTextAreaInputGUI($this->lng->txt("mailparticipantdata"), "mailparticipantdata");
955 $participantdata->setValue($this->object->getMailParticipantData());
956 $participantdata->setRows(6);
957 $participantdata->setCols(80);
958 $participantdata->setUseRte(false);
959 $participantdata->setInfo($this->lng->txt("mailparticipantdata_info"));
960
961 // #12755 - because of privacy concerns we restrict user data to a minimum
962 $placeholders = array(
963 "FIRST_NAME" => "firstname",
964 "LAST_NAME" => "lastname",
965 "LOGIN" => "login"
966 );
967 $txt = array();
968 foreach($placeholders as $placeholder => $caption)
969 {
970 $txt[] = "[".strtoupper($placeholder)."]: ".$this->lng->txt($caption);
971 }
972 $txt = implode("<br />", $txt);
973 $participantdatainfo = new ilNonEditableValueGUI($this->lng->txt("mailparticipantdata_placeholder"), "", true);
974 $participantdatainfo->setValue($txt);
975
976 $mailnotification->addSubItem($mailaddresses);
977 $mailnotification->addSubItem($participantdata);
978 $mailnotification->addSubItem($participantdatainfo);
979 $form->addItem($mailnotification);
980
981 // tutor notification - currently not available for 360°
982 if(!$this->object->get360Mode())
983 {
984 // parent course?
985 global $tree;
986 $has_parent = $tree->checkForParentType($this->object->getRefId(), "grp");
987 if(!$has_parent)
988 {
989 $has_parent = $tree->checkForParentType($this->object->getRefId(), "crs");
990 }
991 $num_inv = sizeof($this->object->getInvitedUsers());
992
993 // notification
994 $tut = new ilCheckboxInputGUI($this->lng->txt("survey_notification_tutor_setting"), "tut");
995 $tut->setChecked($this->object->getTutorNotificationStatus());
996 $form->addItem($tut);
997
998 $tut_logins = array();
999 $tuts = $this->object->getTutorNotificationRecipients();
1000 if($tuts)
1001 {
1002 foreach($tuts as $tut_id)
1003 {
1004 $tmp = ilObjUser::_lookupName($tut_id);
1005 if($tmp["login"])
1006 {
1007 $tut_logins[] = $tmp["login"];
1008 }
1009 }
1010 }
1011 $tut_ids = new ilTextInputGUI($this->lng->txt("survey_notification_tutor_recipients"), "tut_ids");
1012 $tut_ids->setDataSource($this->ctrl->getLinkTarget($this, "doAutoComplete", "", true));
1013 $tut_ids->setRequired(true);
1014 $tut_ids->setMulti(true);
1015 $tut_ids->setMultiValues($tut_logins);
1016 $tut_ids->setValue(array_shift($tut_logins));
1017 $tut->addSubItem($tut_ids);
1018
1019 $tut_grp = new ilRadioGroupInputGUI($this->lng->txt("survey_notification_target_group"), "tut_grp");
1020 $tut_grp->setRequired(true);
1021 $tut_grp->setValue($this->object->getTutorNotificationTarget());
1022 $tut->addSubItem($tut_grp);
1023
1024 $tut_grp_crs = new ilRadioOption($this->lng->txt("survey_notification_target_group_parent_course"),
1026 if(!$has_parent)
1027 {
1028 $tut_grp_crs->setInfo($this->lng->txt("survey_notification_target_group_parent_course_inactive"));
1029 }
1030 $tut_grp->addOption($tut_grp_crs);
1031
1032 $tut_grp_inv = new ilRadioOption($this->lng->txt("survey_notification_target_group_invited"),
1034 $tut_grp_inv->setInfo(sprintf($this->lng->txt("survey_notification_target_group_invited_info"), $num_inv));
1035 $tut_grp->addOption($tut_grp_inv);
1036 }
1037
1038
1039 // reminders
1040
1041 // reminder - currently not available for 360°
1042 if(!$this->object->get360Mode())
1043 {
1044 $info = new ilFormSectionHeaderGUI();
1045 $info->setTitle($this->lng->txt("svy_settings_section_reminders"));
1046 $form->addItem($info);
1047
1048 $rmd = new ilCheckboxInputGUI($this->lng->txt("survey_reminder_setting"), "rmd");
1049 $rmd->setChecked($this->object->getReminderStatus());
1050 $form->addItem($rmd);
1051
1052 $rmd_start = new ilDateTimeInputGUI($this->lng->txt("survey_reminder_start"), "rmd_start");
1053 $rmd_start->setRequired(true);
1054 $start = $this->object->getReminderStart();
1055 if($start)
1056 {
1057 $rmd_start->setDate($start);
1058 }
1059 $rmd->addSubItem($rmd_start);
1060
1061 $end = $this->object->getReminderEnd();
1062 $rmd_end = new ilDateTimeInputGUI($this->lng->txt("survey_reminder_end"), "rmd_end");
1063 $rmd_end->enableDateActivation("", "rmd_end_tgl", (bool)$end);
1064 if($end)
1065 {
1066 $rmd_end->setDate($end);
1067 }
1068 $rmd->addSubItem($rmd_end);
1069
1070 $rmd_freq = new ilNumberInputGUI($this->lng->txt("survey_reminder_frequency"), "rmd_freq");
1071 $rmd_freq->setRequired(true);
1072 $rmd_freq->setSize(3);
1073 $rmd_freq->setSuffix($this->lng->txt("survey_reminder_frequency_days"));
1074 $rmd_freq->setValue($this->object->getReminderFrequency());
1075 $rmd_freq->setMinValue(1);
1076 $rmd->addSubItem($rmd_freq);
1077
1078 $rmd_grp = new ilRadioGroupInputGUI($this->lng->txt("survey_notification_target_group"), "rmd_grp");
1079 $rmd_grp->setRequired(true);
1080 $rmd_grp->setValue($this->object->getReminderTarget());
1081 $rmd->addSubItem($rmd_grp);
1082
1083 $rmd_grp_crs = new ilRadioOption($this->lng->txt("survey_notification_target_group_parent_course"),
1085 if(!$has_parent)
1086 {
1087 $rmd_grp_crs->setInfo($this->lng->txt("survey_notification_target_group_parent_course_inactive"));
1088 }
1089 $rmd_grp->addOption($rmd_grp_crs);
1090
1091 $rmd_grp_inv = new ilRadioOption($this->lng->txt("survey_notification_target_group_invited"),
1093 $rmd_grp_inv->setInfo(sprintf($this->lng->txt("survey_notification_target_group_invited_info"), $num_inv));
1094 $rmd_grp->addOption($rmd_grp_inv);
1095 }
1096
1097
1098 // results
1099
1101 $results->setTitle($this->lng->txt("results"));
1102 $form->addItem($results);
1103
1104 // evaluation access
1105 if(!$this->object->get360Mode())
1106 {
1107 $evaluation_access = new ilRadioGroupInputGUI($this->lng->txt('evaluation_access'), "evaluation_access");
1108
1109 $option = new ilCheckboxOption($this->lng->txt("evaluation_access_off"), ilObjSurvey::EVALUATION_ACCESS_OFF, '');
1110 $option->setInfo($this->lng->txt("svy_evaluation_access_off_info"));
1111 $evaluation_access->addOption($option);
1112
1113 $option = new ilCheckboxOption($this->lng->txt("evaluation_access_all"), ilObjSurvey::EVALUATION_ACCESS_ALL, '');
1114 $option->setInfo($this->lng->txt("svy_evaluation_access_all_info"));
1115 $evaluation_access->addOption($option);
1116
1117 $option = new ilCheckboxOption($this->lng->txt("evaluation_access_participants"), ilObjSurvey::EVALUATION_ACCESS_PARTICIPANTS, '');
1118 $option->setInfo($this->lng->txt("svy_evaluation_access_participants_info"));
1119 $evaluation_access->addOption($option);
1120
1121 $evaluation_access->setValue($this->object->getEvaluationAccess());
1122 $form->addItem($evaluation_access);
1123
1124
1125 $anonymization_options = new ilRadioGroupInputGUI($this->lng->txt("survey_results_anonymization"), "anonymization_options");
1126
1127 $option = new ilCheckboxOption($this->lng->txt("survey_results_personalized"), "statpers");
1128 $option->setInfo($this->lng->txt("survey_results_personalized_info"));
1129 $anonymization_options->addOption($option);
1130
1131 $option = new ilCheckboxOption($this->lng->txt("survey_results_anonymized"), "statanon");
1132 $option->setInfo($this->lng->txt("survey_results_anonymized_info"));
1133 $anonymization_options->addOption($option);
1134 $anonymization_options->setValue($this->object->hasAnonymizedResults()
1135 ? "statanon"
1136 : "statpers");
1137 $form->addItem($anonymization_options);
1138
1139 if ($this->object->_hasDatasets($this->object->getSurveyId()))
1140 {
1141 $anonymization_options->setDisabled(true);
1142 }
1143 }
1144 // 360°
1145 else
1146 {
1147 $ts_results = new ilRadioGroupInputGUI($this->lng->txt("survey_360_results"), "ts_res");
1148 $ts_results->setValue($this->object->get360Results());
1149
1150 $option = new ilRadioOption($this->lng->txt("survey_360_results_none"), ilObjSurvey::RESULTS_360_NONE);
1151 $option->setInfo($this->lng->txt("survey_360_results_none_info"));
1152 $ts_results->addOption($option);
1153
1154 $option = new ilRadioOption($this->lng->txt("survey_360_results_own"), ilObjSurvey::RESULTS_360_OWN);
1155 $option->setInfo($this->lng->txt("survey_360_results_own_info"));
1156 $ts_results->addOption($option);
1157
1158 $option = new ilRadioOption($this->lng->txt("survey_360_results_all"), ilObjSurvey::RESULTS_360_ALL);
1159 $option->setInfo($this->lng->txt("survey_360_results_all_info"));
1160 $ts_results->addOption($option);
1161 $form->addItem($ts_results);
1162 }
1163
1164
1165 // competence service activation for 360 mode
1166
1167 include_once("./Services/Skill/classes/class.ilSkillManagementSettings.php");
1168 $skmg_set = new ilSkillManagementSettings();
1169 if($this->object->get360Mode() && $skmg_set->isActivated())
1170 {
1171 $other = new ilFormSectionHeaderGUI();
1172 $other->setTitle($this->lng->txt("other"));
1173 $form->addItem($other);
1174
1175 $skill_service = new ilCheckboxInputGUI($this->lng->txt("survey_activate_skill_service"), "skill_service");
1176 $skill_service->setInfo($this->lng->txt("survey_activate_skill_service_info"));
1177 $skill_service->setChecked($this->object->get360SkillService());
1178 $form->addItem($skill_service);
1179 }
1180
1181
1182 $form->addCommandButton("saveProperties", $this->lng->txt("save"));
1183
1184 // remove items when using template
1185 if($template_settings)
1186 {
1187 foreach($template_settings as $id => $item)
1188 {
1189 if($item["hide"])
1190 {
1191 $form->removeItemByPostVar($id);
1192 }
1193 }
1194 }
1195
1196 return $form;
1197 }
$section
Definition: Utf8Test.php:84
const IL_CAL_TIMESTAMP
This class represents a checkbox property in a property form.
This class represents an option in a checkbox group.
input GUI for a time span (start and end date)
This class represents a date/time property in a property form.
Class for single dates.
This class represents a section header in a property form.
This class represents a non editable value in a property form.
This class represents a number property in a property form.
& _getUsedHTMLTags($a_module="")
Returns an array of all allowed HTML tags for text editing.
const NOTIFICATION_INVITED_USERS
const NOTIFICATION_PARENT_COURSE
const EVALUATION_ACCESS_ALL
const EVALUATION_ACCESS_OFF
static _lookupName($a_user_id)
lookup user name
static _getAllReferences($a_id)
get all reference ids of object
This class represents a property in a property form.
This class represents an option in a radio group.
This class represents a text area property in a property form.
$results

References $results, $section, ilObjectGUI\$tree, $txt, ilObject\_getAllReferences(), ilObjAdvancedEditing\_getUsedHTMLTags(), ilObjUser\_lookupName(), ilObjSurvey\EVALUATION_ACCESS_ALL, ilObjSurvey\EVALUATION_ACCESS_OFF, ilObjSurvey\EVALUATION_ACCESS_PARTICIPANTS, IL_CAL_TIMESTAMP, IL_CAL_UNIX, ilObjSurvey\NOTIFICATION_INVITED_USERS, ilObjSurvey\NOTIFICATION_PARENT_COURSE, ilObjSurvey\RESULTS_360_ALL, ilObjSurvey\RESULTS_360_NONE, and ilObjSurvey\RESULTS_360_OWN.

Referenced by propertiesObject(), and savePropertiesObject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ mailUserResultsObject()

ilObjSurveyGUI::mailUserResultsObject ( )

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

2263 {
2264 global $ilUser;
2265
2266 $anonymous_code = $_SESSION["anonymous_id"][$this->object->getId()];
2267 $active_id = $this->object->getActiveID($ilUser->getId(), $anonymous_code, 0);
2268 if($this->object->isSurveyStarted($ilUser->getId(), $anonymous_code) !== 1 ||
2269 !$active_id)
2270 {
2271 $this->ctrl->redirect($this, "infoScreen");
2272 }
2273
2274 $recipient = $_POST["mail"];
2275 if(!ilUtil::is_email($recipient))
2276 {
2277 $this->ctrl->redirect($this, "infoScreen");
2278 }
2279
2280 $this->sendUserResultsMail($active_id, $recipient);
2281
2282 ilUtil::sendSuccess($this->lng->txt("mail_sent"), true);
2283 $this->ctrl->redirect($this, "infoScreen");
2284 }
sendUserResultsMail($a_active_id, $a_recipient)
static is_email($a_email)
This preg-based function checks whether an e-mail address is formally valid.

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

+ Here is the call graph for this function:

◆ propertiesObject()

ilObjSurveyGUI::propertiesObject ( ilPropertyFormGUI  $a_form = null)

Display and fill the properties form of the test.

@access public

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

1205 {
1206 global $ilTabs, $ilHelp;
1207
1208 $this->handleWriteAccess();
1209
1210 $ilTabs->activateTab("settings");
1211
1212
1213 if ($this->object->get360Mode())
1214 {
1215 $ilHelp->setScreenId("settings_360");
1216 }
1217
1218 if(!$a_form)
1219 {
1220 $a_form = $this->initPropertiesForm();
1221 }
1222
1223 // using template?
1224 $message = "";
1225 if($this->object->getTemplate())
1226 {
1227 $link = $this->ctrl->getLinkTarget($this, "confirmResetTemplate");
1228 $link = "<a href=\"".$link."\">".$this->lng->txt("survey_using_template_link")."</a>";
1229 $message = "<div style=\"margin-top:10px\">".
1230 $this->tpl->getMessageHTML(sprintf($this->lng->txt("survey_using_template"),
1231 ilSettingsTemplate::lookupTitle($this->object->getTemplate()), $link), "info"). // #10651
1232 "</div>";
1233 }
1234
1235 $this->tpl->setContent($a_form->getHTML().$message);
1236 }
initPropertiesForm()
Init survey settings form.
static lookupTitle($a_id)
Lookup title.

References handleWriteAccess(), initPropertiesForm(), and ilSettingsTemplate\lookupTitle().

Referenced by savePropertiesObject().

+ 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 1275 of file class.ilObjSurveyGUI.php.

1276 {
1277 $this->object->setTemplate(null);
1278 $this->object->saveToDB();
1279
1280 ilUtil::sendSuccess($this->lng->txt("survey_template_reset"), true);
1281 $this->ctrl->redirect($this, "properties");
1282 }

References ilUtil\sendSuccess().

+ Here is the call graph for this function:

◆ savePropertiesObject()

ilObjSurveyGUI::savePropertiesObject ( )

Save the survey properties.

Save the survey properties

@access private

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

446 {
447 global $rbacsystem;
448
449 $form = $this->initPropertiesForm();
450 if ($form->checkInput())
451 {
452 $valid = true;
453
454 if(!$this->object->get360Mode())
455 {
456 if($form->getInput("tut"))
457 {
458 // check if given "tutors" have write permission
459 $tut_ids =array();
460 $tut_logins = $form->getInput("tut_ids");
461 foreach($tut_logins as $tut_login)
462 {
463 $tut_id = ilObjUser::_lookupId($tut_login);
464 if($tut_id && $rbacsystem->checkAccessOfUser($tut_id, "write", $this->object->getRefId()))
465 {
466 $tut_ids[] = $tut_id;
467 }
468 }
469 if(!$tut_ids)
470 {
471 $tut_ids = $form->getItemByPostVar("tut_ids");
472 $tut_ids->setAlert($this->lng->txt("survey_notification_tutor_recipients_invalid"));
473 $valid = false;
474 }
475 }
476 }
477
478 if($valid)
479 {
480 if(!$this->object->get360Mode())
481 {
482 if($form->getInput("rmd"))
483 {
484 $rmd_start = $form->getInput("rmd_start");
485 $rmd_start = $rmd_start["date"];
486 $rmd_end = null;
487 if($form->getInput("rmd_end_tgl"))
488 {
489 $rmd_end = $form->getInput("rmd_end");
490 $rmd_end = $rmd_end["date"];
491 if($rmd_start > $rmd_end)
492 {
493 $tmp = $rmd_start;
494 $rmd_start = $rmd_end;
495 $rmd_end = $tmp;
496 }
497 $rmd_end = new ilDate($rmd_end, IL_CAL_DATE);
498 }
499 $rmd_start = new ilDate($rmd_start, IL_CAL_DATE);
500
501 $this->object->setReminderStatus(true);
502 $this->object->setReminderStart($rmd_start);
503 $this->object->setReminderEnd($rmd_end);
504 $this->object->setReminderFrequency($form->getInput("rmd_freq"));
505 $this->object->setReminderTarget($form->getInput("rmd_grp"));
506 }
507 else
508 {
509 $this->object->setReminderStatus(false);
510 }
511
512 if($form->getInput("tut"))
513 {
514 $this->object->setTutorNotificationStatus(true);
515 $this->object->setTutorNotificationRecipients($tut_ids); // see above
516 $this->object->setTutorNotificationTarget($form->getInput("tut_grp"));
517 }
518 else
519 {
520 $this->object->setTutorNotificationStatus(false);
521 }
522 }
523
524 // #10055
525 if ($_POST['online'] && count($this->object->questions) == 0)
526 {
527 $_POST['online'] = null;
528 ilUtil::sendFailure($this->lng->txt("cannot_switch_to_online_no_questions"), true);
529 }
530
531 $template_settings = null;
532 $template = $this->object->getTemplate();
533 if($template)
534 {
535 include_once "Services/Administration/classes/class.ilSettingsTemplate.php";
536 $template = new ilSettingsTemplate($template);
537 $template_settings = $template->getSettings();
538 }
539
540 include_once 'Services/MetaData/classes/class.ilMD.php';
541 $md_obj =& new ilMD($this->object->getId(), 0, "svy");
542 $md_section = $md_obj->getGeneral();
543
544 // title
545 $md_section->setTitle(ilUtil::stripSlashes($_POST['title']));
546 $md_section->update();
547
548 // Description
549 $md_desc_ids = $md_section->getDescriptionIds();
550 if($md_desc_ids)
551 {
552 $md_desc = $md_section->getDescription(array_pop($md_desc_ids));
553 $md_desc->setDescription(ilUtil::stripSlashes($_POST['description']));
554 $md_desc->update();
555 }
556
557 $this->object->setViewOwnResults($_POST["view_own"]);
558 $this->object->setMailOwnResults($_POST["mail_own"]);
559
560 // both are saved in object, too
561 $this->object->setTitle(ilUtil::stripSlashes($_POST['title']));
562 $this->object->setDescription(ilUtil::stripSlashes($_POST['description']));
563 $this->object->update();
564
565 $this->object->setStatus($_POST['online']);
566
567 // activation
568 if($_POST["access_type"])
569 {
570 $this->object->setActivationLimited(true);
571 $this->object->setActivationVisibility($_POST["access_visiblity"]);
572
573 $period = $form->getItemByPostVar("access_period");
574 $this->object->setActivationStartDate($period->getStart()->get(IL_CAL_UNIX));
575 $this->object->setActivationEndDate($period->getEnd()->get(IL_CAL_UNIX));
576 }
577 else
578 {
579 $this->object->setActivationLimited(false);
580 }
581
582
583 if(!$template_settings["enabled_start_date"]["hide"])
584 {
585 if ($_POST["enabled_start_date"])
586 {
587 $this->object->setStartDateAndTime($_POST["start_date"]['date'], $_POST["start_date"]['time']);
588 }
589 else
590 {
591 $this->object->setStartDate(null);
592 }
593 }
594
595 if(!$template_settings["enabled_end_date"]["hide"])
596 {
597 if ($_POST["enabled_end_date"])
598 {
599 $this->object->setEndDateAndTime($_POST["end_date"]['date'], $_POST["end_date"]['time']);
600 }
601 else
602 {
603 $this->object->setEndDate(null);
604 }
605 }
606
607
608 include_once "./Services/AdvancedEditing/classes/class.ilObjAdvancedEditing.php";
609 $introduction = $_POST["introduction"];
610 $this->object->setIntroduction($introduction);
611 $outro = $_POST["outro"];
612 $this->object->setOutro($outro);
613
614 if(!$template_settings["show_question_titles"]["hide"])
615 {
616 $this->object->setShowQuestionTitles($_POST["show_question_titles"]);
617 }
618
619 if(!$template_settings["use_pool"]["hide"])
620 {
621 $this->object->setPoolUsage($_POST["use_pool"]);
622 }
623
624 $this->object->setMailNotification($_POST['mailnotification']);
625 $this->object->setMailAddresses($_POST['mailaddresses']);
626 $this->object->setMailParticipantData($_POST['mailparticipantdata']);
627
628 // 360°
629 if($this->object->get360Mode())
630 {
631 $this->object->set360SelfEvaluation((bool)$_POST["self_eval"]);
632 $this->object->set360SelfAppraisee((bool)$_POST["self_appr"]);
633 $this->object->set360SelfRaters((bool)$_POST["self_rate"]);
634 $this->object->set360Results((int)$_POST["ts_res"]);;
635 $this->object->set360SkillService((int)$_POST["skill_service"]);
636 }
637 else
638 {
639 $this->object->setEvaluationAccess($_POST["evaluation_access"]);
640
641 $hasDatasets = $this->object->_hasDatasets($this->object->getSurveyId());
642 if (!$hasDatasets)
643 {
644 $codes = (bool)$_POST["acc_codes"];
645 $anon = ((string)$_POST["anonymization_options"] == "statanon");
646 if (!$anon)
647 {
648 if (!$codes)
649 {
650 $this->object->setAnonymize(ilObjSurvey::ANONYMIZE_OFF);
651 }
652 else
653 {
654 $this->object->setAnonymize(ilObjSurvey::ANONYMIZE_CODE_ALL);
655 }
656 }
657 else
658 {
659 if ($codes)
660 {
661 $this->object->setAnonymize(ilObjSurvey::ANONYMIZE_ON);
662 }
663 else
664 {
665 $this->object->setAnonymize(ilObjSurvey::ANONYMIZE_FREEACCESS);
666 }
667 }
668
669 // if settings were changed get rid of existing code
670 unset($_SESSION["anonymous_id"][$this->object->getId()]);
671 }
672 }
673
674 $this->object->saveToDb();
675
676 if (strcmp($_SESSION["info"], "") != 0)
677 {
678 ilUtil::sendSuccess($_SESSION["info"] . "<br />" . $this->lng->txt("settings_saved"), true);
679 }
680 else
681 {
682 ilUtil::sendSuccess($this->lng->txt("settings_saved"), true);
683 }
684 $this->ctrl->redirect($this, "properties");
685 }
686 }
687
688 $form->setValuesByPost();
689 $this->propertiesObject($form);
690 }
const IL_CAL_DATE
propertiesObject(ilPropertyFormGUI $a_form=null)
Display and fill the properties form of the test.
const ANONYMIZE_FREEACCESS
static _lookupId($a_user_str)
lookup id by login
$valid

References $_POST, $_SESSION, $valid, ilObjUser\_lookupId(), ilObjSurvey\ANONYMIZE_CODE_ALL, ilObjSurvey\ANONYMIZE_FREEACCESS, ilObjSurvey\ANONYMIZE_OFF, ilObjSurvey\ANONYMIZE_ON, IL_CAL_DATE, IL_CAL_UNIX, initPropertiesForm(), propertiesObject(), ilUtil\sendFailure(), ilUtil\sendSuccess(), and ilUtil\stripSlashes().

+ Here is the call graph for this function:

◆ sendUserResultsMail()

ilObjSurveyGUI::sendUserResultsMail (   $a_active_id,
  $a_recipient 
)

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

2228 {
2229 global $ilUser;
2230
2231 $finished = $this->object->getSurveyParticipants(array($a_active_id));
2232 $finished = array_pop($finished);
2233 $finished = ilDatePresentation::formatDate(new ilDateTime($finished["finished_tstamp"], IL_CAL_UNIX));
2234
2235 require_once "Services/Mail/classes/class.ilMail.php";
2236 require_once "Services/Link/classes/class.ilLink.php";
2237
2238 $body = ilMail::getSalutation($ilUser->getId())."\n\n";
2239 $body .= $this->lng->txt("svy_mail_own_results_body")."\n";
2240 $body .= "\n".$this->lng->txt("obj_svy").": ".$this->object->getTitle()."\n";
2241 $body .= ilLink::_getLink($this->object->getRefId(), "svy")."\n";
2242 $body .= "\n".$this->lng->txt("survey_results_finished").": ".$finished."\n\n";
2243
2244 $body .= $this->getUserResultsPlain($a_active_id);
2245
2246 // $body .= ilMail::_getAutoGeneratedMessageString($this->lng);
2248
2249 require_once "Services/Mail/classes/class.ilMail.php";
2250 $mail = new ilMail(ANONYMOUS_USER_ID);
2251 $mail->sendMimeMail(
2252 $a_recipient,
2253 null,
2254 null,
2255 sprintf($this->lng->txt("svy_mail_own_results_subject"), $this->object->getTitle()),
2256 $body,
2257 null,
2258 true
2259 );
2260 }
Class Mail this class handles base functions for mail handling.
static getSalutation($a_usr_id, $a_language=null)
Get salutation.
static _getInstallationSignature()
Static getter for the installation signature.
getUserResultsPlain($a_active_id)

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

Referenced by mailUserResultsObject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ viewUserResultsObject()

ilObjSurveyGUI::viewUserResultsObject ( )
protected

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

2089 {
2090 global $ilUser, $tpl, $ilTabs;
2091
2092 $anonymous_code = $_SESSION["anonymous_id"][$this->object->getId()];
2093 $active_id = $this->object->getActiveID($ilUser->getId(), $anonymous_code, 0);
2094 if($this->object->isSurveyStarted($ilUser->getId(), $anonymous_code) !== 1 ||
2095 !$active_id)
2096 {
2097 $this->ctrl->redirect($this, "infoScreen");
2098 }
2099
2100 $ilTabs->clearTargets();
2101 $ilTabs->setBackTarget($this->lng->txt("btn_back"),
2102 $this->ctrl->getLinkTarget($this, "infoScreen"));
2103
2104 $html = $this->getUserResultsTable($active_id);
2105 $tpl->setContent($html);
2106 }
getUserResultsTable($a_active_id)

References $_SESSION, $ilUser, ilObjectGUI\$tpl, and getUserResultsTable().

+ Here is the call graph for this function:

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