ILIAS  release_6 Revision v6.24-5-g0c8bfefb3b8
class.ilWebResourceEditableLinkTableGUI.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/Table/classes/class.ilTable2GUI.php';
5include_once './Modules/WebResource/classes/class.ilLinkResourceItems.php';
6include_once './Modules/WebResource/classes/class.ilParameterAppender.php';
7include_once './Services/Form/classes/class.ilFormPropertyGUI.php';
8include_once './Services/Form/classes/class.ilLinkInputGUI.php';
9
19{
20 protected $web_res = null;
21 protected $invalid = array();
22
26 public function __construct($a_parent_obj, $a_parent_cmd)
27 {
28 global $DIC;
29
30 $lng = $DIC['lng'];
31 $ilAccess = $DIC['ilAccess'];
32 $ilCtrl = $DIC['ilCtrl'];
33
34 parent::__construct($a_parent_obj, $a_parent_cmd);
35
36 // Initialize
37 $this->web_res = new ilLinkResourceItems($this->getParentObject()->object->getId());
38
39
40 $this->setTitle($lng->txt('webr_edit_links'));
41
42 $this->addColumn('', '', '1px');
43 $this->addColumn($this->lng->txt('title'), 'title', '25%');
44 $this->addColumn($this->lng->txt('target'), 'target', '25%');
45 $this->addColumn($this->lng->txt('valid'), 'valid', '10px');
46 $this->addColumn($this->lng->txt('webr_active'), 'active', '10px');
47 $this->addColumn($this->lng->txt('webr_disable_check'), 'disable_check', '10px');
48 #$this->addColumn('','','10px');
49
50 // TODO: Dynamic fields
51
52 // TODO: sorting
53 $this->setEnableHeader(true);
54 $this->setFormAction($ilCtrl->getFormAction($this->getParentObject()));
55 $this->setRowTemplate("tpl.webr_editable_link_row.html", 'Modules/WebResource');
56 $this->setEnableTitle(true);
57 $this->setEnableNumInfo(true);
58 $this->setSelectAllCheckbox('link_ids');
59
60 $this->addMultiCommand('confirmDeleteLink', $this->lng->txt('delete'));
61 $this->addCommandButton('updateLinks', $this->lng->txt('save'));
62 }
63
69 public function setInvalidLinks($a_links)
70 {
71 $this->invalid = $a_links;
72 }
73
78 public function getInvalidLinks()
79 {
80 return $this->invalid ? $this->invalid : array();
81 }
82
88 public function parseSelectedLinks($a_link_ids)
89 {
90 $rows = array();
91 foreach ($a_link_ids as $link_id) {
92 $link = $this->getWebResourceItems()->getItem($link_id);
93
94 $tmp['id'] = $link['link_id'];
95 $tmp['title'] = $link['title'];
96 $tmp['description'] = $link['description'];
97 $tmp['target'] = $link['target'];
98 $tmp['link_id'] = $link['link_id'];
99 $tmp['active'] = $link['active'];
100 $tmp['disable_check'] = $link['disable_check'];
101 $tmp['valid'] = $link['valid'];
102 $tmp['last_check'] = $link['last_check'];
103 $tmp['params'] = array();
104
105 $rows[] = $tmp;
106 }
107 $this->setData($rows);
108 }
109
110 public function updateFromPost()
111 {
112 $rows = array();
113 foreach ($this->getData() as $link) {
114 $link_id = $link['id'];
115
116 $tmp = $link;
117 $tmp['title'] = $_POST['links'][$link_id]['tit'];
118 $tmp['description'] = $_POST['links'][$link_id]['des'];
119 $tmp['target'] = $_POST['links'][$link_id]['tar'];
120 $tmp['valid'] = $_POST['links'][$link_id]['vali'];
121 $tmp['disable_check'] = $_POST['links'][$link_id]['che'];
122 $tmp['active'] = $_POST['links'][$link_id]['act'];
123 $tmp['value'] = $_POST['links'][$link_id]['val'];
124 $tmp['name'] = $_POST['links'][$link_id]['nam'];
125 $tmp['params'] = array();
126
127 // var_dump($_POST, $link_id);
128
129 // var_dump($_POST['tar_'.$link_id.'_ajax_type']);
130 // var_dump($_POST['tar_'.$link_id.'_ajax_id']);
131
132 $rows[] = $tmp;
133 }
134 $this->setData($rows);
135 }
136
137
142 public function parse()
143 {
144 $rows = array();
145
146 $items = $this->getWebResourceItems()->sortItems(
147 $this->getWebResourceItems()->getAllItems()
148 );
149
150 foreach ($items as $link) {
151 $tmp['id'] = $link['link_id'];
152 $tmp['title'] = $link['title'];
153 $tmp['description'] = $link['description'];
154 $tmp['target'] = $link['target'];
155 $tmp['link_id'] = $link['link_id'];
156 $tmp['active'] = $link['active'];
157 $tmp['disable_check'] = $link['disable_check'];
158 $tmp['valid'] = $link['valid'];
159 $tmp['last_check'] = $link['last_check'];
160
161 $tmp['params'] = ilParameterAppender::_getParams($link['link_id']);
162
163 $rows[] = $tmp;
164 }
165 $this->setData($rows);
166 }
167
171 protected function fillRow($a_set)
172 {
173 global $DIC;
174
175 $ilCtrl = $DIC['ilCtrl'];
176 $lng = $DIC['lng'];
177
178 if (!stristr($a_set['target'], '|')) {
179 $this->tpl->setCurrentBlock('external');
180 $this->tpl->setVariable('VAL_ID', $a_set['id']);
181 $this->tpl->setVariable('VAL_TARGET', ilUtil::prepareFormOutput($a_set['target']));
182 $this->tpl->parseCurrentBlock();
183 } else {
184 $ilCtrl->setParameterByClass('ilinternallinkgui', 'postvar', 'tar_' . $a_set['id']);
185 $trigger_link = array(get_class($this->parent_obj), 'ilinternallinkgui');
186 $trigger_link = $ilCtrl->getLinkTargetByClass($trigger_link, '', false, true, false);
187 $ilCtrl->setParameterByClass('ilinternallinkgui', 'postvar', '');
188
189 $this->tpl->setCurrentBlock('internal');
190 $this->tpl->setVariable('VAL_ID', $a_set['id']);
191 $this->tpl->setVariable('VAL_TRIGGER_INTERNAL', $trigger_link);
192 $this->tpl->setVariable('TXT_TRIGGER_INTERNAL', $this->lng->txt('edit'));
193
194 // info about current link
195 if ($a_set['target']) {
196 $parts = explode('|', $a_set['target']);
197
198 $this->tpl->setVariable('VAL_INTERNAL_TYPE', $parts[0]);
199 $this->tpl->setVariable('VAL_INTERNAL_ID', $parts[1]);
200
201 $parts = ilLinkInputGUI::getTranslatedValue($a_set['target']);
202
203 $this->tpl->setVariable('TXT_TRIGGER_INFO', $parts['type'] . ' "' .
204 $parts['name'] . '"');
205 }
206
207 $this->tpl->parseCurrentBlock();
208 }
209
210 $this->tpl->setVariable('TXT_LAST_CHECK', $this->lng->txt('webr_last_check_table'));
211 $this->tpl->setVariable(
212 'LAST_CHECK',
213 $a_set['last_check'] ?
214 ilDatePresentation::formatDate(new ilDateTime($a_set['last_check'], IL_CAL_UNIX)) :
215 $this->lng->txt('no_date')
216 );
217
218 // Valid
219 $this->tpl->setVariable(
220 'VAL_VALID',
221 ilUtil::formCheckbox($a_set['valid'], 'links[' . $a_set['id'] . '][vali]', 1)
222 );
223
224 // Active
225 $this->tpl->setVariable(
226 'VAL_ACTIVE',
227 ilUtil::formCheckbox($a_set['active'], 'links[' . $a_set['id'] . '][act]', 1)
228 );
229
230 // Valid
231 $this->tpl->setVariable(
232 'VAL_CHECK',
233 ilUtil::formCheckbox($a_set['disable_check'], 'links[' . $a_set['id'] . '][che]', 1)
234 );
235
236 // Dynamic parameters
237 foreach ($a_set['params'] as $param_id => $param) {
238 $this->tpl->setCurrentBlock('dyn_del_row');
239 $this->tpl->setVariable('TXT_DYN_DEL', $this->lng->txt('delete'));
240 $ilCtrl->setParameterByClass(get_class($this->getParentObject()), 'param_id', $param_id);
241 $this->tpl->setVariable('DYN_DEL_LINK', $ilCtrl->getLinkTarget($this->getParentObject(), 'deleteParameter'));
242 $this->tpl->setVariable('VAL_DYN', ilParameterAppender::parameterToInfo($param['name'], $param['value']));
243 $this->tpl->parseCurrentBlock();
244 }
245 if ($a_set['params']) {
246 $this->tpl->setCurrentBlock('dyn_del_rows');
247 $this->tpl->setVariable('TXT_EXISTING', $this->lng->txt('links_existing_params'));
248 $this->tpl->parseCurrentBlock();
249 }
250
252 $this->tpl->setCurrentBlock('dyn_add');
253 $this->tpl->setVariable('TXT_DYN_ADD', $this->lng->txt('links_add_param'));
254
255 $this->tpl->setVariable('TXT_DYN_NAME', $this->lng->txt('links_name'));
256 $this->tpl->setVariable('TXT_DYN_VALUE', $this->lng->txt('links_value'));
257 $this->tpl->setVariable('VAL_DYN_NAME', $a_set['name']);
258 $this->tpl->setVariable('DYN_ID', $a_set['id']);
259 $this->tpl->setVariable(
260 'SEL_DYN_VAL',
262 $a_set['value'] ? $a_set['value'] : 0,
263 'links[' . $a_set['id'] . '][val]',
265 false,
266 true
267 )
268 );
269 $this->tpl->parseCurrentBlock();
270 }
271
272 if (in_array($a_set['id'], $this->getInvalidLinks())) {
273 $this->tpl->setVariable('CSS_ROW', 'warn');
274 }
275
276 // Check
277 $this->tpl->setVariable('VAL_ID', $a_set['id']);
278 $this->tpl->setVariable(
279 'VAL_CHECKBOX',
280 ilUtil::formCheckbox(false, 'link_ids[]', $a_set['id'])
281 );
282
283 // Column title
284 $this->tpl->setVariable('TXT_TITLE', $this->lng->txt('title'));
285 $this->tpl->setVariable('VAL_TITLE', ilUtil::prepareFormOutput($a_set['title']));
286 $this->tpl->setVariable('TXT_DESC', $this->lng->txt('description'));
287 $this->tpl->setVariable('VAL_DESC', ilUtil::prepareFormOutput($a_set['description']));
288
289 // Column Target
290 $this->tpl->setVariable('TXT_TARGET', $this->lng->txt('target'));
291 }
292
297 protected function getWebResourceItems()
298 {
299 return $this->web_res;
300 }
301}
$_POST["username"]
An exception for terminatinating execution or to throw for unit testing.
const IL_CAL_UNIX
static formatDate(ilDateTime $date, $a_skip_day=false, $a_include_wd=false, $include_seconds=false)
Format a date @access public.
@classDescription Date and time handling
static getTranslatedValue($a_value)
Class ilObjLinkResourceGUI.
static parameterToInfo($a_name, $a_value)
Get info text describing an existing dynamic link.
static _getOptionSelect()
Get options as array.
static _getParams($a_link_id)
Get dynamic parameter definitions.
static _isEnabled()
Check if dynamic parameters are enabled.
Class ilTable2GUI.
setEnableHeader($a_enableheader)
Set Enable Header.
getParentObject()
Get parent object.
setTitle($a_title, $a_icon=0, $a_icon_alt=0)
Set title and title icon.
setSelectAllCheckbox($a_select_all_checkbox, $a_select_all_on_top=false)
Set the name of the checkbox that should be toggled with a select all button.
setData($a_data)
set table data @access public
setEnableTitle($a_enabletitle)
Set Enable Title.
setEnableNumInfo($a_val)
Set enable num info.
setRowTemplate($a_template, $a_template_dir="")
Set row template.
addMultiCommand($a_cmd, $a_text)
Add Command button.
addColumn( $a_text, $a_sort_field="", $a_width="", $a_is_checkbox_action_column=false, $a_class="", $a_tooltip="", $a_tooltip_with_html=false)
Add a column to the header.
setFormAction($a_form_action, $a_multipart=false)
Set Form action parameter.
addCommandButton($a_cmd, $a_text, $a_onclick='', $a_id="", $a_class=null)
Add Command button.
static formCheckbox($checked, $varname, $value, $disabled=false)
??? @access public
static formSelect( $selected, $varname, $options, $multiple=false, $direct_text=false, $size="0", $style_class="", $attribs="", $disabled=false)
Builds a select form field with options and shows the selected option first.
static prepareFormOutput($a_str, $a_strip=false)
prepares string output for html forms @access public
__construct($a_parent_obj, $a_parent_cmd)
Constructor.
global $ilCtrl
Definition: ilias.php:18
__construct(Container $dic, ilPlugin $plugin)
@inheritDoc
$DIC
Definition: xapitoken.php:46
$param
Definition: xapitoken.php:31
$rows
Definition: xhr_table.php:10