ILIAS  release_6 Revision v6.24-5-g0c8bfefb3b8
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 public function __construct($a_title, $a_postvar, $a_explorer_gui, $a_multi = false)
25 {
26 global $DIC;
27
28 $this->lng = $DIC->language();
29 $lng = $DIC->language();
30
31 $this->multi_nodes = $a_multi;
32 $this->explorer_gui = $a_explorer_gui;
33
34 parent::__construct($a_title, $a_postvar);
35 $this->setType("exp_select");
36 }
37
44 public function getExplHandleCmd()
45 {
46 return "handleExplorerCommand";
47 }
48
52 public function handleExplorerCommand()
53 {
54 $val = $this->getValue();
55 if (is_array($val)) {
56 foreach ($val as $v) {
57 $this->explorer_gui->setNodeOpen($v);
58 $this->explorer_gui->setNodeSelected($v);
59 }
60 } elseif ($val != "") {
61 $this->explorer_gui->setNodeOpen($val);
62 $this->explorer_gui->setNodeSelected($val);
63 }
64 $this->explorer_gui->handleCommand();
65 }
66
73 abstract public function getTitleForNodeId($a_id);
74
80 public function setValue($a_value)
81 {
82 if ($this->multi_nodes && !is_array($a_value)) {
83 if ($a_value !== false) {
84 $this->value = array($a_value);
85 } else {
86 $this->value = array();
87 }
88 } else {
89 $this->value = $a_value;
90 }
91 }
92
98 public function getValue()
99 {
100 return $this->value;
101 }
102
108 public function setValueByArray($a_values)
109 {
110 $this->setValue($a_values[$this->getPostVar()]);
111 }
112
118 public function checkInput()
119 {
121
122 // sanitize
123 if ($this->multi_nodes) {
124 if (!is_array($_POST[$this->getPostVar()])) {
125 $_POST[$this->getPostVar()] = array();
126 }
127
128 foreach ($_POST[$this->getPostVar()] as $k => $v) {
129 $_POST[$this->getPostVar()][$k] = ilUtil::stripSlashes($v);
130 }
131 } else {
133 }
134
135 // check required
136 if ($this->getRequired()) {
137 if ((!$this->multi_nodes && trim($_POST[$this->getPostVar()]) == "") ||
138 ($this->multi_nodes && count($_POST[$this->getPostVar()]) == 0)) {
139 $this->setAlert($lng->txt("msg_input_is_required"));
140 return false;
141 }
142 }
143 return true;
144 }
145
146
150 public function render($a_mode = "property_form")
151 {
153
154 include_once("./Services/YUI/classes/class.ilYuiUtil.php");
156 $GLOBALS["tpl"]->addJavascript("./Services/UIComponent/Explorer2/js/Explorer2.js");
157 $GLOBALS["tpl"]->addJavascript("./Services/UIComponent/Modal/js/Modal.js");
158
159 $tpl = new ilTemplate("tpl.prop_expl_select.html", true, true, "Services/UIComponent/Explorer2");
160
161 if ($a_mode != "property_form") {
162 $tpl->touchBlock("tiny_presentation");
163 }
164
165 // set values
166 $val = $this->getValue();
167 if (is_array($val)) {
168 $val_txt = $sep = "";
169 foreach ($val as $v) {
170 $tpl->setCurrentBlock("node_hid");
171 $tpl->setVariable("HID_NAME", $this->getPostVar() . "[]");
172 $tpl->setVariable("HID_VAL", $v);
173 $tpl->parseCurrentBlock();
174 $val_txt .= $sep . $this->getTitleForNodeId($v);
175 $sep = ", ";
176 $this->explorer_gui->setNodeOpen($v);
177 $this->explorer_gui->setNodeSelected($v);
178 }
179 $tpl->setVariable("VAL_TXT", $val_txt);
180 } elseif ($val != "") {
181 $tpl->setCurrentBlock("node_hid");
182 $tpl->setVariable("HID_NAME", $this->getPostVar());
183 $tpl->setVariable("HID_VAL", $val);
184 $tpl->parseCurrentBlock();
185 $tpl->setVariable("VAL_TXT", $this->getTitleForNodeId($val));
186 $this->explorer_gui->setNodeOpen($val);
187 $this->explorer_gui->setNodeSelected($val);
188 }
189
190 $tpl->setVariable("POST_VAR", $this->getPostVar());
191 $tpl->setVariable("ID", $this->getFieldId());
192 // $tpl->setVariable("PROPERTY_VALUE", ilUtil::prepareFormOutput($this->getValue()));
193
194 //added disabled
195 if (!$this->disabled) {
196 $tpl->setCurrentBlock("txt_select");
197 $tpl->setVariable("TXT_SELECT", $lng->txt("select"));
198 $tpl->setVariable("ID_TXT_SELECT", $this->getFieldId());
199 $tpl->parseCurrentBlock();
200
201 $tpl->setCurrentBlock("txt_reset");
202 $tpl->setVariable("TXT_RESET", $lng->txt("reset"));
203 $tpl->setVariable("ID_TXT_RESET", $this->getFieldId());
204 $tpl->parseCurrentBlock();
205 }
206
207 $tpl->setVariable("EXPL", $this->explorer_gui->getHTML());
208
209 $top_tb = new ilToolbarGUI();
210
211 include_once "Services/UIComponent/Button/classes/class.ilLinkButton.php";
212
213 $button = ilLinkButton::getInstance();
214 $button->setCaption("select");
215 $button->addCSSClass("ilExplSelectInputButS");
216 $button->setOmitPreventDoubleSubmission(true);
217 $top_tb->addStickyItem($button);
218
219 $button = ilLinkButton::getInstance();
220 $button->setCaption("cancel");
221 $button->addCSSClass("ilExplSelectInputButC");
222 $button->setOmitPreventDoubleSubmission(true);
223 $top_tb->addStickyItem($button);
224
225 // :TODO: we should probably clone the buttons properly
226 $tpl->setVariable("TOP_TB", $top_tb->getHTML());
227 $tpl->setVariable("BOT_TB", $top_tb->getHTML());
228
229 //$tpl->setVariable("HREF_SELECT",
230 // $ilCtrl->getLinkTargetByClass(array($parent_gui, "ilformpropertydispatchgui", "ilrepositoryselectorinputgui"),
231 // "showRepositorySelection"));
232
233 /*if ($this->getValue() > 0 && $this->getValue() != ROOT_FOLDER_ID)
234 {
235 $tpl->setVariable("TXT_ITEM",
236 $ilObjDataCache->lookupTitle($ilObjDataCache->lookupObjId($this->getValue())));
237 }
238 else
239 {
240 $nd = $tree->getNodeData(ROOT_FOLDER_ID);
241 $title = $nd["title"];
242 if ($title == "ILIAS")
243 {
244 $title = $lng->txt("repository");
245 }
246 if (in_array($nd["type"], $this->getClickableTypes()))
247 {
248 $tpl->setVariable("TXT_ITEM", $title);
249 }
250 }*/
251
252 return $tpl->get();
253 }
254
259 public function insert(&$a_tpl)
260 {
261 $a_tpl->setCurrentBlock("prop_generic");
262 $a_tpl->setVariable("PROP_GENERIC", $this->render());
263 $a_tpl->parseCurrentBlock();
264 }
265
269 public function getTableFilterHTML()
270 {
271 $html = $this->render("table_filter");
272 return $html;
273 }
274}
disabled()
Example showing how to plug a disabled checkbox into a form.
Definition: disabled.php:5
if(!defined('PATH_SEPARATOR')) $GLOBALS['_PEAR_default_error_mode']
Definition: PEAR.php:64
$_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, ilGlobalTemplateInterface $a_main_tpl=null)
Init yui panel.
Interface for property form input GUI classes that can be used in table filters.
__construct(Container $dic, ilPlugin $plugin)
@inheritDoc
if(isset($_FILES['img_file']['size']) && $_FILES['img_file']['size'] > 0) $tpl
$DIC
Definition: xapitoken.php:46