ILIAS  Release_5_0_x_branch Revision 61816
 All Data Structures Namespaces Files Functions Variables Groups Pages
class.ilADTMultiText.php
Go to the documentation of this file.
1 <?php
2 
3 class ilADTMultiText extends ilADT
4 {
5  protected $values; // [array]
6 
7 
8  // definition
9 
10  protected function isValidDefinition(ilADTDefinition $a_def)
11  {
12  return ($a_def instanceof ilADTMultiTextDefinition);
13  }
14 
15  public function reset()
16  {
17  parent::reset();
18 
19  $this->values = null;
20  }
21 
22 
23  // properties
24 
25  public function setTextElements(array $a_values = null)
26  {
27  if(is_array($a_values))
28  {
29  if(sizeof($a_values))
30  {
31  foreach($a_values as $idx => $element)
32  {
33  $a_values[$idx]= trim($element);
34  if(!$a_values[$idx])
35  {
36  unset($a_values[$idx]);
37  }
38  }
39  $a_values = array_unique($a_values);
40  }
41  if(!sizeof($a_values))
42  {
43  $a_values = null;
44  }
45  }
46  $this->values = $a_values;
47  }
48 
49  public function getTextElements()
50  {
51  return $this->values;
52  }
53 
54 
55  // comparison
56 
57  public function equals(ilADT $a_adt)
58  {
59  if($this->getDefinition()->isComparableTo($a_adt))
60  {
61  return ($this->getCheckSum() == $a_adt->getCheckSum());
62  }
63  }
64 
65  public function isLarger(ilADT $a_adt)
66  {
67  // return null?
68  }
69 
70  public function isSmaller(ilADT $a_adt)
71  {
72  // return null?
73  }
74 
75 
76  // null
77 
78  public function isNull()
79  {
80  $all = $this->getTextElements();
81  return (!is_array($all) || !sizeof($all));
82  }
83 
84 
85  // validation
86 
87  public function isValid()
88  {
90 
91  if(!$this->isNull())
92  {
93  $max_size = $this->getDefinition()->getMaxSize();
94  if($max_size && $max_size < sizeof($this->getTextElements()))
95  {
96  $valid = false;
97  $this->addValidationError(self::ADT_VALIDATION_ERROR_MAX_SIZE);
98  }
99 
100  $max_len = $this->getDefinition()->getMaxLength();
101  if($max_len)
102  {
103  foreach($this->getTextElements() as $element)
104  {
105  if($max_len < strlen($element))
106  {
107  $valid = false;
108  $this->addValidationError(self::ADT_VALIDATION_ERROR_MAX_LENGTH);
109  }
110  }
111  }
112  }
113 
114  return $valid;
115  }
116 
117 
118  // check
119 
120  public function getCheckSum()
121  {
122  if(!$this->isNull())
123  {
124  $elements = $this->getTextElements();
125  sort($elements);
126  return md5(implode("", $elements));
127  }
128  }
129 }
130 
131 ?>