ILIAS  release_5-0 Revision 5.0.0-1144-gc4397b1f870
All Data Structures Namespaces Files Functions Variables Modules Pages
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)
 
 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 ()
 

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 849 of file class.SurveyQuestionGUI.php.

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

850  {
851  $this->object->addInternalLink("il__git_" . $_GET["git"]);
852  unset($_SESSION["link_new_type"]);
853  unset($_SESSION["search_link_type"]);
854  ilUtil::sendSuccess($this->lng->txt("material_added_successfully"), true);
855  $this->ctrl->redirect($this, "material");
856  }
< a tabindex="-1" style="border-style: none;" href="#" title="Refresh Image" onclick="document.getElementById('siimage').src = './securimage_show.php?sid=' + Math.random(); this.blur(); return false">< img src="./images/refresh.png" alt="Reload Image" height="32" width="32" onclick="this.blur()" align="bottom" border="0"/></a >< br/>< strong > Enter Code *if($_SERVER['REQUEST_METHOD']=='POST' &&@ $_POST['do']=='contact') $_SESSION['ctform']['success']
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
$_GET["client_id"]
+ Here is the call graph for this function:

◆ addMaterial()

SurveyQuestionGUI::addMaterial ( )

Add materials to a question.

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

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

772  {
773  global $tree, $ilTabs, $ilToolbar;
774 
775  $ilTabs->activateTab("material");
776 
777  $ilToolbar->addButton($this->lng->txt("cancel"),
778  $this->ctrl->getLinkTarget($this, "material"));
779 
780  if (strlen($_SESSION["link_new_type"]) || !$this->material(true))
781  {
782  include_once("./Modules/SurveyQuestionPool/classes/class.ilMaterialExplorer.php");
783  switch ($_POST["internalLinkType"])
784  {
785  case "lm":
786  $_SESSION["link_new_type"] = "lm";
787  $_SESSION["search_link_type"] = "lm";
788  break;
789  case "glo":
790  $_SESSION["link_new_type"] = "glo";
791  $_SESSION["search_link_type"] = "glo";
792  break;
793  case "st":
794  $_SESSION["link_new_type"] = "lm";
795  $_SESSION["search_link_type"] = "st";
796  break;
797  case "pg":
798  $_SESSION["link_new_type"] = "lm";
799  $_SESSION["search_link_type"] = "pg";
800  break;
801  }
802 
803  $exp = new ilMaterialExplorer($this, 'addMaterial', $_SESSION["link_new_type"]);
804  $exp->setPathOpen((int)$_GET["ref_id"]);
805  if (!$exp->handleCommand())
806  {
807  include_once "Services/UIComponent/Panel/classes/class.ilPanelGUI.php";
808  $panel = ilPanelGUI::getInstance();
809  $panel->setHeading($this->lng->txt("select_object_to_link"));
810  $panel->setBody($exp->getHTML());
811 
812  $this->tpl->setContent($panel->getHTML());
813  }
814  }
815  }
< a tabindex="-1" style="border-style: none;" href="#" title="Refresh Image" onclick="document.getElementById('siimage').src = './securimage_show.php?sid=' + Math.random(); this.blur(); return false">< img src="./images/refresh.png" alt="Reload Image" height="32" width="32" onclick="this.blur()" align="bottom" border="0"/></a >< br/>< strong > Enter Code *if($_SERVER['REQUEST_METHOD']=='POST' &&@ $_POST['do']=='contact') $_SESSION['ctform']['success']
$_POST['username']
Definition: cron.php:12
$_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 831 of file class.SurveyQuestionGUI.php.

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

832  {
833  $this->object->addInternalLink("il__pg_" . $_GET["pg"]);
834  unset($_SESSION["link_new_type"]);
835  unset($_SESSION["search_link_type"]);
836  ilUtil::sendSuccess($this->lng->txt("material_added_successfully"), true);
837  $this->ctrl->redirect($this, "material");
838  }
< a tabindex="-1" style="border-style: none;" href="#" title="Refresh Image" onclick="document.getElementById('siimage').src = './securimage_show.php?sid=' + Math.random(); this.blur(); return false">< img src="./images/refresh.png" alt="Reload Image" height="32" width="32" onclick="this.blur()" align="bottom" border="0"/></a >< br/>< strong > Enter Code *if($_SERVER['REQUEST_METHOD']=='POST' &&@ $_POST['do']=='contact') $_SESSION['ctform']['success']
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
$_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 1005 of file class.SurveyQuestionGUI.php.

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

Referenced by addSelectedPhrase().

1006  {
1007  global $ilTabs;
1008 
1009  $ilTabs->activateTab("edit_properties");
1010 
1011  if(!$a_form)
1012  {
1013  $result = $this->saveForm();
1014  if($result)
1015  {
1016  $this->object->saveToDb();
1017  }
1018 
1019  $a_form = $this->initPhrasesForm();
1020  }
1021 
1022  $this->tpl->setContent($a_form->getHTML());
1023  }
$result
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ addSelectedPhrase()

SurveyQuestionGUI::addSelectedPhrase ( )
protected

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

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

1026  {
1027  $form = $this->initPhrasesForm();
1028  if($form->checkInput())
1029  {
1030  $phrase_id = $form->getInput("phrases");
1031 
1032  $valid = true;
1033  if (strcmp($this->object->getPhrase($phrase_id), "dp_standard_numbers") != 0)
1034  {
1035  $this->object->addPhrase($phrase_id);
1036  }
1037  else
1038  {
1039  $min = $form->getInput("lower_limit");
1040  $max = $form->getInput("upper_limit");
1041 
1042  if($max <= $min)
1043  {
1044  $max_field = $form->getItemByPostVar("upper_limit");
1045  $max_field->setAlert($this->lng->txt("upper_limit_must_be_greater"));
1046  $valid = false;
1047  }
1048  else
1049  {
1050  $this->object->addStandardNumbers($min, $max);
1051  }
1052  }
1053 
1054  if($valid)
1055  {
1056  $this->object->saveToDb();
1057 
1058  ilUtil::sendSuccess($this->lng->txt('phrase_added'), true);
1059  $this->ctrl->redirect($this, 'editQuestion');
1060  }
1061  }
1062 
1063  $form->setValuesByPost();
1064  $this->addPhrase($form);
1065  }
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 840 of file class.SurveyQuestionGUI.php.

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

841  {
842  $this->object->addInternalLink("il__st_" . $_GET["st"]);
843  unset($_SESSION["link_new_type"]);
844  unset($_SESSION["search_link_type"]);
845  ilUtil::sendSuccess($this->lng->txt("material_added_successfully"), true);
846  $this->ctrl->redirect($this, "material");
847  }
< a tabindex="-1" style="border-style: none;" href="#" title="Refresh Image" onclick="document.getElementById('siimage').src = './securimage_show.php?sid=' + Math.random(); this.blur(); return false">< img src="./images/refresh.png" alt="Reload Image" height="32" width="32" onclick="this.blur()" align="bottom" border="0"/></a >< br/>< strong > Enter Code *if($_SERVER['REQUEST_METHOD']=='POST' &&@ $_POST['do']=='contact') $_SESSION['ctform']['success']
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
$_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 824 of file class.SurveyQuestionGUI.php.

References $_SESSION, and ilUtil\sendInfo().

825  {
826  unset($_SESSION["link_new_type"]);
827  ilUtil::sendInfo($this->lng->txt("msg_cancel"), true);
828  $this->ctrl->redirect($this, 'material');
829  }
< a tabindex="-1" style="border-style: none;" href="#" title="Refresh Image" onclick="document.getElementById('siimage').src = './securimage_show.php?sid=' + Math.random(); this.blur(); return false">< img src="./images/refresh.png" alt="Reload Image" height="32" width="32" onclick="this.blur()" align="bottom" border="0"/></a >< br/>< strong > Enter Code *if($_SERVER['REQUEST_METHOD']=='POST' &&@ $_POST['do']=='contact') $_SESSION['ctform']['success']
static 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 1130 of file class.SurveyQuestionGUI.php.

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

1131  {
1132  $title = $_POST["phrase_title"];
1133 
1134  $valid = true;
1135  if (!trim($title))
1136  {
1137  ilUtil::sendFailure($this->lng->txt("qpl_savephrase_empty"));
1138  $valid = false;
1139  }
1140  else if ($this->object->phraseExists($title))
1141  {
1142  ilUtil::sendFailure($this->lng->txt("qpl_savephrase_exists"));
1143  $valid = false;
1144  }
1145 
1146  if($valid)
1147  {
1148  $this->object->savePhrase($title);
1149 
1150  ilUtil::sendSuccess($this->lng->txt("phrase_saved"), true);
1151  $this->ctrl->redirect($this, "editQuestion");
1152  }
1153 
1154  $this->savePhrase(true);
1155  }
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.

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

◆ deleteMaterial()

SurveyQuestionGUI::deleteMaterial ( )

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

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

755  {
756  if (is_array($_POST['idx']))
757  {
758  $this->object->deleteMaterials($_POST['idx']);
759  ilUtil::sendSuccess($this->lng->txt('materials_deleted'), true);
760  }
761  else
762  {
763  ilUtil::sendFailure($this->lng->txt('no_checkbox'), true);
764  }
765  $this->ctrl->redirect($this, 'material');
766  }
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 587 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().

588  {
589  if (count($this->object->getMaterial()))
590  {
591  $template = new ilTemplate("tpl.il_svy_qpl_material.html", TRUE, TRUE, "Modules/SurveyQuestionPool");
592  foreach ($this->object->getMaterial() as $material)
593  {
594  $template->setCurrentBlock('material');
595  switch ($material->type)
596  {
597  case 0:
598  $href = SurveyQuestion::_getInternalLinkHref($material->internal_link, $_GET['ref_id']);
599  $template->setVariable('MATERIAL_TYPE', 'internallink');
600  $template->setVariable('MATERIAL_HREF', $href);
601  break;
602  }
603  $template->setVariable('MATERIAL_TITLE', (strlen($material->title)) ? ilUtil::prepareFormOutput($material->title) : $this->lng->txt('material'));
604  $template->setVariable('TEXT_AVAILABLE_MATERIALS', $this->lng->txt('material'));
605  $template->parseCurrentBlock();
606  }
607  return $template->get();
608  }
609  return "";
610  }
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:

◆ 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 961 of file class.SurveyQuestionGUI.php.

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

Referenced by addPhrase(), and addSelectedPhrase().

962  {
963  include_once("./Services/Form/classes/class.ilPropertyFormGUI.php");
964  $form = new ilPropertyFormGUI();
965  $form->setFormAction($this->ctrl->getFormAction($this, "addSelectedPhrase"));
966  $form->setTitle($this->lng->txt("add_phrase"));
967  // $form->setDescription($this->lng->txt("add_phrase_introduction"));
968 
969  $group = new ilRadioGroupInputGUI($this->lng->txt("phrase"), "phrases");
970  $group->setRequired(true);
971  $form->addItem($group);
972 
973  include_once "./Modules/SurveyQuestionPool/classes/class.ilSurveyPhrases.php";
974  foreach (ilSurveyPhrases::_getAvailablePhrases() as $phrase_id => $phrase_array)
975  {
976  $categories = ilSurveyPhrases::_getCategoriesForPhrase($phrase_id);
977 
978  $opt = new ilRadioOption($phrase_array["title"], $phrase_id);
979  $opt->setInfo(join($categories, ","));
980  $group->addOption($opt);
981 
982  if($phrase_array["org_title"] == "dp_standard_numbers")
983  {
984  $min = new ilNumberInputGUI($this->lng->txt("lower_limit"), "lower_limit");
985  $min->setRequired(true);
986  $min->setSize(5);
987  $opt->addSubItem($min);
988 
989  $max = new ilNumberInputGUI($this->lng->txt("upper_limit"), "upper_limit");
990  $max->setRequired(true);
991  $max->setSize(5);
992  $opt->addSubItem($max);
993  }
994  }
995 
996  $form->addCommandButton("addSelectedPhrase", $this->lng->txt("add_phrase"));
997  $form->addCommandButton("editQuestion", $this->lng->txt("cancel"));
998 
999  return $form;
1000  }
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 858 of file class.SurveyQuestionGUI.php.

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

859  {
860  global $ilTabs;
861 
862  $selectable_items = array();
863 
864  $source_id = $_GET["source_id"];
865 
866  switch ($_SESSION["search_link_type"])
867  {
868  case "pg":
869  include_once "./Modules/LearningModule/classes/class.ilLMPageObject.php";
870  include_once("./Modules/LearningModule/classes/class.ilObjContentObjectGUI.php");
871  $cont_obj_gui =& new ilObjContentObjectGUI("", $source_id, true);
872  $cont_obj = $cont_obj_gui->object;
873  $pages = ilLMPageObject::getPageList($cont_obj->getId());
874  foreach($pages as $page)
875  {
876  if($page["type"] == $_SESSION["search_link_type"])
877  {
878  $selectable_items[] = array(
879  "item_type" => $page["type"]
880  ,"item_id" => $page["obj_id"]
881  ,"title" => $page["title"]
882  );
883  }
884  }
885  break;
886 
887  case "st":
888  include_once("./Modules/LearningModule/classes/class.ilObjContentObjectGUI.php");
889  $cont_obj_gui =& new ilObjContentObjectGUI("", $source_id, true);
890  $cont_obj = $cont_obj_gui->object;
891  // get all chapters
892  $ctree =& $cont_obj->getLMTree();
893  $nodes = $ctree->getSubtree($ctree->getNodeData($ctree->getRootId()));
894  foreach($nodes as $node)
895  {
896  if($node["type"] == $_SESSION["search_link_type"])
897  {
898  $selectable_items[] = array(
899  "item_type" => $node["type"]
900  ,"item_id" => $node["obj_id"]
901  ,"title" => $node["title"]
902  );
903  }
904  }
905  break;
906 
907  case "glo":
908  include_once "./Modules/Glossary/classes/class.ilObjGlossary.php";
909  $glossary =& new ilObjGlossary($source_id, true);
910  // get all glossary items
911  $terms = $glossary->getTermList();
912  foreach($terms as $term)
913  {
914  $selectable_items[] = array(
915  "item_type" => "GIT"
916  ,"item_id" => $term["id"]
917  ,"title" => $term["term"]
918  );
919  }
920  break;
921 
922  case "lm":
923  $this->object->addInternalLink("il__lm_" . $source_id);
924  break;
925  }
926 
927  if(sizeof($selectable_items))
928  {
929  $ilTabs->activateTab("material");
930  $this->ctrl->setParameter($this, "q_id", $this->object->getId());
931  $this->ctrl->setParameter($this, "source_id", $source_id);
932 
933  include_once "Modules/SurveyQuestionPool/classes/tables/class.SurveyMaterialsSourceTableGUI.php";
934  $tbl = new SurveyMaterialsSourceTableGUI($this, "linkChilds", "addMaterial");
935  $tbl->setData($selectable_items);
936  $this->tpl->setContent($tbl->getHTML());
937  }
938  else
939  {
940  if($_SESSION["search_link_type"] == "lm")
941  {
942  ilUtil::sendSuccess($this->lng->txt("material_added_successfully"), true);
943 
944  unset($_SESSION["link_new_type"]);
945  unset($_SESSION["search_link_type"]);
946  $this->ctrl->redirect($this, "material");
947  }
948  else
949  {
950  ilUtil::sendFailure($this->lng->txt("material_added_empty"), true);
951  $this->ctrl->redirect($this, "addMaterial");
952  }
953  }
954  }
< a tabindex="-1" style="border-style: none;" href="#" title="Refresh Image" onclick="document.getElementById('siimage').src = './securimage_show.php?sid=' + Math.random(); this.blur(); return false">< img src="./images/refresh.png" alt="Reload Image" height="32" width="32" onclick="this.blur()" align="bottom" border="0"/></a >< br/>< strong > Enter Code *if($_SERVER['REQUEST_METHOD']=='POST' &&@ $_POST['do']=='contact') $_SESSION['ctform']['success']
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
$_GET["client_id"]
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 688 of file class.SurveyQuestionGUI.php.

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

Referenced by addMaterial().

689  {
690  global $rbacsystem, $ilTabs;
691 
692  $ilTabs->activateTab("material");
693 
694  $add_html = '';
695  if ($rbacsystem->checkAccess('write', $_GET['ref_id']))
696  {
697  include_once("./Services/Form/classes/class.ilPropertyFormGUI.php");
698  $form = new ilPropertyFormGUI();
699  $form->setFormAction($this->ctrl->getFormAction($this));
700  $form->setTitle($this->lng->txt('add_material'));
701  $form->setMultipart(FALSE);
702  $form->setTableWidth("100%");
703  $form->setId("material");
704 
705  // material
706  $material = new ilRadioGroupInputGUI($this->lng->txt("material"), "internalLinkType");
707  $material->setRequired(true);
708  $material->addOption(new ilRadioOption($this->lng->txt('obj_lm'), "lm"));
709  $material->addOption(new ilRadioOption($this->lng->txt('obj_st'), "st"));
710  $material->addOption(new ilRadioOption($this->lng->txt('obj_pg'), "pg"));
711  $material->addOption(new ilRadioOption($this->lng->txt('glossary_term'), "glo"));
712  $form->addItem($material);
713 
714  $form->addCommandButton("addMaterial", $this->lng->txt("add"));
715 
716  $errors = false;
717 
718  if ($checkonly)
719  {
720  $form->setValuesByPost();
721  $errors = !$form->checkInput();
722  if ($errors) $checkonly = false;
723  }
724  $add_html = $form->getHTML();
725  }
726 
727 
728  $mat_html = "";
729  if (count($this->object->getMaterial()))
730  {
731  include_once "./Modules/SurveyQuestionPool/classes/tables/class.ilSurveyMaterialsTableGUI.php";
732  $table_gui = new ilSurveyMaterialsTableGUI($this, 'material', (($rbacsystem->checkAccess('write', $_GET['ref_id']) ? true : false)));
733  $data = array();
734  foreach ($this->object->getMaterial() as $material)
735  {
736  switch ($material->type)
737  {
738  case 0:
739  $href = SurveyQuestion::_getInternalLinkHref($material->internal_link, $_GET['ref_id']);
740  $type = $this->lng->txt('internal_link');
741  break;
742  }
743  $title = (strlen($material->title)) ? ilUtil::prepareFormOutput($material->title) : $this->lng->txt('material');
744  array_push($data, array('href' => $href, 'title' => $title, 'type' => $type));
745  }
746  $table_gui->setData($data);
747  $mat_html = $table_gui->getHTML();
748  }
749 
750  if (!$checkonly) $this->tpl->setVariable("ADM_CONTENT", $add_html . $mat_html);
751  return $errors;
752  }
static prepareFormOutput($a_str, $a_strip=false)
prepares string output for html forms public
$errors
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.
_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 553 of file class.SurveyQuestionGUI.php.

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

554  {
555  global $ilTabs;
556 
557  $ilTabs->activateTab("preview");
558 
559  $tpl = new ilTemplate("tpl.il_svy_qpl_preview.html", true, true, "Modules/SurveyQuestionPool");
560 
561  if ($this->object->getObligatory())
562  {
563  $tpl->setCurrentBlock("required");
564  $tpl->setVariable("TEXT_REQUIRED", $this->lng->txt("required_field"));
565  $tpl->parseCurrentBlock();
566  }
567 
568  $tpl->setVariable("QUESTION_OUTPUT", $this->getWorkingForm());
569 
570  include_once "Services/UIComponent/Panel/classes/class.ilPanelGUI.php";
571  $panel = ilPanelGUI::getInstance();
572  $panel->setBody($tpl->get());
573 
574  $this->tpl->setContent($panel->getHTML());
575  }
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  }
< a tabindex="-1" style="border-style: none;" href="#" title="Refresh Image" onclick="document.getElementById('siimage').src = './securimage_show.php?sid=' + Math.random(); this.blur(); return false">< img src="./images/refresh.png" alt="Reload Image" height="32" width="32" onclick="this.blur()" align="bottom" border="0"/></a >< br/>< strong > Enter Code *if($_SERVER['REQUEST_METHOD']=='POST' &&@ $_POST['do']=='contact') $_SESSION['ctform']['success']
$_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 817 of file class.SurveyQuestionGUI.php.

References editQuestion().

818  {
819  $this->object->material = array();
820  $this->object->saveToDb();
821  $this->editQuestion();
822  }
editQuestion(ilPropertyFormGUI $a_form=null)
+ Here is the call graph for this function:

◆ renderChart()

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

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

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

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

620  {
621  include_once "Services/Chart/classes/class.ilChart.php";
623  $chart->setsize(700, 400);
624 
625  $legend = new ilChartLegend();
626  $chart->setLegend($legend);
627  $chart->setYAxisToInteger(true);
628 
629  $data = $chart->getDataInstance(ilChartGrid::DATA_BARS);
630  $data->setLabel($this->lng->txt("users_answered"));
631  $data->setBarOptions(0.5, "center");
632 
633  $max = 5;
634 
635  if(sizeof($a_variables) <= $max)
636  {
637  if($a_variables)
638  {
639  $labels = array();
640  foreach($a_variables as $idx => $points)
641  {
642  $data->addPoint($idx, $points["selected"]);
643  $labels[$idx] = ($idx+1).". ".ilUtil::prepareFormOutput($points["title"]);
644  }
645  $chart->addData($data);
646 
647  $chart->setTicks($labels, false, true);
648  }
649 
650  return "<div style=\"margin:10px\">".$chart->getHTML()."</div>";
651  }
652  else
653  {
654  $chart_legend = array();
655  $labels = array();
656  foreach($a_variables as $idx => $points)
657  {
658  $data->addPoint($idx, $points["selected"]);
659  $labels[$idx] = ($idx+1).".";
660  $chart_legend[($idx+1)] = ilUtil::prepareFormOutput($points["title"]);
661  }
662  $chart->addData($data);
663 
664  $chart->setTicks($labels, false, true);
665 
666  $legend = "<table>";
667  foreach($chart_legend as $number => $caption)
668  {
669  $legend .= "<tr valign=\"top\"><td>".$number.".</td><td>".$caption."</td></tr>";
670  }
671  $legend .= "</table>";
672 
673  return "<div style=\"margin:10px\"><table><tr valign=\"bottom\"><td>".
674  $chart->getHTML()."</td><td class=\"small\" style=\"padding-left:15px\">".
675  $legend."</td></tr></table></div>";
676  }
677  }
static prepareFormOutput($a_str, $a_strip=false)
prepares string output for html forms public
Chart legend.
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:

◆ 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 1072 of file class.SurveyQuestionGUI.php.

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

Referenced by confirmSavePhrase().

1073  {
1074  global $ilTabs, $ilToolbar;
1075 
1076  $ilTabs->activateTab("edit_properties");
1077 
1078  if (!$a_reload)
1079  {
1080  $result = $this->saveForm();
1081  if ($result)
1082  {
1083  $this->object->saveToDb();
1084  }
1085  }
1086 
1087  include_once("./Services/Form/classes/class.ilTextInputGUI.php");
1088  $txt = new ilTextInputGUI($this->lng->txt("enter_phrase_title"), "phrase_title");
1089  $ilToolbar->addInputItem($txt, true);
1090  $ilToolbar->addFormButton($this->lng->txt("confirm"), "confirmSavePhrase");
1091  $ilToolbar->setFormAction($this->ctrl->getFormAction($this));
1092 
1093  include_once "./Modules/SurveyQuestionPool/classes/tables/class.ilSurveySavePhraseTableGUI.php";
1094  $table_gui = new ilSurveySavePhraseTableGUI($this, 'editQuestion');
1095  $table_gui->setDescription($this->lng->txt("save_phrase_introduction"));
1096 
1097  // matrix?
1098  if(method_exists($this->object, "getCategories"))
1099  {
1100  $categories = $this->object->getCategories();
1101  }
1102  else
1103  {
1104  $categories = $this->object->getColumns();
1105  }
1106 
1107  $data = array();
1108  for ($i = 0; $i < $categories->getCategoryCount(); $i++)
1109  {
1110  $cat = $categories->getCategory($i);
1111 
1112  $data[] = array(
1113  "answer" => $cat->title,
1114  "other" => $cat->other,
1115  "scale" => $cat->scale,
1116  "neutral" => $cat->neutral
1117  );
1118  }
1119  $table_gui->setData($data);
1120  $_SESSION['save_phrase_data'] = $data; // :TODO: see savePhrase()
1121 
1122  $this->tpl->setContent($table_gui->getHTML());
1123  }
< a tabindex="-1" style="border-style: none;" href="#" title="Refresh Image" onclick="document.getElementById('siimage').src = './securimage_show.php?sid=' + Math.random(); this.blur(); return false">< img src="./images/refresh.png" alt="Reload Image" height="32" width="32" onclick="this.blur()" align="bottom" border="0"/></a >< br/>< strong > Enter Code *if($_SERVER['REQUEST_METHOD']=='POST' &&@ $_POST['do']=='contact') $_SESSION['ctform']['success']
$result
This class represents a text property in a property form.
$txt
Definition: error.php:10
+ 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  }
< a tabindex="-1" style="border-style: none;" href="#" title="Refresh Image" onclick="document.getElementById('siimage').src = './securimage_show.php?sid=' + Math.random(); this.blur(); return false">< img src="./images/refresh.png" alt="Reload Image" height="32" width="32" onclick="this.blur()" align="bottom" border="0"/></a >< br/>< strong > Enter Code *if($_SERVER['REQUEST_METHOD']=='POST' &&@ $_POST['do']=='contact') $_SESSION['ctform']['success']
$_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: