ILIAS  release_6 Revision v6.24-5-g0c8bfefb3b8
class.ilECSNodeMappingCmsExplorer.php
Go to the documentation of this file.
1<?php
2/* Copyright (c) 1998-2009 ILIAS open source, Extended GPL, see docs/LICENSE */
3
4include_once './Services/UIComponent/Explorer/classes/class.ilExplorer.php';
5
13{
14 const SEL_TYPE_CHECK = 1;
15 const SEL_TYPE_RADIO = 2;
16
17 private $server_id;
18 private $mid;
19 private $tree_id;
20
21 private $checked_items = array();
22 private $post_var = '';
23 private $form_items = array();
24 private $type = 0;
25
26 public function __construct($a_target, $a_server_id, $a_mid, $a_tree_id)
27 {
28 global $DIC;
29
30 $tree = $DIC['tree'];
31
32 parent::__construct($a_target);
33
34 $this->type = self::SEL_TYPE_CHECK;
35 $this->setOrderColumn('title');
36 $this->setTitleLength(1024);
37
38 // reset filter
39 $this->filter = array();
40 $this->addFormItemForType('');
41
42 $this->server_id = $a_server_id;
43 $this->mid = $a_mid;
44 $this->tree_id = $a_tree_id;
45 }
46
50 public function setTree(ilECSCmsTree $tree)
51 {
52 $this->tree = $tree;
53 }
54
62 public function isClickable($a_type, $a_ref_id = 0, $a_obj_id = 0)
63 {
64 return false;
65 }
66
71 public function addFormItemForType($type)
72 {
73 $this->form_items[$type] = true;
74 }
75
77 {
78 $this->form_items[$type] = false;
79 }
80
81 public function setCheckedItems($a_checked_items = array())
82 {
83 $this->checked_items = $a_checked_items;
84 }
85
86 public function isItemChecked($a_id)
87 {
88 return in_array($a_id, $this->checked_items) ? true : false;
89 }
90
91 public function setPostVar($a_post_var)
92 {
93 $this->post_var = $a_post_var;
94 }
95 public function getPostVar()
96 {
97 return $this->post_var;
98 }
99
100 public function buildFormItem($a_node_id, $a_type)
101 {
102 if (!array_key_exists($a_type, $this->form_items) || !$this->form_items[$a_type]) {
103 return '';
104 }
105
106 include_once './Services/WebServices/ECS/classes/Tree/class.ilECSCmsData.php';
108 $this->server_id,
109 $this->mid,
110 $this->tree_id,
111 $a_node_id
112 );
113
114 if ($status == ilECSCmsData::MAPPING_DELETED) {
115 return ilUtil::formCheckbox((int) $this->isItemChecked($a_node_id), $this->post_var, $a_node_id, true);
116 }
117 switch ($this->type) {
119 return ilUtil::formCheckbox((int) $this->isItemChecked($a_node_id), $this->post_var, $a_node_id);
120 break;
121
123 return ilUtil::formRadioButton((int) $this->isItemChecked($a_node_id), $this->post_var, $a_node_id);
124 break;
125 }
126 }
127
128 public function formatObject($tpl, $a_node_id, $a_option, $a_obj_id = 0)
129 {
130 global $DIC;
131
132 $lng = $DIC['lng'];
133
134 if (!isset($a_node_id) or !is_array($a_option)) {
135 $this->ilias->raiseError(get_class($this) . "::formatObject(): Missing parameter or wrong datatype! " .
136 "node_id: " . $a_node_id . " options:" . var_dump($a_option), $this->ilias->error_obj->WARNING);
137 }
138
139 $pic = false;
140 foreach ($a_option["tab"] as $picture) {
141 if ($picture == 'plus') {
142 $tpl->setCurrentBlock("expander");
143 $tpl->setVariable("EXP_DESC", $lng->txt("expand"));
144 $target = $this->createTarget('+', $a_node_id);
145 $tpl->setVariable("LINK_NAME", $a_node_id);
146 $tpl->setVariable("LINK_TARGET_EXPANDER", $target);
147 $tpl->setVariable("IMGPATH", $this->getImage("browser/plus.png"));
148 $tpl->parseCurrentBlock();
149 $pic = true;
150 }
151
152 if ($picture == 'minus' && $this->show_minus) {
153 $tpl->setCurrentBlock("expander");
154 $tpl->setVariable("EXP_DESC", $lng->txt("collapse"));
155 $target = $this->createTarget('-', $a_node_id);
156 $tpl->setVariable("LINK_NAME", $a_node_id);
157 $tpl->setVariable("LINK_TARGET_EXPANDER", $target);
158 $tpl->setVariable("IMGPATH", $this->getImage("browser/minus.png"));
159 $tpl->parseCurrentBlock();
160 $pic = true;
161 }
162 }
163
164 if (!$pic) {
165 $tpl->setCurrentBlock("blank");
166 $tpl->setVariable("BLANK_PATH", $this->getImage("browser/blank.png"));
167 $tpl->parseCurrentBlock();
168 }
169
170 if ($this->output_icons) {
171 $tpl->setCurrentBlock("icon");
172 $tpl->setVariable("ICON_IMAGE", $this->getImage("icon_cat.svg", $a_option["type"], $a_obj_id));
173
174 $tpl->setVariable("TARGET_ID", "iconid_" . $a_node_id);
175 $this->iconList[] = "iconid_" . $a_node_id;
176 $tpl->setVariable("TXT_ALT_IMG", $lng->txt($a_option["desc"]));
177 $tpl->parseCurrentBlock();
178 }
179
180 if (strlen($formItem = $this->buildFormItem($a_node_id, $a_option['type']))) {
181 $tpl->setCurrentBlock('check');
182 $tpl->setVariable('OBJ_CHECK', $formItem);
183 $tpl->parseCurrentBlock();
184 }
185
186 if ($this->isClickable($a_option["type"], $a_node_id, $a_obj_id)) { // output link
187 $tpl->setCurrentBlock("link");
188 //$target = (strpos($this->target, "?") === false) ?
189 // $this->target."?" : $this->target."&";
190 //$tpl->setVariable("LINK_TARGET", $target.$this->target_get."=".$a_node_id.$this->params_get);
191 $tpl->setVariable("LINK_TARGET", $this->buildLinkTarget($a_node_id, $a_option["type"]));
192
193 $style_class = $this->getNodeStyleClass($a_node_id, $a_option["type"]);
194
195 if ($style_class != "") {
196 $tpl->setVariable("A_CLASS", ' class="' . $style_class . '" ');
197 }
198
199 if (($onclick = $this->buildOnClick($a_node_id, $a_option["type"], $a_option["title"])) != "") {
200 $tpl->setVariable("ONCLICK", "onClick=\"$onclick\"");
201 }
202
203 $tpl->setVariable("LINK_NAME", $a_node_id);
204 $tpl->setVariable("TITLE", ilUtil::shortenText(
205 $this->buildTitle($a_option["title"], $a_node_id, $a_option["type"]),
206 $this->textwidth,
207 true
208 ));
209 $tpl->setVariable("DESC", ilUtil::shortenText(
210 $this->buildDescription($a_option["description"], $a_node_id, $a_option["type"]),
211 $this->textwidth,
212 true
213 ));
214 $frame_target = $this->buildFrameTarget($a_option["type"], $a_node_id, $a_option["obj_id"]);
215 if ($frame_target != "") {
216 $tpl->setVariable("TARGET", " target=\"" . $frame_target . "\"");
217 }
218 $tpl->parseCurrentBlock();
219 } else { // output text only
220 $tpl->setCurrentBlock("text");
221 $tpl->setVariable("OBJ_TITLE", ilUtil::shortenText(
222 $this->buildTitle($a_option["title"], $a_node_id, $a_option["type"]),
223 $this->textwidth,
224 true
225 ));
226 $tpl->setVariable("OBJ_DESC", ilUtil::shortenText(
227 $this->buildDescription($a_option["desc"], $a_node_id, $a_option["type"]),
228 $this->textwidth,
229 true
230 ));
231 $tpl->parseCurrentBlock();
232 }
233
234 $tpl->setCurrentBlock("list_item");
235 $tpl->parseCurrentBlock();
236 $tpl->touchBlock("element");
237 }
238
239
240
241 /*
242 * overwritten method from base class
243 * @access public
244 * @param integer obj_id
245 * @param integer array options
246 * @return string
247 */
248 public function formatHeader($tpl, $a_obj_id, $a_option)
249 {
250 global $DIC;
251
252 $lng = $DIC['lng'];
253 $ilias = $DIC['ilias'];
254
255 // custom icons
256 $path = ilObject::_getIcon($a_obj_id, "tiny", "root");
257
258
259 $tpl->setCurrentBlock("icon");
260 $nd = $this->tree->getNodeData($this->getRoot());
261
262 $title = $nd["title"];
263
264 $tpl->setVariable("ICON_IMAGE", $path);
265 $tpl->setVariable("TXT_ALT_IMG", $title);
266 $tpl->parseCurrentBlock();
267
268 if (strlen($formItem = $this->buildFormItem($a_obj_id, $a_option['type']))) {
269 $tpl->setCurrentBlock('check');
270 $tpl->setVariable('OBJ_CHECK', $formItem);
271 $tpl->parseCurrentBlock();
272 }
273
274 $tpl->setVariable('OBJ_TITLE', $this->buildTitle($title, $a_obj_id, ''));
275 }
276
277 public function buildTitle($title, $a_obj_id, $a_type)
278 {
279 if (strlen($title) >= 22) {
280 #$title = substr($title, 0,22).'...';
281 }
282
283 include_once './Services/WebServices/ECS/classes/Tree/class.ilECSCmsData.php';
285 $this->server_id,
286 $this->mid,
287 $this->tree_id,
288 $a_obj_id
289 );
290
291
292
293 switch ($status) {
295 return '<font style="font-weight: bold">' . $title . '</font>';
296
298 return '<font style="font-weight: bold;font-style: italic">' . $title . '</font>';
299
301 return '<font style="font-style: italic">' . $title . '</font>';
302
304 return $title;
305
307 return '<font class="warning">' . $title . '</font>';
308
309 default:
310 return $title;
311 }
312 }
313}
An exception for terminatinating execution or to throw for unit testing.
const MAPPING_PENDING_DISCONNECTABLE
const MAPPING_PENDING_NOT_DISCONNECTABLE
static lookupStatusByObjId($a_server_id, $a_mid, $a_tree_id, $obj_id)
Lookup status.
isClickable($a_type, $a_ref_id=0, $a_obj_id=0)
no item is clickable
formatObject($tpl, $a_node_id, $a_option, $a_obj_id=0)
Creates output recursive method @access private.
buildTitle($title, $a_obj_id, $a_type)
standard implementation for title, may be overwritten by derived classes
formatHeader($tpl, $a_obj_id, $a_option)
Creates output for header (is empty here but can be overwritten in derived classes)
setTree(ilECSCmsTree $tree)
Set cms tree.
__construct($a_target, $a_server_id, $a_mid, $a_tree_id)
Class ilExplorer class for explorer view in admin frame.
getNodeStyleClass($a_id, $a_type)
get style class for node
buildOnClick($a_node_id, $a_type, $a_title)
get onclick event handling (may be overwritten by derived classes)
setTitleLength($a_length)
Set max title length.
getImage($a_name, $a_type="", $a_obj_id="")
get image path (may be overwritten by derived classes)
buildFrameTarget($a_type, $a_child=0, $a_obj_id=0)
get frame target (may be overwritten by derived classes)
createTarget($a_type, $a_node_id, $a_highlighted_subtree=false, $a_append_anch=true)
Creates Get Parameter @access private.
setOrderColumn($a_column)
set the order column @access public
buildDescription($a_desc, $a_id, $a_type)
standard implementation for description, may be overwritten by derived classes
buildLinkTarget($a_node_id, $a_type)
get link target (may be overwritten by derived classes)
getRoot()
get root id
static formRadioButton($checked, $varname, $value, $onclick=null, $disabled=false)
??? @access public
static formCheckbox($checked, $varname, $value, $disabled=false)
??? @access public
static shortenText( $a_str, $a_len, $a_dots=false, $a_next_blank=false, $a_keep_extension=false)
shorten a string to given length.
$nd
Definition: error.php:12
__construct(Container $dic, ilPlugin $plugin)
@inheritDoc
redirection script todo: (a better solution should control the processing via a xml file)
$a_type
Definition: workflow.php:92
$DIC
Definition: xapitoken.php:46