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.

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

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
+ 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.

Referenced by _getGUIClassNameForId().

113  {
114  return $q_type;
115  }
+ Here is the caller graph for this function:

◆ _getGUIClassNameForId()

SurveyQuestionGUI::_getGUIClassNameForId (   $a_q_id)

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

References _getClassNameForQType().

Referenced by ilSurveyQuestionsTableGUI\fillRow().

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  }
+ 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 public

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

References SurveyQuestion\_includeClass().

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

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.
+ 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.

References ilObject\_lookupType().

Referenced by initEditForm().

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
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ addFieldsToEditForm()

SurveyQuestionGUI::addFieldsToEditForm ( ilPropertyFormGUI  $a_form)
abstractprotected

Referenced by initEditForm(), and validateEditForm().

+ Here is the caller graph for this function:

◆ addGIT()

SurveyQuestionGUI::addGIT ( )

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

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

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  }
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
$_SESSION["AccountId"]
$_GET["client_id"]
+ 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.

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

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  }
$_POST['username']
Definition: cron.php:12
$_SESSION["AccountId"]
$_GET["client_id"]
static getInstance()
Get instance.
material($checkonly=FALSE)
Material tab of the survey questions.
+ Here is the call graph for this function:

◆ addPG()

SurveyQuestionGUI::addPG ( )

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

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

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  }
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
$_SESSION["AccountId"]
$_GET["client_id"]
+ 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.

References $result, ilPropertyFormGUI\getHTML(), initPhrasesForm(), and saveForm().

Referenced by addSelectedPhrase().

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
+ 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.

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

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  }
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
$valid
addPhrase(ilPropertyFormGUI $a_form=null)
Creates an output for the addition of phrases.
+ Here is the call graph for this function:

◆ addST()

SurveyQuestionGUI::addST ( )

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

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

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  }
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
$_SESSION["AccountId"]
$_GET["client_id"]
+ Here is the call graph for this function:

◆ cancel()

SurveyQuestionGUI::cancel ( )
protected

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

References ilUtil\redirect().

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
+ Here is the call graph for this function:

◆ cancelExplorer()

SurveyQuestionGUI::cancelExplorer ( )

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

References $_SESSION, and ilUtil\sendInfo().

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

◆ cancelSync()

SurveyQuestionGUI::cancelSync ( )
protected

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

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

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.
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
if($_REQUEST['ilias_path']) define('ILIAS_HTTP_PATH' $_REQUEST['ilias_path']
Definition: index.php:7
+ Here is the call graph for this function:

◆ confirmSavePhrase()

SurveyQuestionGUI::confirmSavePhrase ( )

Save a new phrase to the database.

public

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

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

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  }
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
$_POST['username']
Definition: cron.php:12
$valid
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.
+ Here is the call graph for this function:

◆ copySyncForm()

SurveyQuestionGUI::copySyncForm ( )
protected

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

References $tbl.

Referenced by syncCopies().

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
+ Here is the caller graph for this function:

◆ deleteMaterial()

SurveyQuestionGUI::deleteMaterial ( )

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

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

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  }
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
$_POST['username']
Definition: cron.php:12
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
+ 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.

References initEditForm().

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

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  }
+ 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.

References $cmd, and $ret.

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

◆ getCumulatedResultsDetails()

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

Referenced by getMaterialOutput().

+ Here is the caller graph for this function:

◆ getMaterialOutput()

SurveyQuestionGUI::getMaterialOutput ( )
protected

Creates the HTML output of the question material(s)

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

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

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

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  }
static prepareFormOutput($a_str, $a_strip=false)
prepares string output for html forms public
$_GET["client_id"]
special template class to simplify handling of ITX/PEAR
_getInternalLinkHref($target="", $a_parent_ref_id=null)
+ 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

Referenced by validateEditForm().

+ Here is the caller graph for this function:

◆ getPrintViewQuestionTitle()

SurveyQuestionGUI::getPrintViewQuestionTitle (   $question_title = 1)
protected

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

References ilUtil\prepareFormOutput().

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

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  }
static prepareFormOutput($a_str, $a_strip=false)
prepares string output for html forms public
+ 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 public

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

Referenced by setQuestionTabsForClass().

124  {
125  return $this->object->getQuestionType();
126  }
+ 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

Referenced by preview().

+ Here is the caller graph for this function:

◆ importEditFormValues()

SurveyQuestionGUI::importEditFormValues ( ilPropertyFormGUI  $a_form)
abstractprotected

Referenced by saveForm(), and validateEditForm().

+ Here is the caller graph for this function:

◆ initEditForm()

SurveyQuestionGUI::initEditForm ( )
protected

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

References ilObjAdvancedEditing\_getUsedHTMLTags(), addCommandButtons(), addFieldsToEditForm(), ilFormPropertyGUI\setInfo(), ilFormPropertyGUI\setRequired(), and ilCheckboxInputGUI\setValue().

Referenced by editQuestion(), and saveForm().

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  }
This class represents a property form user interface.
This class represents a checkbox property in a property form.
setInfo($a_info)
Set Information Text.
setValue($a_value)
Set Value.
addFieldsToEditForm(ilPropertyFormGUI $a_form)
This class represents a text property in a property form.
& _getUsedHTMLTags($a_module="")
Returns an array of all allowed HTML tags for text editing.
This class represents a text area property in a property form.
setRequired($a_required)
Set Required.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ initObject()

SurveyQuestionGUI::initObject ( )
abstractprotected

Referenced by __construct().

+ Here is the caller graph for this function:

◆ initPhrasesForm()

SurveyQuestionGUI::initPhrasesForm ( )
protected

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

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

Referenced by addPhrase(), and addSelectedPhrase().

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 an option in a radio group.
This class represents a property form user interface.
This class represents a property in a property form.
static & _getCategoriesForPhrase($phrase_id)
Gets the available categories for a given phrase.
This class represents a number property in a property form.
static & _getAvailablePhrases($useronly=0)
Gets the available phrases from the database.
setRequired($a_required)
Set Required.
+ 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.

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

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  }
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
$_SESSION["AccountId"]
$_GET["client_id"]
$tbl
Definition: example_048.php:81
Class ilObjGlossary.
TableGUI class for survey question source materials.
getPageList($lm_id)
static
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
Class ilObjContentObjectGUI.
+ 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.

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

Referenced by addMaterial().

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  }
static prepareFormOutput($a_str, $a_strip=false)
prepares string output for html forms public
This class represents an option in a radio group.
This class represents a property form user interface.
$_GET["client_id"]
TableGUI class for survey question materials.
This class represents a property in a property form.
$data
$errors
_getInternalLinkHref($target="", $a_parent_ref_id=null)
setRequired($a_required)
Set Required.
+ 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.

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

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  }
+ Here is the caller graph for this function:

◆ preview()

SurveyQuestionGUI::preview ( )

Creates a preview of the question.

private

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

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

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)
special template class to simplify handling of ITX/PEAR
static getInstance()
Get instance.
+ 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.

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

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

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  }
$_SESSION["AccountId"]
$_GET["client_id"]
static redirect($a_script)
http redirect to other script
+ 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.

References editQuestion().

841  {
842  $this->object->material = array();
843  $this->object->saveToDb();
844  $this->editQuestion();
845  }
editQuestion(ilPropertyFormGUI $a_form=null)
+ Here is the call graph for this function:

◆ renderChart()

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

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

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

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

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 prepareFormOutput($a_str, $a_strip=false)
prepares string output for html forms public
Chart legend.
$legend
$data
const TYPE_GRID
static getInstanceByType($a_type, $a_id)
Get type instance.
+ 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.

References $html, and $row.

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

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
+ 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.

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

Referenced by saveReturn(), and saveSync().

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  }
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
redirectAfterSaving($a_return=false)
Redirect to calling survey or to edit form.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
global $ilUser
Definition: imgupload.php:15
editQuestion(ilPropertyFormGUI $a_form=null)
_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.
+ 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.

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

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

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)
editQuestion(ilPropertyFormGUI $a_form=null)
+ 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.

public

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

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

Referenced by confirmSavePhrase().

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  }
$_SESSION["AccountId"]
$result
$data
This class represents a text property in a property form.
$txt
Definition: error.php:12
+ 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.

References save().

312  {
313  $this->save(true);
314  }
save($a_return=false, $a_sync=false)
+ Here is the call graph for this function:

◆ saveSync()

SurveyQuestionGUI::saveSync ( )
protected

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

References $_REQUEST, and save().

307  {
308  $this->save($_REQUEST["rtrn"], true);
309  }
save($a_return=false, $a_sync=false)
if($_REQUEST['ilias_path']) define('ILIAS_HTTP_PATH' $_REQUEST['ilias_path']
Definition: index.php:7
+ 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()

SurveyQuestionGUI::setQuestionTabs ( )
abstract

Referenced by __construct().

+ Here is the caller graph for this function:

◆ setQuestionTabsForClass()

SurveyQuestionGUI::setQuestionTabsForClass (   $guiclass)

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

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

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

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  }
$_SESSION["AccountId"]
$_GET["client_id"]
getQuestionType()
Returns the question type string.
+ 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.

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

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  }
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
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
+ Here is the call graph for this function:

◆ syncCopies()

SurveyQuestionGUI::syncCopies ( )
protected

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

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

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 sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
$_POST['username']
Definition: cron.php:12
redirectAfterSaving($a_return=false)
Redirect to calling survey or to edit form.
static _getAllReferences($a_id)
get all reference ids of object
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
$ref_id
Definition: sahs_server.php:39
if($_REQUEST['ilias_path']) define('ILIAS_HTTP_PATH' $_REQUEST['ilias_path']
Definition: index.php:7
+ Here is the call graph for this function:

◆ validateEditForm()

SurveyQuestionGUI::validateEditForm ( ilPropertyFormGUI  $a_form)
protected

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

References addFieldsToEditForm(), getPrintView(), and importEditFormValues().

Referenced by saveForm().

539  {
540  return true;
541  }
+ Here is the call graph for this function:
+ 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: