ILIAS  Release_4_4_x_branch Revision 61816
 All Data Structures Namespaces Files Functions Variables Groups Pages
class.ilKVPWizardInputGUI.php
Go to the documentation of this file.
1 <?php
2 /* Copyright (c) 1998-2013 ILIAS open source, Extended GPL, see docs/LICENSE */
3 
12 {
13  protected $values = array();
14  protected $allowMove = false;
15  protected $key_size = 20;
16  protected $value_size = 20;
17  protected $key_maxlength = 255;
18  protected $value_maxlength = 255;
19  protected $key_name = "";
20  protected $value_name = "";
21 
28  function __construct($a_title = "", $a_postvar = "")
29  {
30  parent::__construct($a_title, $a_postvar);
31  }
32 
38  function setValue($a_value)
39  {
40  $this->values = array();
41  if (is_array($a_value))
42  {
43  if (is_array($a_value['key']))
44  {
45  foreach ($a_value['key'] as $idx => $key)
46  {
47  array_push($this->values, array($key, $a_value['value'][$idx]));
48  }
49  }
50  }
51  }
52 
58  function setKeySize($a_size)
59  {
60  $this->key_size = $a_size;
61  }
62 
68  function getKeySize()
69  {
70  return $this->key_size;
71  }
72 
78  function setValueSize($a_size)
79  {
80  $this->value_size = $a_size;
81  }
82 
88  function getValueSize()
89  {
90  return $this->value_size;
91  }
92 
98  function setKeyMaxlength($a_maxlength)
99  {
100  $this->key_maxlength = $a_maxlength;
101  }
102 
108  function getKeyMaxlength()
109  {
110  return $this->key_maxlength;
111  }
112 
118  function setValueMaxlength($a_maxlength)
119  {
120  $this->value_maxlength = $a_maxlength;
121  }
122 
128  function getValueMaxlength()
129  {
130  return $this->value_maxlength;
131  }
132 
138  function setValueName($a_name)
139  {
140  $this->value_name = $a_name;
141  }
142 
148  function getValueName()
149  {
150  return $this->value_name;
151  }
152 
158  function setKeyName($a_name)
159  {
160  $this->key_name = $a_name;
161  }
162 
168  function getKeyName()
169  {
170  return $this->key_name;
171  }
172 
178  function setValues($a_values)
179  {
180  $this->values = $a_values;
181  }
182 
188  function getValues()
189  {
190  return $this->values;
191  }
192 
198  function setAllowMove($a_allow_move)
199  {
200  $this->allowMove = $a_allow_move;
201  }
202 
208  function getAllowMove()
209  {
210  return $this->allowMove;
211  }
212 
218  function checkInput()
219  {
220  global $lng;
221 
222  if (is_array($_POST[$this->getPostVar()])) $_POST[$this->getPostVar()] = ilUtil::stripSlashesRecursive($_POST[$this->getPostVar()]);
223  $foundvalues = $_POST[$this->getPostVar()];
224  if (is_array($foundvalues))
225  {
226  // check answers
227  if (is_array($foundvalues['key']) && is_array($foundvalues['value']))
228  {
229  foreach ($foundvalues['key'] as $val)
230  {
231  if ($this->getRequired() && (strlen($val)) == 0)
232  {
233  $this->setAlert($lng->txt("msg_input_is_required"));
234  return FALSE;
235  }
236  }
237  foreach ($foundvalues['value'] as $val)
238  {
239  if ($this->getRequired() && (strlen($val)) == 0)
240  {
241  $this->setAlert($lng->txt("msg_input_is_required"));
242  return FALSE;
243  }
244  }
245  }
246  else
247  {
248  if ($this->getRequired())
249  {
250  $this->setAlert($lng->txt("msg_input_is_required"));
251  return FALSE;
252  }
253  }
254  }
255  else
256  {
257  if ($this->getRequired())
258  {
259  $this->setAlert($lng->txt("msg_input_is_required"));
260  return FALSE;
261  }
262  }
263  return $this->checkSubItemsInput();
264  }
265 
271  function insert(&$a_tpl)
272  {
273  global $lng;
274 
275  $tpl = new ilTemplate("tpl.prop_kvpwizardinput.html", true, true, "Modules/TestQuestionPool");
276  $i = 0;
277  foreach ($this->values as $value)
278  {
279  if (is_array($value))
280  {
281  $tpl->setCurrentBlock("prop_key_propval");
282  $tpl->setVariable("PROPERTY_VALUE", ilUtil::prepareFormOutput($value[0]));
283  $tpl->parseCurrentBlock();
284  $tpl->setCurrentBlock("prop_value_propval");
285  $tpl->setVariable("PROPERTY_VALUE", ilUtil::prepareFormOutput($value[1]));
286  $tpl->parseCurrentBlock();
287  }
288  if ($this->getAllowMove())
289  {
290  $tpl->setCurrentBlock("move");
291  $tpl->setVariable("CMD_UP", "cmd[up" . $this->getFieldId() . "][$i]");
292  $tpl->setVariable("CMD_DOWN", "cmd[down" . $this->getFieldId() . "][$i]");
293  $tpl->setVariable("ID", $this->getPostVar() . "[$i]");
294  $tpl->setVariable("UP_BUTTON", ilUtil::getImagePath('a_up.png'));
295  $tpl->setVariable("DOWN_BUTTON", ilUtil::getImagePath('a_down.png'));
296  $tpl->parseCurrentBlock();
297  }
298 
299  $tpl->setCurrentBlock("row");
300  $class = ($i % 2 == 0) ? "even" : "odd";
301  if ($i == 0) $class .= " first";
302  if ($i == count($this->values)-1) $class .= " last";
303  $tpl->setVariable("ROW_CLASS", $class);
304  $tpl->setVariable("ROW_NUMBER", $i);
305 
306  $tpl->setVariable("KEY_SIZE", $this->getKeySize());
307  $tpl->setVariable("KEY_ID", $this->getPostVar() . "[key][$i]");
308  $tpl->setVariable("KEY_MAXLENGTH", $this->getKeyMaxlength());
309 
310  $tpl->setVariable("VALUE_SIZE", $this->getValueSize());
311  $tpl->setVariable("VALUE_ID", $this->getPostVar() . "[value][$i]");
312  $tpl->setVariable("VALUE_MAXLENGTH", $this->getValueMaxlength());
313 
314  $tpl->setVariable("ID", $this->getPostVar() . "[$i]");
315  $tpl->setVariable("CMD_ADD", "cmd[add" . $this->getFieldId() . "][$i]");
316  $tpl->setVariable("CMD_REMOVE", "cmd[remove" . $this->getFieldId() . "][$i]");
317  $tpl->setVariable("ADD_BUTTON", ilUtil::getImagePath('edit_add.png'));
318  $tpl->setVariable("REMOVE_BUTTON", ilUtil::getImagePath('edit_remove.png'));
319 
320  $tpl->setVariable("POST_VAR", $this->getPostVar());
321 
322  $tpl->parseCurrentBlock();
323 
324  $i++;
325  }
326  $tpl->setVariable("ELEMENT_ID", $this->getPostVar());
327  $tpl->setVariable("KEY_TEXT", $this->getKeyName());
328  $tpl->setVariable("VALUE_TEXT", $this->getValueName());
329 
330  $a_tpl->setCurrentBlock("prop_generic");
331  $a_tpl->setVariable("PROP_GENERIC", $tpl->get());
332  $a_tpl->parseCurrentBlock();
333 
334  global $tpl;
335  include_once "./Services/YUI/classes/class.ilYuiUtil.php";
337  $tpl->addJavascript("./Modules/TestQuestionPool/templates/default/kvpwizard.js");
338  }
339 }