ILIAS  release_5-1 Revision 5.0.0-5477-g43f3e3fab5f
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 $tree;
29
30 parent::__construct($a_target);
31
32 $this->type = self::SEL_TYPE_CHECK;
33 $this->setOrderColumn('title');
34 $this->setTitleLength(1024);
35
36 // reset filter
37 $this->filter = array();
38 $this->addFormItemForType('');
39
40 $this->server_id = $a_server_id;
41 $this->mid = $a_mid;
42 $this->tree_id = $a_tree_id;
43 }
44
48 public function setTree(ilECSCmsTree $tree)
49 {
50 $this->tree = $tree;
51 }
52
60 public function isClickable($a_type, $a_ref_id, $a_obj_id = 0)
61 {
62 return false;
63 }
64
69 public function addFormItemForType($type)
70 {
71 $this->form_items[$type] = true;
72 }
73
75 {
76 $this->form_items[$type] = false;
77 }
78
79 public function setCheckedItems($a_checked_items = array())
80 {
81 $this->checked_items = $a_checked_items;
82 }
83
84 public function isItemChecked($a_id)
85 {
86 return in_array($a_id, $this->checked_items) ? true : false;
87 }
88
89 public function setPostVar($a_post_var)
90 {
91 $this->post_var = $a_post_var;
92 }
93 public function getPostVar()
94 {
95 return $this->post_var;
96 }
97
98 public function buildFormItem($a_node_id, $a_type)
99 {
100 if(!array_key_exists($a_type, $this->form_items) || !$this->form_items[$a_type])
101 {
102 return '';
103 }
104
105 include_once './Services/WebServices/ECS/classes/Tree/class.ilECSCmsData.php';
107 $this->server_id,
108 $this->mid,
109 $this->tree_id,
110 $a_node_id
111 );
112
113 if($status == ilECSCmsData::MAPPING_DELETED)
114 {
115 return ilUtil::formCheckbox((int)$this->isItemChecked($a_node_id), $this->post_var, $a_node_id,true);
116 }
117 switch($this->type)
118 {
120 return ilUtil::formCheckbox((int)$this->isItemChecked($a_node_id), $this->post_var, $a_node_id);
121 break;
122
124 return ilUtil::formRadioButton((int)$this->isItemChecked($a_node_id), $this->post_var, $a_node_id);
125 break;
126 }
127 }
128
129 function formatObject(&$tpl, $a_node_id, $a_option, $a_obj_id = 0)
130 {
131 global $lng;
132
133 if (!isset($a_node_id) or !is_array($a_option))
134 {
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 {
142 if ($picture == 'plus')
143 {
144 $tpl->setCurrentBlock("expander");
145 $tpl->setVariable("EXP_DESC", $lng->txt("expand"));
146 $target = $this->createTarget('+',$a_node_id);
147 $tpl->setVariable("LINK_NAME", $a_node_id);
148 $tpl->setVariable("LINK_TARGET_EXPANDER", $target);
149 $tpl->setVariable("IMGPATH", $this->getImage("browser/plus.png"));
150 $tpl->parseCurrentBlock();
151 $pic = true;
152 }
153
154 if ($picture == 'minus' && $this->show_minus)
155 {
156 $tpl->setCurrentBlock("expander");
157 $tpl->setVariable("EXP_DESC", $lng->txt("collapse"));
158 $target = $this->createTarget('-',$a_node_id);
159 $tpl->setVariable("LINK_NAME", $a_node_id);
160 $tpl->setVariable("LINK_TARGET_EXPANDER", $target);
161 $tpl->setVariable("IMGPATH", $this->getImage("browser/minus.png"));
162 $tpl->parseCurrentBlock();
163 $pic = true;
164 }
165 }
166
167 if (!$pic)
168 {
169 $tpl->setCurrentBlock("blank");
170 $tpl->setVariable("BLANK_PATH", $this->getImage("browser/blank.png"));
171 $tpl->parseCurrentBlock();
172 }
173
174 if ($this->output_icons)
175 {
176 $tpl->setCurrentBlock("icon");
177 $tpl->setVariable("ICON_IMAGE" , $this->getImage("icon_cat.svg", $a_option["type"], $a_obj_id));
178
179 $tpl->setVariable("TARGET_ID" , "iconid_".$a_node_id);
180 $this->iconList[] = "iconid_".$a_node_id;
181 $tpl->setVariable("TXT_ALT_IMG", $lng->txt($a_option["desc"]));
182 $tpl->parseCurrentBlock();
183 }
184
185 if(strlen($formItem = $this->buildFormItem($a_node_id, $a_option['type'])))
186 {
187 $tpl->setCurrentBlock('check');
188 $tpl->setVariable('OBJ_CHECK', $formItem);
189 $tpl->parseCurrentBlock();
190 }
191
192 if ($this->isClickable($a_option["type"], $a_node_id,$a_obj_id)) // output link
193 {
194 $tpl->setCurrentBlock("link");
195 //$target = (strpos($this->target, "?") === false) ?
196 // $this->target."?" : $this->target."&";
197 //$tpl->setVariable("LINK_TARGET", $target.$this->target_get."=".$a_node_id.$this->params_get);
198 $tpl->setVariable("LINK_TARGET", $this->buildLinkTarget($a_node_id, $a_option["type"]));
199
200 $style_class = $this->getNodeStyleClass($a_node_id, $a_option["type"]);
201
202 if ($style_class != "")
203 {
204 $tpl->setVariable("A_CLASS", ' class="'.$style_class.'" ' );
205 }
206
207 if (($onclick = $this->buildOnClick($a_node_id, $a_option["type"], $a_option["title"])) != "")
208 {
209 $tpl->setVariable("ONCLICK", "onClick=\"$onclick\"");
210 }
211
212 $tpl->setVariable("LINK_NAME", $a_node_id);
213 $tpl->setVariable("TITLE", ilUtil::shortenText(
214 $this->buildTitle($a_option["title"], $a_node_id, $a_option["type"]),
215 $this->textwidth, true));
216 $tpl->setVariable("DESC", ilUtil::shortenText(
217 $this->buildDescription($a_option["description"], $a_node_id, $a_option["type"]), $this->textwidth, true));
218 $frame_target = $this->buildFrameTarget($a_option["type"], $a_node_id, $a_option["obj_id"]);
219 if ($frame_target != "")
220 {
221 $tpl->setVariable("TARGET", " target=\"".$frame_target."\"");
222 }
223 $tpl->parseCurrentBlock();
224 }
225 else // output text only
226 {
227 $tpl->setCurrentBlock("text");
228 $tpl->setVariable("OBJ_TITLE", ilUtil::shortenText(
229 $this->buildTitle($a_option["title"], $a_node_id, $a_option["type"]), $this->textwidth, true));
230 $tpl->setVariable("OBJ_DESC", ilUtil::shortenText(
231 $this->buildDescription($a_option["desc"], $a_node_id, $a_option["type"]), $this->textwidth, true));
232 $tpl->parseCurrentBlock();
233 }
234
235 $tpl->setCurrentBlock("list_item");
236 $tpl->parseCurrentBlock();
237 $tpl->touchBlock("element");
238 }
239
240
241
242 /*
243 * overwritten method from base class
244 * @access public
245 * @param integer obj_id
246 * @param integer array options
247 * @return string
248 */
249 function formatHeader(&$tpl, $a_obj_id,$a_option)
250 {
251 global $lng, $ilias;
252
253 // custom icons
254 $path = ilObject::_getIcon($a_obj_id, "tiny", "root");
255
256
257 $tpl->setCurrentBlock("icon");
258 $nd = $this->tree->getNodeData($this->getRoot());
259
260 $title = $nd["title"];
261
262 $tpl->setVariable("ICON_IMAGE", $path);
263 $tpl->setVariable("TXT_ALT_IMG", $title);
264 $tpl->parseCurrentBlock();
265
266 if(strlen($formItem = $this->buildFormItem($a_obj_id, $a_option['type'])))
267 {
268 $tpl->setCurrentBlock('check');
269 $tpl->setVariable('OBJ_CHECK', $formItem);
270 $tpl->parseCurrentBlock();
271 }
272
273 $tpl->setVariable('OBJ_TITLE', $this->buildTitle($title, $a_obj_id, ''));
274 }
275
276 public function buildTitle($title, $a_obj_id, $a_type)
277 {
278 if(strlen($title) >= 22)
279 {
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)
294 {
296 return '<font style="font-weight: bold">'.$title.'</font>';
297
299 return '<font style="font-weight: bold;font-style: italic">'.$title.'</font>';
300
302 return '<font style="font-style: italic">'.$title.'</font>';
303
305 return $title;
306
308 return '<font class="warning">'.$title.'</font>';
309
310 default:
311 return $title;
312 }
313
314 }
315
316
317}
318?>
global $tpl
Definition: ilias.php:8
const MAPPING_PENDING_DISCONNECTABLE
const MAPPING_PENDING_NOT_DISCONNECTABLE
static lookupStatusByObjId($a_server_id, $a_mid, $a_tree_id, $obj_id)
Lookup status.
formatHeader(&$tpl, $a_obj_id, $a_option)
Creates output for header (is empty here but can be overwritten in derived classes)
buildTitle($title, $a_obj_id, $a_type)
standard implementation for title, may be overwritten by derived classes
setTree(ilECSCmsTree $tree)
Set cms tree.
__construct($a_target, $a_server_id, $a_mid, $a_tree_id)
isClickable($a_type, $a_ref_id, $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.
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 _getIcon($a_obj_id="", $a_size="big", $a_type="", $a_offline=false)
Get icon for repository item.
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:11
redirection script todo: (a better solution should control the processing via a xml file)
global $lng
Definition: privfeed.php:40
$path
Definition: index.php:22