ILIAS  release_7 Revision v7.30-3-g800a261c036
class.ilADTLocalizedTextSearchBridgeSingle.php
Go to the documentation of this file.
1<?php
2
3require_once "Services/ADT/classes/Bridges/class.ilADTSearchBridgeSingle.php";
4
6{
7 protected function isValidADTDefinition(ilADTDefinition $a_adt_def)
8 {
9 return ($a_adt_def instanceof ilADTLocalizedTextDefinition);
10 }
11
12 // table2gui / filter
13
14 public function loadFilter()
15 {
16 $value = $this->readFilter();
17 if ($value !== null) {
18 $this->getADT()->setText($value);
19 }
20 }
21
22
23 // form
24
25 public function addToForm()
26 {
27 $text = new ilTextInputGUI($this->getTitle(), $this->getElementId());
28 $text->setSize(20);
29 $text->setMaxLength(512);
30 $text->setSubmitFormOnEnter(true);
31
32 $text->setValue($this->getADT()->getText());
33
34 $this->addToParentElement($text);
35 }
36
37 public function importFromPost(array $a_post = null)
38 {
39 $post = $this->extractPostValues($a_post);
40
41 if ($post && $this->shouldBeImportedFromPost($post)) {
42 if ($this->getForm() instanceof ilPropertyFormGUI) {
43 $item = $this->getForm()->getItemByPostVar($this->getElementId());
44 $item->setValue($post);
45 } elseif (array_key_exists($this->getElementId(), $this->table_filter_fields)) {
46 $this->table_filter_fields[$this->getElementId()]->setValue($post);
47 $this->writeFilter($post);
48 }
49 $this->getADT()->setText($post);
50 } else {
51 $this->writeFilter();
52 $this->getADT()->setText();
53 }
54 }
55
56
57 // db
58
59 public function getSQLCondition($a_element_id, $a_mode = self::SQL_LIKE, $a_value = null)
60 {
61 global $DIC;
62
63 $ilDB = $DIC['ilDB'];
64
65 if (!$a_value) {
66 if ($this->isNull() || !$this->isValid()) {
67 return;
68 }
69 $a_value = $this->getADT()->getText();
70 }
71
72 switch ($a_mode) {
74 if (!is_array($a_value)) {
75 return $a_element_id . " = " . $ilDB->quote($a_value, "text");
76 } else {
77 return $ilDB->in($a_element_id, $a_value, "", "text");
78 }
79 break;
80
81 case self::SQL_LIKE:
82 if (!is_array($a_value)) {
83 return $ilDB->like($a_element_id, "text", "%" . $a_value . "%");
84 } else {
85 $tmp = array();
86 foreach ($a_value as $word) {
87 if ($word) {
88 $tmp[] = $ilDB->like($a_element_id, "text", "%" . $word . "%");
89 }
90 }
91 if (sizeof($tmp)) {
92 return "(" . implode(" OR ", $tmp) . ")";
93 }
94 }
95 break;
96
98 if (!is_array($a_value)) {
99 return $ilDB->like($a_element_id, "text", $a_value . "%");
100 }
101 break;
102
104 if (!is_array($a_value)) {
105 return $ilDB->like($a_element_id, "text", "%" . $a_value);
106 }
107 break;
108 }
109 }
110
111 public function isInCondition(ilADT $a_adt)
112 {
113 if ($this->getADT()->getCopyOfDefinition()->isComparableTo($a_adt)) {
114 foreach ($a_adt->getTranslations() as $language => $txt) {
115 if (strcasecmp($txt, $this->getADT()->getText()) === 0) {
116 return true;
117 }
118 }
119 }
120 return false;
121 }
122
123
124 // import/export
125
126 public function getSerializedValue()
127 {
128 if (!$this->isNull() && $this->isValid()) {
129 return serialize(array($this->getADT()->getText()));
130 }
131 }
132
133 public function setSerializedValue($a_value)
134 {
135 $a_value = unserialize($a_value);
136 if (is_array($a_value)) {
137 $this->getADT()->setText($a_value[0]);
138 }
139 }
140}
An exception for terminatinating execution or to throw for unit testing.
ADT definition base class.
getSerializedValue()
Get current value(s) in serialized form (for easy persisting)
isValidADTDefinition(ilADTDefinition $a_adt_def)
Check if given ADT definition is valid.
importFromPost(array $a_post=null)
Import values from (search) form request POST data.
setSerializedValue($a_value)
Set current value(s) in serialized form (for easy persisting)
getSQLCondition($a_element_id, $a_mode=self::SQL_LIKE, $a_value=null)
isInCondition(ilADT $a_adt)
Compare directly against ADT.
readFilter()
Load value(s) from filter store (in session)
extractPostValues(array $a_post=null)
Extract data from (post) values.
addToParentElement(ilFormPropertyGUI $a_field)
Add form field to parent element.
getElementId()
Get element id.
shouldBeImportedFromPost($a_post)
Check if incoming values should be imported at all.
writeFilter($a_value=null)
Write value(s) to filter store (in session)
ADT base class.
Definition: class.ilADT.php:12
This class represents a property form user interface.
This class represents a text property in a property form.
$txt
Definition: error.php:13
global $DIC
Definition: goto.php:24
global $ilDB