ILIAS  release_5-2 Revision v5.2.25-18-g3f80b828510
class.ilExplorerSelectInputGUI.php
Go to the documentation of this file.
1<?php
2
3/* Copyright (c) 1998-2013 ILIAS open source, Extended GPL, see docs/LICENSE */
4
5include_once("./Services/Table/interfaces/interface.ilTableFilterItem.php");
6include_once("./Services/Form/classes/class.ilFormPropertyGUI.php");
7
17{
24 function __construct($a_title, $a_postvar, $a_explorer_gui, $a_multi = false)
25 {
26 global $lng;
27
28 $this->multi_nodes = $a_multi;
29 $this->explorer_gui = $a_explorer_gui;
30
31 parent::__construct($a_title, $a_postvar);
32 $this->setType("exp_select");
33 }
34
42 {
43 return "handleExplorerCommand";
44 }
45
50 {
51 $this->explorer_gui->handleCommand();
52 }
53
60 abstract function getTitleForNodeId($a_id);
61
67 function setValue($a_value)
68 {
69 if ($this->multi_nodes && !is_array($a_value))
70 {
71 if ($a_value !== false)
72 {
73 $this->value = array($a_value);
74 }
75 else
76 {
77 $this->value = array();
78 }
79 }
80 else
81 {
82 $this->value = $a_value;
83 }
84 }
85
91 function getValue()
92 {
93 return $this->value;
94 }
95
101 function setValueByArray($a_values)
102 {
103 $this->setValue($a_values[$this->getPostVar()]);
104 }
105
111 function checkInput()
112 {
113 global $lng;
114
115 // sanitize
116 if ($this->multi_nodes)
117 {
118 if (!is_array($_POST[$this->getPostVar()]))
119 {
120 $_POST[$this->getPostVar()] = array();
121 }
122
123 foreach ($_POST[$this->getPostVar()] as $k => $v)
124 {
125 $_POST[$this->getPostVar()][$k] = ilUtil::stripSlashes($v);
126 }
127 }
128 else
129 {
131 }
132
133 // check required
134 if ($this->getRequired())
135 {
136 if ((!$this->multi_nodes && trim($_POST[$this->getPostVar()]) == "") ||
137 ($this->multi_nodes && count($_POST[$this->getPostVar()]) == 0))
138 {
139 $this->setAlert($lng->txt("msg_input_is_required"));
140 return false;
141 }
142 }
143 return true;
144 }
145
146
150 function render($a_mode = "property_form")
151 {
152 global $lng;
153
154 include_once("./Services/YUI/classes/class.ilYuiUtil.php");
156 $GLOBALS["tpl"]->addJavascript("./Services/UIComponent/Explorer2/js/Explorer2.js");
157
158 $tpl = new ilTemplate("tpl.prop_expl_select.html", true, true, "Services/UIComponent/Explorer2");
159
160 if ($a_mode != "property_form")
161 {
162 $tpl->touchBlock("tiny_presentation");
163 }
164
165 // set values
166 $val = $this->getValue();
167 if (is_array($val))
168 {
169 $val_txt = $sep = "";
170 foreach ($val as $v)
171 {
172 $tpl->setCurrentBlock("node_hid");
173 $tpl->setVariable("HID_NAME", $this->getPostVar()."[]");
174 $tpl->setVariable("HID_VAL", $v);
175 $tpl->parseCurrentBlock();
176 $val_txt.= $sep.$this->getTitleForNodeId($v);
177 $sep = ", ";
178 $this->explorer_gui->setNodeOpen($v);
179 $this->explorer_gui->setNodeSelected($v);
180 }
181 $tpl->setVariable("VAL_TXT", $val_txt);
182 }
183 else if ($val != "")
184 {
185 $tpl->setCurrentBlock("node_hid");
186 $tpl->setVariable("HID_NAME", $this->getPostVar());
187 $tpl->setVariable("HID_VAL", $val);
188 $tpl->parseCurrentBlock();
189 $tpl->setVariable("VAL_TXT", $this->getTitleForNodeId($val));
190 $this->explorer_gui->setNodeOpen($val);
191 $this->explorer_gui->setNodeSelected($val);
192 }
193
194 $tpl->setVariable("POST_VAR", $this->getPostVar());
195 $tpl->setVariable("ID", $this->getFieldId());
196// $tpl->setVariable("PROPERTY_VALUE", ilUtil::prepareFormOutput($this->getValue()));
197
198 //added disabled
199 if(!$this->disabled) {
200 $tpl->setCurrentBlock("txt_select");
201 $tpl->setVariable("TXT_SELECT", $lng->txt("select"));
202 $tpl->setVariable("ID_TXT_SELECT", $this->getFieldId());
203 $tpl->parseCurrentBlock();
204
205 $tpl->setCurrentBlock("txt_reset");
206 $tpl->setVariable("TXT_RESET", $lng->txt("reset"));
207 $tpl->setVariable("ID_TXT_RESET", $this->getFieldId());
208 $tpl->parseCurrentBlock();
209 }
210
211 $tpl->setVariable("EXPL", $this->explorer_gui->getHTML());
212
213 $top_tb = new ilToolbarGUI();
214
215 include_once "Services/UIComponent/Button/classes/class.ilLinkButton.php";
216
217 $button = ilLinkButton::getInstance();
218 $button->setCaption("select");
219 $button->addCSSClass("ilExplSelectInputButS");
220 $button->setOmitPreventDoubleSubmission(true);
221 $top_tb->addButtonInstance($button);
222
223 $button = ilLinkButton::getInstance();
224 $button->setCaption("cancel");
225 $button->addCSSClass("ilExplSelectInputButC");
226 $button->setOmitPreventDoubleSubmission(true);
227 $top_tb->addButtonInstance($button);
228
229 // :TODO: we should probably clone the buttons properly
230 $tpl->setVariable("TOP_TB", $top_tb->getHTML());
231 $tpl->setVariable("BOT_TB", $top_tb->getHTML());
232
233 //$tpl->setVariable("HREF_SELECT",
234 // $ilCtrl->getLinkTargetByClass(array($parent_gui, "ilformpropertydispatchgui", "ilrepositoryselectorinputgui"),
235 // "showRepositorySelection"));
236
237 /*if ($this->getValue() > 0 && $this->getValue() != ROOT_FOLDER_ID)
238 {
239 $tpl->setVariable("TXT_ITEM",
240 $ilObjDataCache->lookupTitle($ilObjDataCache->lookupObjId($this->getValue())));
241 }
242 else
243 {
244 $nd = $tree->getNodeData(ROOT_FOLDER_ID);
245 $title = $nd["title"];
246 if ($title == "ILIAS")
247 {
248 $title = $lng->txt("repository");
249 }
250 if (in_array($nd["type"], $this->getClickableTypes()))
251 {
252 $tpl->setVariable("TXT_ITEM", $title);
253 }
254 }*/
255
256 return $tpl->get();
257 }
258
263 function insert(&$a_tpl)
264 {
265 $a_tpl->setCurrentBlock("prop_generic");
266 $a_tpl->setVariable("PROP_GENERIC", $this->render());
267 $a_tpl->parseCurrentBlock();
268 }
269
274 {
275 $html = $this->render("table_filter");
276 return $html;
277 }
278
279}
global $tpl
Definition: ilias.php:8
$_POST["username"]
An exception for terminatinating execution or to throw for unit testing.
Select explorer tree nodes input GUI.
handleExplorerCommand()
Handle explorer command.
getTableFilterHTML()
Get HTML for table filter.
setValueByArray($a_values)
Set value by array.
insert(&$a_tpl)
Insert property html.
getTitleForNodeId($a_id)
Get title for node id (needs to be overwritten, if explorer is not a tree eplorer.
render($a_mode="property_form")
Render item.
getExplHandleCmd()
Get explorer handle command function.
checkInput()
Check input, strip slashes etc.
__construct($a_title, $a_postvar, $a_explorer_gui, $a_multi=false)
Constructor.
This class represents a property in a property form.
setType($a_type)
Set Type.
getPostVar()
Get Post Variable.
setAlert($a_alert)
Set Alert Text.
getFieldId()
Get Post Variable.
static getInstance()
Factory.
special template class to simplify handling of ITX/PEAR
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
static initPanel($a_resize=false)
Init yui panel.
$html
Definition: example_001.php:87
$GLOBALS['loaded']
Global hash that tracks already loaded includes.
Interface for property form input GUI classes that can be used in table filters.
global $lng
Definition: privfeed.php:17