ILIAS  release_4-3 Revision
 All Data Structures Namespaces Files Functions Variables Groups Pages
class.ilFormPropertyGUI.php
Go to the documentation of this file.
1 <?php
2 /* Copyright (c) 1998-2009 ILIAS open source, Extended GPL, see docs/LICENSE */
3 
12 {
13  protected $type;
14  protected $title;
15  protected $postvar;
16  protected $info;
17  protected $alert;
18  protected $required = false;
19  protected $parentgui;
20  protected $parentform;
21  protected $hidden_title = "";
22  protected $multi;
23  protected $multi_values;
24 
31  function __construct($a_title = "", $a_postvar = "")
32  {
33  $this->setTitle($a_title);
34  $this->setPostVar($a_postvar);
35  $this->setDisabled(false);
36  }
37 
41  function &executeCommand()
42  {
43  global $ilCtrl;
44 
45  $next_class = $ilCtrl->getNextClass($this);
46  $cmd = $ilCtrl->getCmd();
47 
48  return $this->$cmd();
49  }
50 
56  protected function setType($a_type)
57  {
58  $this->type = $a_type;
59  }
60 
66  function getType()
67  {
68  return $this->type;
69  }
70 
76  function setTitle($a_title)
77  {
78  $this->title = $a_title;
79  }
80 
86  function getTitle()
87  {
88  return $this->title;
89  }
90 
96  function setPostVar($a_postvar)
97  {
98  $this->postvar = $a_postvar;
99  }
100 
106  function getPostVar()
107  {
108  return $this->postvar;
109  }
110 
116  function getFieldId()
117  {
118  $id = str_replace("[", "__", $this->getPostVar());
119  $id = str_replace("]", "__", $id);
120 
121  return $id;
122  }
123 
129  function setInfo($a_info)
130  {
131  $this->info = $a_info;
132  }
133 
139  function getInfo()
140  {
141  return $this->info;
142  }
143 
149  function setAlert($a_alert)
150  {
151  $this->alert = $a_alert;
152  }
153 
159  function getAlert()
160  {
161  return $this->alert;
162  }
163 
169  function setRequired($a_required)
170  {
171  $this->required = $a_required;
172  }
173 
179  function getRequired()
180  {
181  return $this->required;
182  }
183 
189  function setDisabled($a_disabled)
190  {
191  $this->disabled = $a_disabled;
192  }
193 
199  function getDisabled()
200  {
201  return $this->disabled;
202  }
203 
209  function checkInput()
210  {
211  return false; // please overwrite
212  }
213 
219  function setParentForm($a_parentform)
220  {
221  $this->setParent($a_parentform);
222  }
223 
229  function getParentForm()
230  {
231  return $this->getParent();
232  }
233 
239  function setParent($a_val)
240  {
241  $this->parent_gui = $a_val;
242  }
243 
249  function getParent()
250  {
251  return $this->parent_gui;
252  }
253 
258  public function getSubForm()
259  {
260  return "";
261  }
262 
267  public function hideSubForm()
268  {
269  return false;
270  }
271 
277  function setHiddenTitle($a_val)
278  {
279  $this->hidden_title = $a_val;
280  }
281 
287  function getHiddenTitle()
288  {
289  return $this->hidden_title;
290  }
291 
297  function getItemByPostVar($a_post_var)
298  {
299  if ($this->getPostVar() == $a_post_var)
300  {
301  return $this;
302  }
303 
304  return false;
305  }
306 
310  function serializeData()
311  {
312  return serialize($this->getValue());
313  }
314 
318  function unserializeData($a_data)
319  {
320  $data = unserialize($a_data);
321 
322  if ($data)
323  {
324  $this->setValue($data);
325  }
326  else
327  {
328  $this->setValue(false);
329  }
330  }
331 
335  function writeToSession()
336  {
337  $parent = $this->getParent();
338  if (!is_object($parent))
339  {
340  die("You must set parent for ".get_class($this)." to use serialize feature.");
341  }
342  $_SESSION["form_".$parent->getId()][$this->getFieldId()] =
343  $this->serializeData();
344  }
345 
349  function clearFromSession()
350  {
351  $parent = $this->getParent();
352  if (!is_object($parent))
353  {
354  die("You must set parent for ".get_class($this)." to use serialize feature.");
355  }
356  $_SESSION["form_".$parent->getId()][$this->getFieldId()] = false;
357  }
358 
362  function readFromSession()
363  {
364  $parent = $this->getParent();
365  if (!is_object($parent))
366  {
367  die("You must set parent for ".get_class($this)." to use serialize feature.");
368  }
369  $this->unserializeData($_SESSION["form_".$parent->getId()][$this->getFieldId()]);
370  }
371 
375  function getHiddenTag($a_post_var, $a_value)
376  {
377  return '<input type="hidden" name="'.$a_post_var.'" value="'.ilUtil::prepareFormOutput($a_value).'" />';
378  }
379 
385  public function setMulti($a_multi)
386  {
387  trigger_error("not supported for form property type", E_USER_WARNING);
388  }
389 
395  public function getMulti()
396  {
397  return $this->multi;
398  }
399 
405  public function setMultiValues(array $a_values)
406  {
407  $this->multi_values = array_unique($a_values);
408  }
409 
415  public function getMultiValues()
416  {
417  return $this->multi_values;
418  }
419 
426  protected function getMultiIconsHTML($a_sortable = false)
427  {
428  global $lng;
429 
430  $id = $this->getFieldId();
431 
432  $html = '<input align="absmiddle" type="image" id="ilMultiAdd~'.$id.'~0"'.
433  ' src="'.ilUtil::getImagePath('edit_add.png').'" alt="'.
434  $lng->txt("add").'" title="'.$lng->txt("add").'" onclick="javascript: return false;" />'.
435  '<input align="absmiddle" type="image" id="ilMultiRmv~'.$id.'~0"'.
436  ' src="'.ilUtil::getImagePath('edit_remove.png').'" alt="'.$lng->txt("remove").
437  '" title="'.$lng->txt("remove").'" onclick="javascript: return false;" />';
438 
439  if($a_sortable)
440  {
441  $html .= '&nbsp;<input align="absmiddle" type="image" id="ilMultiDwn~'.$id.'~0"'.
442  ' src="'.ilUtil::getImagePath('icon_down_s.png').'" alt="'.
443  $lng->txt("down").'" title="'.$lng->txt("down").'" onclick="javascript: return false;" />'.
444  '<input align="absmiddle" type="image" id="ilMultiUp~'.$id.'~0"'.
445  ' src="'.ilUtil::getImagePath('icon_up_s.png').'" alt="'.$lng->txt("up").
446  '" title="'.$lng->txt("up").'" onclick="javascript: return false;" />';
447  }
448 
449  return $html;
450  }
451 }
452 ?>