ILIAS  release_5-1 Revision 5.0.0-5477-g43f3e3fab5f
SurveyQuestionGUI Class Reference

Basic class for all survey question types. More...

+ Inheritance diagram for SurveyQuestionGUI:
+ Collaboration diagram for SurveyQuestionGUI:

Public Member Functions

 __construct ($a_id=-1)
 
 setQuestionTabs ()
 
executeCommand ()
 
 _getGUIClassNameForId ($a_q_id)
 
 _getClassNameForQType ($q_type)
 
 getQuestionType ()
 Returns the question type string. More...
 
 setBackUrl ($a_url)
 
 setQuestionTabsForClass ($guiclass)
 
 getPrintView ($question_title=1, $show_questiontext=1)
 
 preview ()
 Creates a preview of the question. More...
 
 getWorkingForm ($working_data="", $question_title=1, $show_questiontext=1, $error_message="", $survey_id=null)
 
 getCumulatedResultsDetails ($survey_id, $counter, $finished_ids)
 
 material ($checkonly=FALSE)
 Material tab of the survey questions. More...
 
 deleteMaterial ()
 
 addMaterial ()
 Add materials to a question. More...
 
 removeMaterial ()
 
 cancelExplorer ()
 
 addPG ()
 
 addST ()
 
 addGIT ()
 
 linkChilds ()
 
 savePhrase ($a_reload=false)
 Creates an output to save the current answers as a phrase. More...
 
 confirmSavePhrase ()
 Save a new phrase to the database. More...
 

Static Public Member Functions

static & _getQuestionGUI ($questiontype, $question_id=-1)
 Creates a question gui representation. More...
 

Data Fields

 $object
 

Protected Member Functions

 initObject ()
 
 outQuestionText ($template)
 
 initEditForm ()
 
 addCommandButtons ($a_form)
 
 editQuestion (ilPropertyFormGUI $a_form=null)
 
 saveSync ()
 
 saveReturn ()
 
 saveForm ()
 
 save ($a_return=false, $a_sync=false)
 
 copySyncForm ()
 
 syncCopies ()
 
 originalSyncForm ()
 
 sync ()
 
 cancelSync ()
 
 redirectAfterSaving ($a_return=false)
 Redirect to calling survey or to edit form. More...
 
 cancel ()
 
 validateEditForm (ilPropertyFormGUI $a_form)
 
 addFieldsToEditForm (ilPropertyFormGUI $a_form)
 
 importEditFormValues (ilPropertyFormGUI $a_form)
 
 getPrintViewQuestionTitle ($question_title=1)
 
 getMaterialOutput ()
 Creates the HTML output of the question material(s) More...
 
 renderChart ($a_id, $a_variables)
 
 initPhrasesForm ()
 
 addPhrase (ilPropertyFormGUI $a_form=null)
 Creates an output for the addition of phrases. More...
 
 addSelectedPhrase ()
 
 renderStatisticsDetailsTable (array $a_head, array $a_rows, array $a_foot=null)
 

Protected Attributes

 $tpl
 
 $lng
 
 $ctrl
 
 $cumulated
 
 $parent_url
 

Detailed Description

Basic class for all survey question types.

The SurveyQuestionGUI class defines and encapsulates basic methods and attributes for survey question types to be used for all parent classes.

Author
Helmut Schottmüller helmu.nosp@m.t.sc.nosp@m.hottm.nosp@m.uell.nosp@m.er@ma.nosp@m.c.co.nosp@m.m
Version
$Id$

Definition at line 34 of file class.SurveyQuestionGUI.php.

Constructor & Destructor Documentation

◆ __construct()

SurveyQuestionGUI::__construct (   $a_id = -1)

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

45 {
46 global $lng, $tpl, $ilCtrl;
47
48 $this->lng = $lng;
49 $this->tpl = $tpl;
50 $this->ctrl = $ilCtrl;
51 $this->ctrl->saveParameter($this, "q_id");
52 $this->ctrl->setParameterByClass($_GET["cmdClass"], "sel_question_types", $_GET["sel_question_types"]);
53 $this->cumulated = array();
54
55 $this->initObject();
56
57 if($a_id > 0)
58 {
59 $this->object->loadFromDb($a_id);
60 }
61 }
$_GET["client_id"]
global $ilCtrl
Definition: ilias.php:18

References $_GET, $ilCtrl, $lng, $tpl, and initObject().

+ Here is the call graph for this function:

Member Function Documentation

◆ _getClassNameForQType()

SurveyQuestionGUI::_getClassNameForQType (   $q_type)

Definition at line 112 of file class.SurveyQuestionGUI.php.

113 {
114 return $q_type;
115 }

Referenced by _getGUIClassNameForId().

+ Here is the caller graph for this function:

◆ _getGUIClassNameForId()

SurveyQuestionGUI::_getGUIClassNameForId (   $a_q_id)

Definition at line 103 of file class.SurveyQuestionGUI.php.

104 {
105 include_once "./Modules/SurveyQuestionPool/classes/class.SurveyQuestion.php";
106 include_once "./Modules/SurveyQuestionPool/classes/class.SurveyQuestionGUI.php";
107 $q_type = SurveyQuestion::_getQuestiontype($a_q_id);
108 $class_name = SurveyQuestionGUI::_getClassNameForQType($q_type);
109 return $class_name;
110 }

References _getClassNameForQType().

Referenced by ilSurveyQuestionsTableGUI\fillRow().

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

◆ _getQuestionGUI()

static & SurveyQuestionGUI::_getQuestionGUI (   $questiontype,
  $question_id = -1 
)
static

Creates a question gui representation.

Creates a question gui representation and returns the alias to the question gui note: please do not use $this inside this method to allow static calls

Parameters
string$question_typeThe question type as it is used in the language database
integer$question_idThe database ID of an existing question to load it into ASS_QuestionGUI
Returns
object The alias to the question object @access public

Definition at line 90 of file class.SurveyQuestionGUI.php.

91 {
92 include_once "./Modules/SurveyQuestionPool/classes/class.SurveyQuestion.php";
93 if ((!$questiontype) and ($question_id > 0))
94 {
95 $questiontype = SurveyQuestion::_getQuestiontype($question_id);
96 }
97 SurveyQuestion::_includeClass($questiontype, 1);
98 $question_type_gui = $questiontype . "GUI";
99 $question = new $question_type_gui($question_id);
100 return $question;
101 }
static _includeClass($question_type, $gui=0)
Include the php class file for a given question type.

References SurveyQuestion\_includeClass().

Referenced by ilSurveyPageGUI\addQuestion(), ilObjSurveyQuestionPoolGUI\createQuestionObject(), ilSurveyEditorGUI\executeCommand(), ilObjSurveyQuestionPoolGUI\executeCommand(), ilSurveyEditorGUI\executeCreateQuestionObject(), ilObjSurvey\getQuestionGUI(), and ilObjSurveyQuestionPoolGUI\previewObject().

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

◆ addCommandButtons()

SurveyQuestionGUI::addCommandButtons (   $a_form)
protected

Definition at line 278 of file class.SurveyQuestionGUI.php.

279 {
280 $a_form->addCommandButton("saveReturn", $this->lng->txt("save_return"));
281 $a_form->addCommandButton("save", $this->lng->txt("save"));
282
283 // pool question?
284 if(ilObject::_lookupType($this->object->getObjId()) == "spl")
285 {
286 if($this->object->hasCopies())
287 {
288 $a_form->addCommandButton("saveSync", $this->lng->txt("svy_save_sync"));
289 }
290 }
291 }
static _lookupType($a_id, $a_reference=false)
lookup object type

References ilObject\_lookupType().

Referenced by initEditForm().

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

◆ addFieldsToEditForm()

SurveyQuestionGUI::addFieldsToEditForm ( ilPropertyFormGUI  $a_form)
abstractprotected

◆ addGIT()

SurveyQuestionGUI::addGIT ( )

Definition at line 872 of file class.SurveyQuestionGUI.php.

873 {
874 $this->object->addInternalLink("il__git_" . $_GET["git"]);
875 unset($_SESSION["link_new_type"]);
876 unset($_SESSION["search_link_type"]);
877 ilUtil::sendSuccess($this->lng->txt("material_added_successfully"), true);
878 $this->ctrl->redirect($this, "material");
879 }
$_SESSION["AccountId"]
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.

References $_GET, $_SESSION, and ilUtil\sendSuccess().

+ Here is the call graph for this function:

◆ addMaterial()

SurveyQuestionGUI::addMaterial ( )

Add materials to a question.

Definition at line 794 of file class.SurveyQuestionGUI.php.

795 {
796 global $tree, $ilTabs, $ilToolbar;
797
798 $ilTabs->activateTab("material");
799
800 $ilToolbar->addButton($this->lng->txt("cancel"),
801 $this->ctrl->getLinkTarget($this, "material"));
802
803 if (strlen($_SESSION["link_new_type"]) || !$this->material(true))
804 {
805 include_once("./Modules/SurveyQuestionPool/classes/class.ilMaterialExplorer.php");
806 switch ($_POST["internalLinkType"])
807 {
808 case "lm":
809 $_SESSION["link_new_type"] = "lm";
810 $_SESSION["search_link_type"] = "lm";
811 break;
812 case "glo":
813 $_SESSION["link_new_type"] = "glo";
814 $_SESSION["search_link_type"] = "glo";
815 break;
816 case "st":
817 $_SESSION["link_new_type"] = "lm";
818 $_SESSION["search_link_type"] = "st";
819 break;
820 case "pg":
821 $_SESSION["link_new_type"] = "lm";
822 $_SESSION["search_link_type"] = "pg";
823 break;
824 }
825
826 $exp = new ilMaterialExplorer($this, 'addMaterial', $_SESSION["link_new_type"]);
827 $exp->setPathOpen((int)$_GET["ref_id"]);
828 if (!$exp->handleCommand())
829 {
830 include_once "Services/UIComponent/Panel/classes/class.ilPanelGUI.php";
831 $panel = ilPanelGUI::getInstance();
832 $panel->setHeading($this->lng->txt("select_object_to_link"));
833 $panel->setBody($exp->getHTML());
834
835 $this->tpl->setContent($panel->getHTML());
836 }
837 }
838 }
material($checkonly=FALSE)
Material tab of the survey questions.
static getInstance()
Get instance.
$_POST['username']
Definition: cron.php:12

References $_GET, $_POST, $_SESSION, ilPanelGUI\getInstance(), and material().

+ Here is the call graph for this function:

◆ addPG()

SurveyQuestionGUI::addPG ( )

Definition at line 854 of file class.SurveyQuestionGUI.php.

855 {
856 $this->object->addInternalLink("il__pg_" . $_GET["pg"]);
857 unset($_SESSION["link_new_type"]);
858 unset($_SESSION["search_link_type"]);
859 ilUtil::sendSuccess($this->lng->txt("material_added_successfully"), true);
860 $this->ctrl->redirect($this, "material");
861 }

References $_GET, $_SESSION, and ilUtil\sendSuccess().

+ Here is the call graph for this function:

◆ addPhrase()

SurveyQuestionGUI::addPhrase ( ilPropertyFormGUI  $a_form = null)
protected

Creates an output for the addition of phrases.

Definition at line 1028 of file class.SurveyQuestionGUI.php.

1029 {
1030 global $ilTabs;
1031
1032 $ilTabs->activateTab("edit_properties");
1033
1034 if(!$a_form)
1035 {
1036 $result = $this->saveForm();
1037 if($result)
1038 {
1039 $this->object->saveToDb();
1040 }
1041
1042 $a_form = $this->initPhrasesForm();
1043 }
1044
1045 $this->tpl->setContent($a_form->getHTML());
1046 }
$result

References $result, initPhrasesForm(), and saveForm().

Referenced by addSelectedPhrase().

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

◆ addSelectedPhrase()

SurveyQuestionGUI::addSelectedPhrase ( )
protected

Definition at line 1048 of file class.SurveyQuestionGUI.php.

1049 {
1050 $form = $this->initPhrasesForm();
1051 if($form->checkInput())
1052 {
1053 $phrase_id = $form->getInput("phrases");
1054
1055 $valid = true;
1056 if (strcmp($this->object->getPhrase($phrase_id), "dp_standard_numbers") != 0)
1057 {
1058 $this->object->addPhrase($phrase_id);
1059 }
1060 else
1061 {
1062 $min = $form->getInput("lower_limit");
1063 $max = $form->getInput("upper_limit");
1064
1065 if($max <= $min)
1066 {
1067 $max_field = $form->getItemByPostVar("upper_limit");
1068 $max_field->setAlert($this->lng->txt("upper_limit_must_be_greater"));
1069 $valid = false;
1070 }
1071 else
1072 {
1073 $this->object->addStandardNumbers($min, $max);
1074 }
1075 }
1076
1077 if($valid)
1078 {
1079 $this->object->saveToDb();
1080
1081 ilUtil::sendSuccess($this->lng->txt('phrase_added'), true);
1082 $this->ctrl->redirect($this, 'editQuestion');
1083 }
1084 }
1085
1086 $form->setValuesByPost();
1087 $this->addPhrase($form);
1088 }
addPhrase(ilPropertyFormGUI $a_form=null)
Creates an output for the addition of phrases.
$valid

References $valid, addPhrase(), initPhrasesForm(), and ilUtil\sendSuccess().

+ Here is the call graph for this function:

◆ addST()

SurveyQuestionGUI::addST ( )

Definition at line 863 of file class.SurveyQuestionGUI.php.

864 {
865 $this->object->addInternalLink("il__st_" . $_GET["st"]);
866 unset($_SESSION["link_new_type"]);
867 unset($_SESSION["search_link_type"]);
868 ilUtil::sendSuccess($this->lng->txt("material_added_successfully"), true);
869 $this->ctrl->redirect($this, "material");
870 }

References $_GET, $_SESSION, and ilUtil\sendSuccess().

+ Here is the call graph for this function:

◆ cancel()

SurveyQuestionGUI::cancel ( )
protected

Definition at line 526 of file class.SurveyQuestionGUI.php.

527 {
528 if ($this->parent_url)
529 {
530 ilUtil::redirect($this->parent_url);
531 }
532 else
533 {
534 $this->ctrl->redirectByClass("ilobjsurveyquestionpoolgui", "questions");
535 }
536 }
static redirect($a_script)
http redirect to other script

References ilUtil\redirect().

+ Here is the call graph for this function:

◆ cancelExplorer()

SurveyQuestionGUI::cancelExplorer ( )

Definition at line 847 of file class.SurveyQuestionGUI.php.

848 {
849 unset($_SESSION["link_new_type"]);
850 ilUtil::sendInfo($this->lng->txt("msg_cancel"), true);
851 $this->ctrl->redirect($this, 'material');
852 }
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.

References $_SESSION, and ilUtil\sendInfo().

+ Here is the call graph for this function:

◆ cancelSync()

SurveyQuestionGUI::cancelSync ( )
protected

Definition at line 483 of file class.SurveyQuestionGUI.php.

484 {
485 ilUtil::sendInfo($this->lng->txt("question_changed_in_survey_only"), true);
486 $this->redirectAfterSaving($_REQUEST["rtrn"]);
487 }
redirectAfterSaving($a_return=false)
Redirect to calling survey or to edit form.
if($_REQUEST['ilias_path']) define('ILIAS_HTTP_PATH' $_REQUEST['ilias_path']
Definition: index.php:7

References $_REQUEST, redirectAfterSaving(), and ilUtil\sendInfo().

+ Here is the call graph for this function:

◆ confirmSavePhrase()

SurveyQuestionGUI::confirmSavePhrase ( )

Save a new phrase to the database.

@access public

Definition at line 1153 of file class.SurveyQuestionGUI.php.

1154 {
1155 $title = $_POST["phrase_title"];
1156
1157 $valid = true;
1158 if (!trim($title))
1159 {
1160 ilUtil::sendFailure($this->lng->txt("qpl_savephrase_empty"));
1161 $valid = false;
1162 }
1163 else if ($this->object->phraseExists($title))
1164 {
1165 ilUtil::sendFailure($this->lng->txt("qpl_savephrase_exists"));
1166 $valid = false;
1167 }
1168
1169 if($valid)
1170 {
1171 $this->object->savePhrase($title);
1172
1173 ilUtil::sendSuccess($this->lng->txt("phrase_saved"), true);
1174 $this->ctrl->redirect($this, "editQuestion");
1175 }
1176
1177 $this->savePhrase(true);
1178 }
savePhrase($a_reload=false)
Creates an output to save the current answers as a phrase.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.

References $_POST, $valid, savePhrase(), ilUtil\sendFailure(), and ilUtil\sendSuccess().

+ Here is the call graph for this function:

◆ copySyncForm()

SurveyQuestionGUI::copySyncForm ( )
protected

Definition at line 390 of file class.SurveyQuestionGUI.php.

391 {
392 global $ilTabs;
393
394 $ilTabs->activateTab("edit_properties");
395
396 include_once "Modules/SurveyQuestionPool/classes/class.ilSurveySyncTableGUI.php";
397 $tbl = new ilSurveySyncTableGUI($this, "copySyncForm", $this->object);
398
399 $this->tpl->setContent($tbl->getHTML());
400 }
Survey sync table GUI class.
$tbl
Definition: example_048.php:81

References $tbl.

Referenced by syncCopies().

+ Here is the caller graph for this function:

◆ deleteMaterial()

SurveyQuestionGUI::deleteMaterial ( )

Definition at line 777 of file class.SurveyQuestionGUI.php.

778 {
779 if (is_array($_POST['idx']))
780 {
781 $this->object->deleteMaterials($_POST['idx']);
782 ilUtil::sendSuccess($this->lng->txt('materials_deleted'), true);
783 }
784 else
785 {
786 ilUtil::sendFailure($this->lng->txt('no_checkbox'), true);
787 }
788 $this->ctrl->redirect($this, 'material');
789 }

References $_POST, ilUtil\sendFailure(), and ilUtil\sendSuccess().

+ Here is the call graph for this function:

◆ editQuestion()

SurveyQuestionGUI::editQuestion ( ilPropertyFormGUI  $a_form = null)
protected

Definition at line 293 of file class.SurveyQuestionGUI.php.

294 {
295 global $ilTabs;
296
297 $ilTabs->activateTab("edit_properties");
298
299 if(!$a_form)
300 {
301 $a_form = $this->initEditForm();
302 }
303 $this->tpl->setContent($a_form->getHTML());
304 }

References initEditForm().

Referenced by removeMaterial(), save(), and saveForm().

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

◆ executeCommand()

& SurveyQuestionGUI::executeCommand ( )

Definition at line 66 of file class.SurveyQuestionGUI.php.

67 {
68 $cmd = $this->ctrl->getCmd();
69 $next_class = $this->ctrl->getNextClass($this);
70 switch($next_class)
71 {
72 default:
73 $ret =& $this->$cmd();
74 break;
75 }
76 return $ret;
77 }
$cmd
Definition: sahs_server.php:35

References $cmd, and $ret.

◆ getCumulatedResultsDetails()

SurveyQuestionGUI::getCumulatedResultsDetails (   $survey_id,
  $counter,
  $finished_ids 
)
abstract

◆ getMaterialOutput()

SurveyQuestionGUI::getMaterialOutput ( )
protected

Creates the HTML output of the question material(s)

Definition at line 610 of file class.SurveyQuestionGUI.php.

611 {
612 if (count($this->object->getMaterial()))
613 {
614 $template = new ilTemplate("tpl.il_svy_qpl_material.html", TRUE, TRUE, "Modules/SurveyQuestionPool");
615 foreach ($this->object->getMaterial() as $material)
616 {
617 $template->setCurrentBlock('material');
618 switch ($material->type)
619 {
620 case 0:
621 $href = SurveyQuestion::_getInternalLinkHref($material->internal_link, $_GET['ref_id']);
622 $template->setVariable('MATERIAL_TYPE', 'internallink');
623 $template->setVariable('MATERIAL_HREF', $href);
624 break;
625 }
626 $template->setVariable('MATERIAL_TITLE', (strlen($material->title)) ? ilUtil::prepareFormOutput($material->title) : $this->lng->txt('material'));
627 $template->setVariable('TEXT_AVAILABLE_MATERIALS', $this->lng->txt('material'));
628 $template->parseCurrentBlock();
629 }
630 return $template->get();
631 }
632 return "";
633 }
_getInternalLinkHref($target="", $a_parent_ref_id=null)
special template class to simplify handling of ITX/PEAR
static prepareFormOutput($a_str, $a_strip=false)
prepares string output for html forms @access public

References $_GET, SurveyQuestion\_getInternalLinkHref(), and ilUtil\prepareFormOutput().

Referenced by SurveyMatrixQuestionGUI\getWorkingForm(), SurveyMetricQuestionGUI\getWorkingForm(), SurveyMultipleChoiceQuestionGUI\getWorkingForm(), SurveySingleChoiceQuestionGUI\getWorkingForm(), and SurveyTextQuestionGUI\getWorkingForm().

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

◆ getPrintView()

SurveyQuestionGUI::getPrintView (   $question_title = 1,
  $show_questiontext = 1 
)
abstract

◆ getPrintViewQuestionTitle()

SurveyQuestionGUI::getPrintViewQuestionTitle (   $question_title = 1)
protected

Definition at line 548 of file class.SurveyQuestionGUI.php.

549 {
550 switch ($question_title)
551 {
552 case 1:
553 $title = ilUtil::prepareFormOutput($this->object->getTitle());
554 break;
555
556 case 2:
557 $title = ilUtil::prepareFormOutput($this->object->getLabel());
558 break;
559
560 case 3:
561 $title = ilUtil::prepareFormOutput($this->object->getTitle());
562 if(trim($this->object->getLabel()))
563 {
564 $title .= ' <span class="questionLabel">('.ilUtil::prepareFormOutput($this->object->getLabel()).')</span>';
565 }
566 break;
567 }
568 return $title;
569 }

References ilUtil\prepareFormOutput().

Referenced by SurveyMatrixQuestionGUI\getPrintView(), SurveyMetricQuestionGUI\getPrintView(), SurveyMultipleChoiceQuestionGUI\getPrintView(), SurveySingleChoiceQuestionGUI\getPrintView(), and SurveyTextQuestionGUI\getPrintView().

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

◆ getQuestionType()

SurveyQuestionGUI::getQuestionType ( )

Returns the question type string.

Returns
string The question type string @access public

Definition at line 123 of file class.SurveyQuestionGUI.php.

124 {
125 return $this->object->getQuestionType();
126 }

Referenced by setQuestionTabsForClass().

+ Here is the caller graph for this function:

◆ getWorkingForm()

SurveyQuestionGUI::getWorkingForm (   $working_data = "",
  $question_title = 1,
  $show_questiontext = 1,
  $error_message = "",
  $survey_id = null 
)
abstract

Reimplemented in SurveyMatrixQuestionGUI, SurveyMetricQuestionGUI, SurveyMultipleChoiceQuestionGUI, SurveySingleChoiceQuestionGUI, and SurveyTextQuestionGUI.

Referenced by preview().

+ Here is the caller graph for this function:

◆ importEditFormValues()

SurveyQuestionGUI::importEditFormValues ( ilPropertyFormGUI  $a_form)
abstractprotected

Reimplemented in SurveyMatrixQuestionGUI, SurveyMetricQuestionGUI, SurveyMultipleChoiceQuestionGUI, SurveySingleChoiceQuestionGUI, and SurveyTextQuestionGUI.

Referenced by saveForm().

+ Here is the caller graph for this function:

◆ initEditForm()

SurveyQuestionGUI::initEditForm ( )
protected

Definition at line 212 of file class.SurveyQuestionGUI.php.

213 {
214 include_once("./Services/Form/classes/class.ilPropertyFormGUI.php");
215 $form = new ilPropertyFormGUI();
216 $form->setFormAction($this->ctrl->getFormAction($this, "save"));
217 $form->setTitle($this->lng->txt($this->getQuestionType()));
218 $form->setMultipart(FALSE);
219 $form->setTableWidth("100%");
220 // $form->setId("essay");
221
222 // title
223 $title = new ilTextInputGUI($this->lng->txt("title"), "title");
224 $title->setRequired(TRUE);
225 $form->addItem($title);
226
227 // label
228 $label = new ilTextInputGUI($this->lng->txt("label"), "label");
229 $label->setInfo($this->lng->txt("label_info"));
230 $label->setRequired(false);
231 $form->addItem($label);
232
233 // author
234 $author = new ilTextInputGUI($this->lng->txt("author"), "author");
235 $author->setRequired(TRUE);
236 $form->addItem($author);
237
238 // description
239 $description = new ilTextInputGUI($this->lng->txt("description"), "description");
240 $description->setRequired(FALSE);
241 $form->addItem($description);
242
243 // questiontext
244 $question = new ilTextAreaInputGUI($this->lng->txt("question"), "question");
245 $question->setRequired(TRUE);
246 $question->setRows(10);
247 $question->setCols(80);
248 $question->setUseRte(TRUE);
249 include_once "./Services/AdvancedEditing/classes/class.ilObjAdvancedEditing.php";
250 $question->setRteTags(ilObjAdvancedEditing::_getUsedHTMLTags("survey"));
251 $question->addPlugin("latex");
252 $question->addButton("latex");
253 $question->addButton("pastelatex");
254 $question->setRTESupport($this->object->getId(), "spl", "survey");
255 $form->addItem($question);
256
257 // obligatory
258 $shuffle = new ilCheckboxInputGUI($this->lng->txt("obligatory"), "obligatory");
259 $shuffle->setValue(1);
260 $shuffle->setRequired(FALSE);
261 $form->addItem($shuffle);
262
263 $this->addFieldsToEditForm($form);
264
265 $this->addCommandButtons($form);
266
267 // values
268 $title->setValue($this->object->getTitle());
269 $label->setValue($this->object->label);
270 $author->setValue($this->object->getAuthor());
271 $description->setValue($this->object->getDescription());
272 $question->setValue($this->object->prepareTextareaOutput($this->object->getQuestiontext()));
273 $shuffle->setChecked($this->object->getObligatory());
274
275 return $form;
276 }
addFieldsToEditForm(ilPropertyFormGUI $a_form)
This class represents a checkbox property in a property form.
& _getUsedHTMLTags($a_module="")
Returns an array of all allowed HTML tags for text editing.
This class represents a property form user interface.
This class represents a text area property in a property form.
This class represents a text property in a property form.

References ilObjAdvancedEditing\_getUsedHTMLTags(), addCommandButtons(), and addFieldsToEditForm().

Referenced by editQuestion(), and saveForm().

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

◆ initObject()

SurveyQuestionGUI::initObject ( )
abstractprotected

◆ initPhrasesForm()

SurveyQuestionGUI::initPhrasesForm ( )
protected

Definition at line 984 of file class.SurveyQuestionGUI.php.

985 {
986 include_once("./Services/Form/classes/class.ilPropertyFormGUI.php");
987 $form = new ilPropertyFormGUI();
988 $form->setFormAction($this->ctrl->getFormAction($this, "addSelectedPhrase"));
989 $form->setTitle($this->lng->txt("add_phrase"));
990 // $form->setDescription($this->lng->txt("add_phrase_introduction"));
991
992 $group = new ilRadioGroupInputGUI($this->lng->txt("phrase"), "phrases");
993 $group->setRequired(true);
994 $form->addItem($group);
995
996 include_once "./Modules/SurveyQuestionPool/classes/class.ilSurveyPhrases.php";
997 foreach (ilSurveyPhrases::_getAvailablePhrases() as $phrase_id => $phrase_array)
998 {
999 $categories = ilSurveyPhrases::_getCategoriesForPhrase($phrase_id);
1000
1001 $opt = new ilRadioOption($phrase_array["title"], $phrase_id);
1002 $opt->setInfo(join($categories, ","));
1003 $group->addOption($opt);
1004
1005 if($phrase_array["org_title"] == "dp_standard_numbers")
1006 {
1007 $min = new ilNumberInputGUI($this->lng->txt("lower_limit"), "lower_limit");
1008 $min->setRequired(true);
1009 $min->setSize(5);
1010 $opt->addSubItem($min);
1011
1012 $max = new ilNumberInputGUI($this->lng->txt("upper_limit"), "upper_limit");
1013 $max->setRequired(true);
1014 $max->setSize(5);
1015 $opt->addSubItem($max);
1016 }
1017 }
1018
1019 $form->addCommandButton("addSelectedPhrase", $this->lng->txt("add_phrase"));
1020 $form->addCommandButton("editQuestion", $this->lng->txt("cancel"));
1021
1022 return $form;
1023 }
This class represents a number property in a property form.
This class represents a property in a property form.
This class represents an option in a radio group.
static & _getCategoriesForPhrase($phrase_id)
Gets the available categories for a given phrase.
static & _getAvailablePhrases($useronly=0)
Gets the available phrases from the database.

References ilSurveyPhrases\_getAvailablePhrases(), and ilSurveyPhrases\_getCategoriesForPhrase().

Referenced by addPhrase(), and addSelectedPhrase().

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

◆ linkChilds()

SurveyQuestionGUI::linkChilds ( )

Definition at line 881 of file class.SurveyQuestionGUI.php.

882 {
883 global $ilTabs;
884
885 $selectable_items = array();
886
887 $source_id = $_GET["source_id"];
888
889 switch ($_SESSION["search_link_type"])
890 {
891 case "pg":
892 include_once "./Modules/LearningModule/classes/class.ilLMPageObject.php";
893 include_once("./Modules/LearningModule/classes/class.ilObjContentObjectGUI.php");
894 $cont_obj_gui =& new ilObjContentObjectGUI("", $source_id, true);
895 $cont_obj = $cont_obj_gui->object;
896 $pages = ilLMPageObject::getPageList($cont_obj->getId());
897 foreach($pages as $page)
898 {
899 if($page["type"] == $_SESSION["search_link_type"])
900 {
901 $selectable_items[] = array(
902 "item_type" => $page["type"]
903 ,"item_id" => $page["obj_id"]
904 ,"title" => $page["title"]
905 );
906 }
907 }
908 break;
909
910 case "st":
911 include_once("./Modules/LearningModule/classes/class.ilObjContentObjectGUI.php");
912 $cont_obj_gui =& new ilObjContentObjectGUI("", $source_id, true);
913 $cont_obj = $cont_obj_gui->object;
914 // get all chapters
915 $ctree =& $cont_obj->getLMTree();
916 $nodes = $ctree->getSubtree($ctree->getNodeData($ctree->getRootId()));
917 foreach($nodes as $node)
918 {
919 if($node["type"] == $_SESSION["search_link_type"])
920 {
921 $selectable_items[] = array(
922 "item_type" => $node["type"]
923 ,"item_id" => $node["obj_id"]
924 ,"title" => $node["title"]
925 );
926 }
927 }
928 break;
929
930 case "glo":
931 include_once "./Modules/Glossary/classes/class.ilObjGlossary.php";
932 $glossary =& new ilObjGlossary($source_id, true);
933 // get all glossary items
934 $terms = $glossary->getTermList();
935 foreach($terms as $term)
936 {
937 $selectable_items[] = array(
938 "item_type" => "GIT"
939 ,"item_id" => $term["id"]
940 ,"title" => $term["term"]
941 );
942 }
943 break;
944
945 case "lm":
946 $this->object->addInternalLink("il__lm_" . $source_id);
947 break;
948 }
949
950 if(sizeof($selectable_items))
951 {
952 $ilTabs->activateTab("material");
953 $this->ctrl->setParameter($this, "q_id", $this->object->getId());
954 $this->ctrl->setParameter($this, "source_id", $source_id);
955
956 include_once "Modules/SurveyQuestionPool/classes/tables/class.SurveyMaterialsSourceTableGUI.php";
957 $tbl = new SurveyMaterialsSourceTableGUI($this, "linkChilds", "addMaterial");
958 $tbl->setData($selectable_items);
959 $this->tpl->setContent($tbl->getHTML());
960 }
961 else
962 {
963 if($_SESSION["search_link_type"] == "lm")
964 {
965 ilUtil::sendSuccess($this->lng->txt("material_added_successfully"), true);
966
967 unset($_SESSION["link_new_type"]);
968 unset($_SESSION["search_link_type"]);
969 $this->ctrl->redirect($this, "material");
970 }
971 else
972 {
973 ilUtil::sendFailure($this->lng->txt("material_added_empty"), true);
974 $this->ctrl->redirect($this, "addMaterial");
975 }
976 }
977 }
TableGUI class for survey question source materials.
getPageList($lm_id)
static
Class ilObjContentObjectGUI.
Class ilObjGlossary.

References $_GET, $_SESSION, $tbl, ilLMPageObject\getPageList(), ilUtil\sendFailure(), and ilUtil\sendSuccess().

+ Here is the call graph for this function:

◆ material()

SurveyQuestionGUI::material (   $checkonly = FALSE)

Material tab of the survey questions.

Definition at line 711 of file class.SurveyQuestionGUI.php.

712 {
713 global $rbacsystem, $ilTabs;
714
715 $ilTabs->activateTab("material");
716
717 $add_html = '';
718 if ($rbacsystem->checkAccess('write', $_GET['ref_id']))
719 {
720 include_once("./Services/Form/classes/class.ilPropertyFormGUI.php");
721 $form = new ilPropertyFormGUI();
722 $form->setFormAction($this->ctrl->getFormAction($this));
723 $form->setTitle($this->lng->txt('add_material'));
724 $form->setMultipart(FALSE);
725 $form->setTableWidth("100%");
726 $form->setId("material");
727
728 // material
729 $material = new ilRadioGroupInputGUI($this->lng->txt("material"), "internalLinkType");
730 $material->setRequired(true);
731 $material->addOption(new ilRadioOption($this->lng->txt('obj_lm'), "lm"));
732 $material->addOption(new ilRadioOption($this->lng->txt('obj_st'), "st"));
733 $material->addOption(new ilRadioOption($this->lng->txt('obj_pg'), "pg"));
734 $material->addOption(new ilRadioOption($this->lng->txt('glossary_term'), "glo"));
735 $form->addItem($material);
736
737 $form->addCommandButton("addMaterial", $this->lng->txt("add"));
738
739 $errors = false;
740
741 if ($checkonly)
742 {
743 $form->setValuesByPost();
744 $errors = !$form->checkInput();
745 if ($errors) $checkonly = false;
746 }
747 $add_html = $form->getHTML();
748 }
749
750
751 $mat_html = "";
752 if (count($this->object->getMaterial()))
753 {
754 include_once "./Modules/SurveyQuestionPool/classes/tables/class.ilSurveyMaterialsTableGUI.php";
755 $table_gui = new ilSurveyMaterialsTableGUI($this, 'material', (($rbacsystem->checkAccess('write', $_GET['ref_id']) ? true : false)));
756 $data = array();
757 foreach ($this->object->getMaterial() as $material)
758 {
759 switch ($material->type)
760 {
761 case 0:
762 $href = SurveyQuestion::_getInternalLinkHref($material->internal_link, $_GET['ref_id']);
763 $type = $this->lng->txt('internal_link');
764 break;
765 }
766 $title = (strlen($material->title)) ? ilUtil::prepareFormOutput($material->title) : $this->lng->txt('material');
767 array_push($data, array('href' => $href, 'title' => $title, 'type' => $type));
768 }
769 $table_gui->setData($data);
770 $mat_html = $table_gui->getHTML();
771 }
772
773 if (!$checkonly) $this->tpl->setVariable("ADM_CONTENT", $add_html . $mat_html);
774 return $errors;
775 }
TableGUI class for survey question materials.
$data
$errors

References $_GET, $data, $errors, SurveyQuestion\_getInternalLinkHref(), and ilUtil\prepareFormOutput().

Referenced by addMaterial().

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

◆ originalSyncForm()

SurveyQuestionGUI::originalSyncForm ( )
protected

Definition at line 452 of file class.SurveyQuestionGUI.php.

453 {
454 global $ilTabs;
455
456 $ilTabs->activateTab("edit_properties");
457
458 $this->ctrl->saveParameter($this, "rtrn");
459
460 include_once("./Services/Utilities/classes/class.ilConfirmationGUI.php");
461 $cgui = new ilConfirmationGUI();
462 $cgui->setHeaderText($this->lng->txt("confirm_sync_questions"));
463
464 $cgui->setFormAction($this->ctrl->getFormAction($this, "confirmRemoveQuestions"));
465 $cgui->setCancel($this->lng->txt("no"), "cancelSync");
466 $cgui->setConfirm($this->lng->txt("yes"), "sync");
467
468 $this->tpl->setContent($cgui->getHTML());
469 }
Confirmation screen class.

◆ outQuestionText()

SurveyQuestionGUI::outQuestionText (   $template)
protected

Definition at line 128 of file class.SurveyQuestionGUI.php.

129 {
130 $questiontext = $this->object->getQuestiontext();
131 if (preg_match("/^<.[\\>]?>(.*?)<\\/.[\\>]*?>$/", $questiontext, $matches))
132 {
133 $questiontext = $matches[1];
134 }
135 $template->setVariable("QUESTIONTEXT", $this->object->prepareTextareaOutput($questiontext, TRUE));
136 if ($this->object->getObligatory($survey_id))
137 {
138 $template->setVariable("OBLIGATORY_TEXT", ' *');
139 }
140 }

Referenced by SurveyMatrixQuestionGUI\getPrintView(), SurveyMetricQuestionGUI\getPrintView(), SurveyMultipleChoiceQuestionGUI\getPrintView(), SurveySingleChoiceQuestionGUI\getPrintView(), SurveyTextQuestionGUI\getPrintView(), SurveyMatrixQuestionGUI\getWorkingForm(), SurveyMetricQuestionGUI\getWorkingForm(), SurveyMultipleChoiceQuestionGUI\getWorkingForm(), SurveySingleChoiceQuestionGUI\getWorkingForm(), and SurveyTextQuestionGUI\getWorkingForm().

+ Here is the caller graph for this function:

◆ preview()

SurveyQuestionGUI::preview ( )

Creates a preview of the question.

@access private

Definition at line 576 of file class.SurveyQuestionGUI.php.

577 {
578 global $ilTabs;
579
580 $ilTabs->activateTab("preview");
581
582 $tpl = new ilTemplate("tpl.il_svy_qpl_preview.html", true, true, "Modules/SurveyQuestionPool");
583
584 if ($this->object->getObligatory())
585 {
586 $tpl->setCurrentBlock("required");
587 $tpl->setVariable("TEXT_REQUIRED", $this->lng->txt("required_field"));
588 $tpl->parseCurrentBlock();
589 }
590
591 $tpl->setVariable("QUESTION_OUTPUT", $this->getWorkingForm());
592
593 include_once "Services/UIComponent/Panel/classes/class.ilPanelGUI.php";
594 $panel = ilPanelGUI::getInstance();
595 $panel->setBody($tpl->get());
596
597 $this->tpl->setContent($panel->getHTML());
598 }
getWorkingForm($working_data="", $question_title=1, $show_questiontext=1, $error_message="", $survey_id=null)

References $tpl, ilPanelGUI\getInstance(), and getWorkingForm().

+ Here is the call graph for this function:

◆ redirectAfterSaving()

SurveyQuestionGUI::redirectAfterSaving (   $a_return = false)
protected

Redirect to calling survey or to edit form.

Parameters
bool$a_return

Definition at line 494 of file class.SurveyQuestionGUI.php.

495 {
496 // return?
497 if($a_return)
498 {
499 // to calling survey
500 if($this->parent_url)
501 {
502 $addurl = "";
503 if (strlen($_GET["new_for_survey"]))
504 {
505 $addurl = "&new_id=" . $_GET["q_id"];
506 }
507 ilUtil::redirect(str_replace("&amp;", "&", $this->parent_url) . $addurl);
508 }
509 // to pool
510 else
511 {
512 $this->ctrl->setParameterByClass("ilObjSurveyQuestionPoolGUI", "q_id_table_nav", $_SESSION['q_id_table_nav']);
513 $this->ctrl->redirectByClass("ilObjSurveyQuestionPoolGUI", "questions");
514 }
515 }
516 // stay in form
517 else
518 {
519 $this->ctrl->setParameterByClass($_GET["cmdClass"], "q_id", $this->object->getId());
520 $this->ctrl->setParameterByClass($_GET["cmdClass"], "sel_question_types", $_GET["sel_question_types"]);
521 $this->ctrl->setParameterByClass($_GET["cmdClass"], "new_for_survey", $_GET["new_for_survey"]);
522 $this->ctrl->redirectByClass($_GET["cmdClass"], "editQuestion");
523 }
524 }

References $_GET, $_SESSION, and ilUtil\redirect().

Referenced by cancelSync(), save(), sync(), and syncCopies().

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

◆ removeMaterial()

SurveyQuestionGUI::removeMaterial ( )

Definition at line 840 of file class.SurveyQuestionGUI.php.

841 {
842 $this->object->material = array();
843 $this->object->saveToDb();
844 $this->editQuestion();
845 }
editQuestion(ilPropertyFormGUI $a_form=null)

References editQuestion().

+ Here is the call graph for this function:

◆ renderChart()

SurveyQuestionGUI::renderChart (   $a_id,
  $a_variables 
)
protected

Reimplemented in SurveyMetricQuestionGUI.

Definition at line 642 of file class.SurveyQuestionGUI.php.

643 {
644 include_once "Services/Chart/classes/class.ilChart.php";
646 $chart->setsize(700, 400);
647
648 $legend = new ilChartLegend();
649 $chart->setLegend($legend);
650 $chart->setYAxisToInteger(true);
651
652 $data = $chart->getDataInstance(ilChartGrid::DATA_BARS);
653 $data->setLabel($this->lng->txt("category_nr_selected"));
654 $data->setBarOptions(0.5, "center");
655
656 $max = 5;
657
658 if(sizeof($a_variables) <= $max)
659 {
660 if($a_variables)
661 {
662 $labels = array();
663 foreach($a_variables as $idx => $points)
664 {
665 $data->addPoint($idx, $points["selected"]);
666 $labels[$idx] = ($idx+1).". ".ilUtil::prepareFormOutput($points["title"]);
667 }
668 $chart->addData($data);
669
670 $chart->setTicks($labels, false, true);
671 }
672
673 return "<div style=\"margin:10px\">".$chart->getHTML()."</div>";
674 }
675 else
676 {
677 $chart_legend = array();
678 $labels = array();
679 foreach($a_variables as $idx => $points)
680 {
681 $data->addPoint($idx, $points["selected"]);
682 $labels[$idx] = ($idx+1).".";
683 $chart_legend[($idx+1)] = ilUtil::prepareFormOutput($points["title"]);
684 }
685 $chart->addData($data);
686
687 $chart->setTicks($labels, false, true);
688
689 $legend = "<table>";
690 foreach($chart_legend as $number => $caption)
691 {
692 $legend .= "<tr valign=\"top\"><td>".$number.".</td><td>".$caption."</td></tr>";
693 }
694 $legend .= "</table>";
695
696 return "<div style=\"margin:10px\"><table><tr valign=\"bottom\"><td>".
697 $chart->getHTML()."</td><td class=\"small\" style=\"padding-left:15px\">".
698 $legend."</td></tr></table></div>";
699 }
700 }
static getInstanceByType($a_type, $a_id)
Get type instance.
const TYPE_GRID
$legend

References $data, $legend, ilChartGrid\DATA_BARS, ilChart\getInstanceByType(), ilUtil\prepareFormOutput(), and ilChart\TYPE_GRID.

Referenced by SurveyMatrixQuestionGUI\getCumulatedResultsDetails(), SurveyMultipleChoiceQuestionGUI\getCumulatedResultsDetails(), and SurveySingleChoiceQuestionGUI\getCumulatedResultsDetails().

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

◆ renderStatisticsDetailsTable()

SurveyQuestionGUI::renderStatisticsDetailsTable ( array  $a_head,
array  $a_rows,
array  $a_foot = null 
)
protected

Definition at line 1180 of file class.SurveyQuestionGUI.php.

1181 {
1182 $html = array();
1183 $html[] = '<div class="ilTableOuter table-responsive">';
1184 $html[] = '<table class="table table-striped">';
1185
1186 $html[] = "<thead>";
1187 $html[] = "<tr>";
1188 foreach($a_head as $col)
1189 {
1190 $col = trim($col);
1191 $html[] = "<th>";
1192 $html[] = ($col != "") ? $col : "&nbsp;";
1193 $html[] = "</th>";
1194 }
1195 $html[] = "</tr>";
1196 $html[] = "</thead>";
1197
1198 $html[] = "<tbody>";
1199 foreach($a_rows as $row)
1200 {
1201 $html[] = "<tr>";
1202 foreach($row as $col)
1203 {
1204 $col = trim($col);
1205 $html[] = "<td>";
1206 $html[] = ($col != "") ? $col : "&nbsp;";
1207 $html[] = "</td>";
1208 }
1209 $html[] = "</tr>";
1210 }
1211 $html[] = "</tbody>";
1212
1213 if($a_foot)
1214 {
1215 $html[] = "<tfoot>";
1216 $html[] = "<tr>";
1217 foreach($a_foot as $col)
1218 {
1219 $col = trim($col);
1220 $html[] = "<td>";
1221 $html[] = ($col != "") ? $col : "&nbsp;";
1222 $html[] = "</td>";
1223 }
1224 $html[] = "</tr>";
1225 $html[] = "</tfoot>";
1226 }
1227
1228 $html[] = "</table>";
1229 $html[] = "</div>";
1230 return implode("\n", $html);
1231 }
$html
Definition: example_001.php:87

References $html, and $row.

Referenced by SurveyMatrixQuestionGUI\getCumulatedResultsDetails(), SurveyMetricQuestionGUI\getCumulatedResultsDetails(), SurveyMultipleChoiceQuestionGUI\getCumulatedResultsDetails(), and SurveySingleChoiceQuestionGUI\getCumulatedResultsDetails().

+ Here is the caller graph for this function:

◆ save()

SurveyQuestionGUI::save (   $a_return = false,
  $a_sync = false 
)
protected

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

345 {
346 global $ilUser;
347
348 if($this->saveForm())
349 {
350 // #13784
351 if ($a_return &&
352 !SurveyQuestion::_isComplete($this->object->getId()))
353 {
354 ilUtil::sendFailure($this->lng->txt("survey_error_insert_incomplete_question"));
355 return $this->editQuestion();
356 }
357
358 $ilUser->setPref("svy_lastquestiontype", $this->object->getQuestionType());
359 $ilUser->writePref("svy_lastquestiontype", $this->object->getQuestionType());
360
361 $originalexists = $this->object->_questionExists($this->object->original_id);
362 $this->ctrl->setParameter($this, "q_id", $this->object->getId());
363 include_once "./Modules/SurveyQuestionPool/classes/class.SurveyQuestion.php";
364
365 // pool question?
366 if($a_sync)
367 {
368 ilUtil::sendSuccess($this->lng->txt("msg_obj_modified"), true);
369 $this->ctrl->redirect($this, 'copySyncForm');
370 }
371 else
372 {
373 // form: update original pool question, too?
374 if ($originalexists &&
375 SurveyQuestion::_isWriteable($this->object->original_id, $ilUser->getId()))
376 {
377 if($a_return)
378 {
379 $this->ctrl->setParameter($this, 'rtrn', 1);
380 }
381 $this->ctrl->redirect($this, 'originalSyncForm');
382 }
383 }
384
385 ilUtil::sendSuccess($this->lng->txt("msg_obj_modified"), true);
386 $this->redirectAfterSaving($a_return);
387 }
388 }
_isWriteable($question_id, $user_id)
Returns true if the question is writeable by a certain user.
_isComplete($question_id)
Checks whether the question is complete or not.
global $ilUser
Definition: imgupload.php:15

References $ilUser, SurveyQuestion\_isComplete(), SurveyQuestion\_isWriteable(), editQuestion(), redirectAfterSaving(), saveForm(), ilUtil\sendFailure(), and ilUtil\sendSuccess().

Referenced by saveReturn(), and saveSync().

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

◆ saveForm()

SurveyQuestionGUI::saveForm ( )
protected

Definition at line 316 of file class.SurveyQuestionGUI.php.

317 {
318 $form = $this->initEditForm();
319 if($form->checkInput())
320 {
321 if ($this->validateEditForm($form))
322 {
323 $this->object->setTitle($form->getInput("title"));
324 $this->object->label = ($form->getInput("label"));
325 $this->object->setAuthor($form->getInput("author"));
326 $this->object->setDescription($form->getInput("description"));
327 $this->object->setQuestiontext($form->getInput("question"));
328 $this->object->setObligatory($form->getInput("obligatory"));
329
330 $this->importEditFormValues($form);
331
332 // will save both core and extended data
333 $this->object->saveToDb();
334
335 return true;
336 }
337 }
338
339 $form->setValuesByPost();
340 $this->editQuestion($form);
341 return false;
342 }
validateEditForm(ilPropertyFormGUI $a_form)
importEditFormValues(ilPropertyFormGUI $a_form)

References editQuestion(), importEditFormValues(), initEditForm(), and validateEditForm().

Referenced by addPhrase(), save(), and savePhrase().

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

◆ savePhrase()

SurveyQuestionGUI::savePhrase (   $a_reload = false)

Creates an output to save the current answers as a phrase.

@access public

Definition at line 1095 of file class.SurveyQuestionGUI.php.

1096 {
1097 global $ilTabs, $ilToolbar;
1098
1099 $ilTabs->activateTab("edit_properties");
1100
1101 if (!$a_reload)
1102 {
1103 $result = $this->saveForm();
1104 if ($result)
1105 {
1106 $this->object->saveToDb();
1107 }
1108 }
1109
1110 include_once("./Services/Form/classes/class.ilTextInputGUI.php");
1111 $txt = new ilTextInputGUI($this->lng->txt("enter_phrase_title"), "phrase_title");
1112 $ilToolbar->addInputItem($txt, true);
1113 $ilToolbar->addFormButton($this->lng->txt("confirm"), "confirmSavePhrase");
1114 $ilToolbar->setFormAction($this->ctrl->getFormAction($this));
1115
1116 include_once "./Modules/SurveyQuestionPool/classes/tables/class.ilSurveySavePhraseTableGUI.php";
1117 $table_gui = new ilSurveySavePhraseTableGUI($this, 'editQuestion');
1118 $table_gui->setDescription($this->lng->txt("save_phrase_introduction"));
1119
1120 // matrix?
1121 if(method_exists($this->object, "getCategories"))
1122 {
1123 $categories = $this->object->getCategories();
1124 }
1125 else
1126 {
1127 $categories = $this->object->getColumns();
1128 }
1129
1130 $data = array();
1131 for ($i = 0; $i < $categories->getCategoryCount(); $i++)
1132 {
1133 $cat = $categories->getCategory($i);
1134
1135 $data[] = array(
1136 "answer" => $cat->title,
1137 "other" => $cat->other,
1138 "scale" => $cat->scale,
1139 "neutral" => $cat->neutral
1140 );
1141 }
1142 $table_gui->setData($data);
1143 $_SESSION['save_phrase_data'] = $data; // :TODO: see savePhrase()
1144
1145 $this->tpl->setContent($table_gui->getHTML());
1146 }
$txt
Definition: error.php:12

References $_SESSION, $data, $result, $txt, and saveForm().

Referenced by confirmSavePhrase().

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

◆ saveReturn()

SurveyQuestionGUI::saveReturn ( )
protected

Definition at line 311 of file class.SurveyQuestionGUI.php.

312 {
313 $this->save(true);
314 }
save($a_return=false, $a_sync=false)

References save().

+ Here is the call graph for this function:

◆ saveSync()

SurveyQuestionGUI::saveSync ( )
protected

Definition at line 306 of file class.SurveyQuestionGUI.php.

307 {
308 $this->save($_REQUEST["rtrn"], true);
309 }

References $_REQUEST, and save().

+ Here is the call graph for this function:

◆ setBackUrl()

SurveyQuestionGUI::setBackUrl (   $a_url)

Definition at line 142 of file class.SurveyQuestionGUI.php.

143 {
144 $this->parent_url = $a_url;
145 }

◆ setQuestionTabs()

◆ setQuestionTabsForClass()

SurveyQuestionGUI::setQuestionTabsForClass (   $guiclass)

Definition at line 147 of file class.SurveyQuestionGUI.php.

148 {
149 global $rbacsystem,$ilTabs;
150
151 $this->ctrl->setParameterByClass($guiclass, "sel_question_types", $this->getQuestionType());
152 $this->ctrl->setParameterByClass($guiclass, "q_id", $_GET["q_id"]);
153
154 if ($this->parent_url)
155 {
156 $addurl = "";
157 if (strlen($_GET["new_for_survey"]))
158 {
159 $addurl = "&new_id=" . $_GET["q_id"];
160 }
161 $ilTabs->setBackTarget($this->lng->txt("menubacktosurvey"), $this->parent_url . $addurl);
162 }
163 else
164 {
165 $this->ctrl->setParameterByClass("ilObjSurveyQuestionPoolGUI", "q_id_table_nav", $_SESSION['q_id_table_nav']);
166 $ilTabs->setBackTarget($this->lng->txt("spl"), $this->ctrl->getLinkTargetByClass("ilObjSurveyQuestionPoolGUI", "questions"));
167 }
168 if ($_GET["q_id"])
169 {
170 $ilTabs->addNonTabbedLink("preview",
171 $this->lng->txt("preview"),
172 $this->ctrl->getLinkTargetByClass($guiclass, "preview"));
173 }
174
175 if ($rbacsystem->checkAccess('edit', $_GET["ref_id"]))
176 {
177 $ilTabs->addTab("edit_properties",
178 $this->lng->txt("properties"),
179 $this->ctrl->getLinkTargetByClass($guiclass, "editQuestion"));
180
181 if(stristr($guiclass, "matrix"))
182 {
183 $ilTabs->addTab("layout",
184 $this->lng->txt("layout"),
185 $this->ctrl->getLinkTargetByClass($guiclass, "layout"));
186 }
187 }
188 if ($_GET["q_id"])
189 {
190 $ilTabs->addTab("material",
191 $this->lng->txt("material"),
192 $this->ctrl->getLinkTargetByClass($guiclass, "material"));
193 }
194
195 if ($this->object->getId() > 0)
196 {
197 $title = $this->lng->txt("edit") . " &quot;" . $this->object->getTitle() . "&quot";
198 }
199 else
200 {
201 $title = $this->lng->txt("create_new") . " " . $this->lng->txt($this->getQuestionType());
202 }
203
204 $this->tpl->setVariable("HEADER", $title);
205 }
getQuestionType()
Returns the question type string.

References $_GET, $_SESSION, and getQuestionType().

Referenced by SurveyMatrixQuestionGUI\setQuestionTabs(), SurveyMetricQuestionGUI\setQuestionTabs(), SurveyMultipleChoiceQuestionGUI\setQuestionTabs(), SurveySingleChoiceQuestionGUI\setQuestionTabs(), and SurveyTextQuestionGUI\setQuestionTabs().

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

◆ sync()

SurveyQuestionGUI::sync ( )
protected

Definition at line 471 of file class.SurveyQuestionGUI.php.

472 {
473 $original_id = $this->object->original_id;
474 if ($original_id)
475 {
476 $this->object->syncWithOriginal();
477 }
478
479 ilUtil::sendSuccess($this->lng->txt("msg_obj_modified"), true);
480 $this->redirectAfterSaving($_REQUEST["rtrn"]);
481 }

References $_REQUEST, redirectAfterSaving(), and ilUtil\sendSuccess().

+ Here is the call graph for this function:

◆ syncCopies()

SurveyQuestionGUI::syncCopies ( )
protected

Definition at line 402 of file class.SurveyQuestionGUI.php.

403 {
404 global $lng, $ilAccess;
405
406 if(!sizeof($_POST["qid"]))
407 {
408 ilUtil::sendFailure($lng->txt("select_one"));
409 return $this->copySyncForm();
410 }
411
412 foreach($this->object->getCopyIds(true) as $survey_id => $questions)
413 {
414 // check permissions for "parent" survey
415 $can_write = false;
416 $ref_ids = ilObject::_getAllReferences($survey_id);
417 foreach($ref_ids as $ref_id)
418 {
419 if($ilAccess->checkAccess("edit", "", $ref_id))
420 {
421 $can_write = true;
422 break;
423 }
424 }
425
426 if($can_write)
427 {
428 foreach($questions as $qid)
429 {
430 if(in_array($qid, $_POST["qid"]))
431 {
432 $id = $this->object->getId();
433
434 $this->object->setId($qid);
435 $this->object->setOriginalId($id);
436 $this->object->saveToDb();
437
438 $this->object->setId($id);
439 $this->object->setOriginalId(null);
440
441 // see: SurveyQuestion::syncWithOriginal()
442 // what about material?
443 }
444 }
445 }
446 }
447
448 ilUtil::sendSuccess($lng->txt("survey_sync_success"), true);
449 $this->redirectAfterSaving($_REQUEST["rtrn"]);
450 }
static _getAllReferences($a_id)
get all reference ids of object
$ref_id
Definition: sahs_server.php:39

References $_POST, $_REQUEST, $lng, $ref_id, ilObject\_getAllReferences(), copySyncForm(), redirectAfterSaving(), ilUtil\sendFailure(), and ilUtil\sendSuccess().

+ Here is the call graph for this function:

◆ validateEditForm()

SurveyQuestionGUI::validateEditForm ( ilPropertyFormGUI  $a_form)
protected

Reimplemented in SurveyMultipleChoiceQuestionGUI.

Definition at line 538 of file class.SurveyQuestionGUI.php.

539 {
540 return true;
541 }

Referenced by saveForm().

+ Here is the caller graph for this function:

Field Documentation

◆ $ctrl

SurveyQuestionGUI::$ctrl
protected

Definition at line 38 of file class.SurveyQuestionGUI.php.

◆ $cumulated

SurveyQuestionGUI::$cumulated
protected

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

◆ $lng

SurveyQuestionGUI::$lng
protected

Definition at line 37 of file class.SurveyQuestionGUI.php.

Referenced by __construct(), and syncCopies().

◆ $object

SurveyQuestionGUI::$object

Definition at line 42 of file class.SurveyQuestionGUI.php.

◆ $parent_url

SurveyQuestionGUI::$parent_url
protected

Definition at line 40 of file class.SurveyQuestionGUI.php.

◆ $tpl

SurveyQuestionGUI::$tpl
protected

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

Referenced by __construct(), and preview().


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