ILIAS  release_5-4 Revision v5.4.26-12-gabc799a52e6
class.ilEssayKeywordWizardInputGUI.php
Go to the documentation of this file.
1 <?php
2 /* Copyright (c) 1998-2013 ILIAS open source, Extended GPL, see docs/LICENSE */
3 
4 include_once "./Modules/TestQuestionPool/classes/class.ilSingleChoiceWizardInputGUI.php";
5 
7 {
13  public function setValue($a_value)
14  {
15  $this->values = array();
16  if (is_array($a_value)) {
17  if (is_array($a_value['answer'])) {
18  foreach ($a_value['answer'] as $index => $value) {
19  include_once "./Modules/TestQuestionPool/classes/class.assAnswerMultipleResponseImage.php";
20  $answer = new ASS_AnswerMultipleResponseImage($value, $a_value['points'][$index], $index, $a_value['points_unchecked'][$index], $a_value['imagename'][$index]);
21  array_push($this->values, $answer);
22  }
23  }
24  }
25  }
26 
32  public function checkInput()
33  {
34  global $DIC;
35  $lng = $DIC['lng'];
36 
37  include_once "./Services/AdvancedEditing/classes/class.ilObjAdvancedEditing.php";
38  if (is_array($_POST[$this->getPostVar()])) {
40  $_POST[$this->getPostVar()],
41  false,
43  "assessment"
44  )
45  );
46  }
47  $foundvalues = $_POST[$this->getPostVar()];
48  if (is_array($foundvalues)) {
49  // check answers
50  if (is_array($foundvalues['answer'])) {
51  foreach ($foundvalues['answer'] as $aidx => $answervalue) {
52  if (((strlen($answervalue)) == 0) && (strlen($foundvalues['imagename'][$aidx]) == 0)) {
53  $this->setAlert($lng->txt("msg_input_is_required"));
54  return false;
55  }
56  }
57  }
58  // check points
59  $max = 0;
60  if (is_array($foundvalues['points'])) {
61  foreach ($foundvalues['points'] as $points) {
62  if ($points > $max) {
63  $max = $points;
64  }
65  if (((strlen($points)) == 0) || (!is_numeric($points))) {
66  $this->setAlert($lng->txt("form_msg_numeric_value_required"));
67  return false;
68  }
69  }
70  }
71  if ($max == 0) {
72  $this->setAlert($lng->txt("enter_enough_positive_points"));
73  return false;
74  }
75  } else {
76  $this->setAlert($lng->txt("msg_input_is_required"));
77  return false;
78  }
79 
80  return $this->checkSubItemsInput();
81  }
82 
88  public function insert($a_tpl)
89  {
90  global $DIC;
91  $lng = $DIC['lng'];
92 
93  $tpl = new ilTemplate("tpl.prop_essaykeywordswizardinput.html", true, true, "Modules/TestQuestionPool");
94  $i = 0;
95  foreach ($this->values as $value) {
96  if ($this->getSingleline()) {
97  if (is_object($value)) {
98  $tpl->setCurrentBlock("prop_text_propval");
99  $tpl->setVariable("PROPERTY_VALUE", ilUtil::prepareFormOutput($value->getAnswertext()));
100  $tpl->parseCurrentBlock();
101  $tpl->setCurrentBlock("prop_points_propval");
102  $tpl->setVariable("PROPERTY_VALUE", ilUtil::prepareFormOutput($value->getPointsChecked()));
103  $tpl->parseCurrentBlock();
104  }
105  $tpl->setCurrentBlock('singleline');
106  $tpl->setVariable("SIZE", $this->getSize());
107  $tpl->setVariable("SINGLELINE_ID", $this->getPostVar() . "[answer][$i]");
108  $tpl->setVariable("SINGLELINE_ROW_NUMBER", $i);
109  $tpl->setVariable("SINGLELINE_POST_VAR", $this->getPostVar());
110  $tpl->setVariable("MAXLENGTH", $this->getMaxLength());
111  if ($this->getDisabled()) {
112  $tpl->setVariable("DISABLED_SINGLELINE", " disabled=\"disabled\"");
113  }
114  $tpl->parseCurrentBlock();
115  } else {
116  if (!$this->getSingleline()) {
117  if (is_object($value)) {
118  $tpl->setCurrentBlock("prop_points_propval");
119  $tpl->setVariable("PROPERTY_VALUE", ilUtil::prepareFormOutput($value->getPoints()));
120  $tpl->parseCurrentBlock();
121  }
122  }
123  }
124 
125  $tpl->setCurrentBlock("row");
126  $tpl->setVariable("POST_VAR", $this->getPostVar());
127  $tpl->setVariable("ROW_NUMBER", $i);
128  $tpl->setVariable("ID", $this->getPostVar() . "[answer][$i]");
129  $tpl->setVariable("POINTS_ID", $this->getPostVar() . "[points][$i]");
130  $tpl->setVariable("CMD_ADD", "cmd[add" . $this->getFieldId() . "][$i]");
131  $tpl->setVariable("CMD_REMOVE", "cmd[remove" . $this->getFieldId() . "][$i]");
132  if ($this->getDisabled()) {
133  $tpl->setVariable("DISABLED_POINTS", " disabled=\"disabled\"");
134  }
135  $tpl->setVariable("ADD_BUTTON", ilGlyphGUI::get(ilGlyphGUI::ADD));
136  $tpl->setVariable("REMOVE_BUTTON", ilGlyphGUI::get(ilGlyphGUI::REMOVE));
137  $tpl->parseCurrentBlock();
138  $i++;
139  }
140 
141  $tpl->setVariable("ELEMENT_ID", $this->getPostVar());
142  $tpl->setVariable("TEXT_YES", $lng->txt('yes'));
143  $tpl->setVariable("TEXT_NO", $lng->txt('no'));
144  $tpl->setVariable("DELETE_IMAGE_HEADER", $lng->txt('delete_image_header'));
145  $tpl->setVariable("DELETE_IMAGE_QUESTION", $lng->txt('delete_image_question'));
146  $tpl->setVariable("ANSWER_TEXT", $lng->txt('answer_text'));
147  $tpl->setVariable("POINTS_TEXT", $lng->txt('points'));
148  $tpl->setVariable("COMMANDS_TEXT", $lng->txt('actions'));
149  $tpl->setVariable("POINTS_CHECKED_TEXT", $lng->txt('checkbox_checked'));
150 
151  $a_tpl->setCurrentBlock("prop_generic");
152  $a_tpl->setVariable("PROP_GENERIC", $tpl->get());
153  $a_tpl->parseCurrentBlock();
154 
155  global $DIC;
156  $tpl = $DIC['tpl'];
157  $tpl->addJavascript("./Services/Form/js/ServiceFormWizardInput.js");
158  $tpl->addJavascript("./Modules/TestQuestionPool/templates/default/essaykeywordwizard.js");
159  }
160 }
static prepareFormOutput($a_str, $a_strip=false)
prepares string output for html forms public
getMaxLength()
Get Max Length.
static _getUsedHTMLTagsAsString($a_module="")
Returns a string of all allowed HTML tags for text editing.
global $DIC
Definition: saml.php:7
$tpl
Definition: ilias.php:10
getPostVar()
Get Post Variable.
ASS_AnswerBinaryStateImage is a class for answers with a binary state indicator (checked/unchecked, set/unset) and an image file.
static get($a_glyph, $a_text="")
Get glyph html.
$index
Definition: metadata.php:60
checkInput()
Check input, strip slashes etc.
setAlert($a_alert)
Set Alert Text.
getFieldId()
Get Post Variable.
special template class to simplify handling of ITX/PEAR
static stripSlashesRecursive($a_data, $a_strip_html=true, $a_allow="")
Strip slashes from array and sub-arrays.
This class represents a single choice wizard property in a property form.
$i
Definition: disco.tpl.php:19
$_POST["username"]