ILIAS  release_5-1 Revision 5.0.0-5477-g43f3e3fab5f
class.ilLPListOfObjectsGUI.php
Go to the documentation of this file.
1 <?php
2 
3 /* Copyright (c) 1998-2010 ILIAS open source, Extended GPL, see docs/LICENSE */
4 
5 
6 include_once './Services/Tracking/classes/class.ilLearningProgressBaseGUI.php';
7 include_once './Services/Tracking/classes/class.ilLPStatusWrapper.php';
8 include_once 'Services/Search/classes/class.ilUserFilterGUI.php';
9 
23 {
24  var $details_id = 0;
25  var $details_type = '';
26  var $details_mode = 0;
27 
28  function ilLPListOfObjectsGUI($a_mode,$a_ref_id)
29  {
30  global $ilUser,$ilObjDataCache;
31 
32  parent::ilLearningProgressBaseGUI($a_mode,$a_ref_id);
33 
34  // Set item id for details
35  $this->__initDetails((int) $_REQUEST['details_id']);
36  }
40  function &executeCommand()
41  {
42  global $ilUser;
43 
44  $this->ctrl->setReturn($this, "");
45 
46  switch($this->ctrl->getNextClass())
47  {
48  case 'iltruserobjectspropstablegui':
49  $user_id = (int)$_GET["user_id"];
50  $this->ctrl->setParameter($this, "user_id", $user_id);
51 
52  $this->ctrl->setParameter($this, "details_id", $this->details_id);
53 
54  include_once("./Services/Tracking/classes/repository_statistics/class.ilTrUserObjectsPropsTableGUI.php");
55  $table_gui = new ilTrUserObjectsPropsTableGUI($this, "userDetails",
56  $user_id, $this->details_obj_id, $this->details_id);
57  $this->ctrl->forwardCommand($table_gui);
58  break;
59 
60  case 'iltrsummarytablegui':
61  $cmd = "showObjectSummary";
62  if(!$this->details_id)
63  {
64  $this->details_id = ROOT_FOLDER_ID;
65  $cmd = "show";
66  }
67  include_once './Services/Tracking/classes/repository_statistics/class.ilTrSummaryTableGUI.php';
68  $table_gui = new ilTrSummaryTableGUI($this, $cmd, $this->details_id);
69  $this->ctrl->forwardCommand($table_gui);
70  break;
71 
72  case 'iltrmatrixtablegui':
73  include_once './Services/Tracking/classes/repository_statistics/class.ilTrMatrixTableGUI.php';
74  $table_gui = new ilTrMatrixTableGUI($this, "showUserObjectMatrix", $this->details_id);
75  $this->ctrl->forwardCommand($table_gui);
76  break;
77 
78  case 'iltrobjectuserspropstablegui':
79  $this->ctrl->setParameter($this, "details_id", $this->details_id);
80 
81  include_once './Services/Tracking/classes/repository_statistics/class.ilTrObjectUsersPropsTableGUI.php';
82  $table_gui = new ilTrObjectUsersPropsTableGUI($this, "details", $this->details_obj_id, $this->details_id);
83  $this->ctrl->forwardCommand($table_gui);
84  break;
85 
86  default:
87  $cmd = $this->__getDefaultCommand();
88  $this->$cmd();
89  }
90 
91  return true;
92  }
93 
94  function updateUser()
95  {
96  global $rbacsystem;
97 
98  if(isset($_GET["userdetails_id"]))
99  {
100  $parent = $this->details_id;
101  $this->__initDetails((int)$_GET["userdetails_id"]);
102  }
103 
104  include_once './Services/Tracking/classes/class.ilLearningProgressAccess.php';
105  if(!ilLearningProgressAccess::checkPermission('edit_learning_progress', $this->details_id))
106  {
107  ilUtil::sendFailure($this->lng->txt("permission_denied"), true);
108  $this->ctrl->returnToParent($this);
109  }
110 
111  $this->__updateUser($_REQUEST['user_id'], $this->details_obj_id);
112  ilUtil::sendSuccess($this->lng->txt('trac_update_edit_user'), true);
113 
114  $this->ctrl->setParameter($this, "details_id", $this->details_id); // #15043
115 
116  // #14993
117  if(!isset($_GET["userdetails_id"]))
118  {
119  $this->ctrl->redirect($this, "details");
120  }
121  else
122  {
123  $this->ctrl->setParameter($this, "userdetails_id", (int)$_GET["userdetails_id"]);
124  $this->ctrl->redirect($this, "userdetails");
125  }
126  }
127 
128  function editUser()
129  {
130  global $ilObjDataCache, $rbacsystem;
131 
132  $parent_id = $this->details_id;
133  if(isset($_GET["userdetails_id"]))
134  {
135  $this->__initDetails((int)$_GET["userdetails_id"]);
136  $sub_id = $this->details_id;
137  $cancel = "userdetails";
138  }
139  else
140  {
141  $sub_id = NULL;
142  $cancel = "details";
143  }
144 
145  include_once './Services/Tracking/classes/class.ilLearningProgressAccess.php';
146  if(!ilLearningProgressAccess::checkPermission('edit_learning_progress', $this->details_id))
147  {
148  ilUtil::sendFailure($this->lng->txt("permission_denied"), true);
149  $this->ctrl->returnToParent($this);
150  }
151 
152  include_once("./Services/InfoScreen/classes/class.ilInfoScreenGUI.php");
153  $info = new ilInfoScreenGUI($this);
154  $info->setFormAction($this->ctrl->getFormAction($this));
155  $this->__showObjectDetails($info, $this->details_obj_id);
156  $this->__appendUserInfo($info, (int)$_GET['user_id']);
157  // $this->__appendLPDetails($info,$this->details_obj_id,(int)$_GET['user_id']);
158 
159  $this->tpl->setVariable("ADM_CONTENT", $this->__showEditUser((int)$_GET['user_id'], $parent_id, $cancel, $sub_id)."<br />".$info->getHTML());
160  }
161 
162  function details()
163  {
164  global $ilToolbar;
165 
166  $this->tpl->addBlockFile('ADM_CONTENT','adm_content','tpl.lp_loo.html','Services/Tracking');
167 
168  // Show back button
169  if($this->getMode() == self::LP_CONTEXT_PERSONAL_DESKTOP or
170  $this->getMode() == self::LP_CONTEXT_ADMINISTRATION)
171  {
172  $print_view = false;
173 
174  $ilToolbar->addButton($this->lng->txt('trac_view_list'),
175  $this->ctrl->getLinkTarget($this,'show'));
176  }
177  else
178  {
179  /*
180  $print_view = (bool)$_GET['prt'];
181  if(!$print_view)
182  {
183  $ilToolbar->setFormAction($this->ctrl->getFormAction($this));
184  $this->ctrl->setParameter($this, 'prt', 1);
185  $ilToolbar->addButton($this->lng->txt('print_view'),$this->ctrl->getLinkTarget($this,'details'), '_blank');
186  $this->ctrl->setParameter($this, 'prt', '');
187  }
188  */
189  }
190 
191  include_once("./Services/InfoScreen/classes/class.ilInfoScreenGUI.php");
192  $info = new ilInfoScreenGUI($this);
193  $info->setFormAction($this->ctrl->getFormAction($this));
194  if($this->__showObjectDetails($info, $this->details_obj_id))
195  {
196  $this->tpl->setCurrentBlock("info");
197  $this->tpl->setVariable("INFO_TABLE",$info->getHTML());
198  $this->tpl->parseCurrentBlock();
199  }
200 
201  $this->__showUsersList($print_view);
202  }
203 
204  function __showUsersList($a_print_view = false)
205  {
206  if($this->isAnonymized())
207  {
208  ilUtil::sendFailure($this->lng->txt('permission_denied'));
209  return;
210  }
211 
212  $this->ctrl->setParameter($this, "details_id", $this->details_id);
213 
214  include_once "Services/Tracking/classes/repository_statistics/class.ilTrObjectUsersPropsTableGUI.php";
215  $gui = new ilTrObjectUsersPropsTableGUI($this, "details", $this->details_obj_id, $this->details_id, $a_print_view);
216 
217  $this->tpl->setVariable("LP_OBJECTS", $gui->getHTML());
218  $this->tpl->setVariable("LEGEND", $this->__getLegendHTML());
219 
220  /*
221  if($a_print_view)
222  {
223  echo $this->tpl->get("DEFAULT", false, false, false, false, false, false);
224  exit();
225  }
226  */
227  }
228 
229  function userDetails()
230  {
231  global $ilObjDataCache, $ilToolbar;
232 
233  if($this->isAnonymized())
234  {
235  ilUtil::sendFailure($this->lng->txt('permission_denied'));
236  return;
237  }
238 
239  $this->ctrl->setParameter($this, "details_id", $this->details_id);
240 
241  $print_view = (bool)$_GET['prt'];
242  if(!$print_view)
243  {
244  // Show back button
245  $ilToolbar->addButton($this->lng->txt('trac_view_list'), $this->ctrl->getLinkTarget($this,'details'));
246  }
247 
248  $user_id = (int)$_GET["user_id"];
249  $this->ctrl->setParameter($this, "user_id", $user_id);
250 
251  /*
252  if(!$print_view)
253  {
254  $this->ctrl->setParameter($this, 'prt', 1);
255  $ilToolbar->addButton($this->lng->txt('print_view'),$this->ctrl->getLinkTarget($this,'userDetails'), '_blank');
256  $this->ctrl->setParameter($this, 'prt', '');
257  };
258  */
259 
260  $this->tpl->addBlockFile('ADM_CONTENT','adm_content','tpl.lp_loo.html','Services/Tracking');
261 
262  include_once("./Services/InfoScreen/classes/class.ilInfoScreenGUI.php");
263  $info = new ilInfoScreenGUI($this);
264  $info->setFormAction($this->ctrl->getFormAction($this));
265  $this->__showObjectDetails($info, $this->details_obj_id);
266  $this->__appendUserInfo($info, $user_id);
267  // $this->__appendLPDetails($info,$this->details_obj_id,$user_id);
268  $this->tpl->setVariable("INFO_TABLE",$info->getHTML());
269 
270  include_once("./Services/Tracking/classes/repository_statistics/class.ilTrUserObjectsPropsTableGUI.php");
271  $table = new ilTrUserObjectsPropsTableGUI($this, "userDetails", $user_id,
272  $this->details_obj_id, $this->details_id, $print_view);
273  $this->tpl->setVariable('LP_OBJECTS', $table->getHTML());
274  $this->tpl->setVariable('LEGEND', $this->__getLegendHTML());
275 
276  /*
277  if($print_view)
278  {
279  echo $this->tpl->get("DEFAULT", false, false, false, false, false, false);
280  exit();
281  }
282  */
283  }
284 
285  function show()
286  {
287  // Clear table offset
288  $this->ctrl->saveParameter($this,'offset',0);
289 
290  // Show only detail of current repository item if called from repository
291  switch($this->getMode())
292  {
293  case self::LP_CONTEXT_REPOSITORY:
294  $this->__initDetails($this->getRefId());
295  $this->details();
296  return true;
297  }
298 
299  $this->__listObjects();
300  }
301 
302  function __listObjects()
303  {
304  global $ilUser,$ilObjDataCache;
305 
306  $this->tpl->addBlockFile('ADM_CONTENT','adm_content','tpl.lp_list_objects.html','Services/Tracking');
307 
308  include_once("./Services/Tracking/classes/repository_statistics/class.ilTrSummaryTableGUI.php");
309  $lp_table = new ilTrSummaryTableGUI($this, "", ROOT_FOLDER_ID);
310 
311  $this->tpl->setVariable("LP_OBJECTS", $lp_table->getHTML());
312  $this->tpl->setVariable('LEGEND', $this->__getLegendHTML());
313  }
314 
315  function __initDetails($a_details_id)
316  {
317  global $ilObjDataCache;
318 
319  if(!$a_details_id)
320  {
321  $a_details_id = $this->getRefId();
322  }
323  if($a_details_id)
324  {
325  $_GET['details_id'] = $a_details_id;
326  $this->details_id = $a_details_id;
327  $this->details_obj_id = $ilObjDataCache->lookupObjId($this->details_id);
328  $this->details_type = $ilObjDataCache->lookupType($this->details_obj_id);
329 
330  include_once 'Services/Object/classes/class.ilObjectLP.php';
331  $olp = ilObjectLP::getInstance($this->details_obj_id);
332  $this->details_mode = $olp->getCurrentMode();
333  }
334  }
335 
339  function showObjectSummary()
340  {
341  global $tpl, $ilToolbar;
342 
343  /*
344  $print_view = (bool)$_GET['prt'];
345  if(!$print_view)
346  {
347  $ilToolbar->setFormAction($this->ctrl->getFormAction($this));
348  $this->ctrl->setParameter($this, 'prt', 1);
349  $ilToolbar->addButton($this->lng->txt('print_view'),$this->ctrl->getLinkTarget($this,'showObjectSummary'), '_blank');
350  $this->ctrl->setParameter($this, 'prt', '');
351  }
352  */
353 
354  include_once("./Services/Tracking/classes/repository_statistics/class.ilTrSummaryTableGUI.php");
355  $table = new ilTrSummaryTableGUI($this, "showObjectSummary", $this->getRefId(), $print_view);
356  if(!$print_view)
357  {
358  $tpl->setContent($table->getHTML());
359  }
360  else
361  {
362  $tpl->setVariable("ADM_CONTENT", $table->getHTML());
363  echo $tpl->get("DEFAULT", false, false, false, false, false, false);
364  exit();
365  }
366  }
367 
372  {
373  global $tpl;
374 
375  if($this->isAnonymized())
376  {
377  ilUtil::sendFailure($this->lng->txt('permission_denied'));
378  return;
379  }
380 
381 
382  $this->tpl->addBlockFile('ADM_CONTENT','adm_content','tpl.lp_loo.html','Services/Tracking');
383 
384  include_once("./Services/InfoScreen/classes/class.ilInfoScreenGUI.php");
385  $info = new ilInfoScreenGUI($this);
386  $info->setFormAction($this->ctrl->getFormAction($this));
387  if($this->__showObjectDetails($info, $this->details_obj_id))
388  {
389  $this->tpl->setCurrentBlock("info");
390  $this->tpl->setVariable("INFO_TABLE",$info->getHTML());
391  $this->tpl->parseCurrentBlock();
392  }
393 
394  include_once("./Services/Tracking/classes/repository_statistics/class.ilTrMatrixTableGUI.php");
395  $table = new ilTrMatrixTableGUI($this, "showUserObjectMatrix", $this->getRefId());
396  $this->tpl->setVariable('LP_OBJECTS', $table->getHTML());
397  $this->tpl->setVariable('LEGEND', $this->__getLegendHTML());
398  }
399 }
400 ?>
static sendSuccess($a_info="", $a_keep=false)
Send Success Message to Screen.
__showEditUser($a_user_id, $a_ref_id, $a_cancel, $a_sub_id=false)
exit
Definition: login.php:54
Class ilInfoScreenGUI.
& executeCommand()
execute command
$_GET["client_id"]
$cmd
Definition: sahs_server.php:35
ilLPListOfObjectsGUI($a_mode, $a_ref_id)
showUserObjectMatrix()
Show object user matrix.
static checkPermission($a_permission, $a_ref_id, $a_user_id=null)
wrapper for rbac access checks
__showObjectDetails(&$info, $item_id=0, $add_section=true)
show details about current object.
$info
Definition: example_052.php:80
showObjectSummary()
Show object-based summarized tracking data.
Learning progress table: One object, rows: users, columns: properties Example: A course, rows: members, columns: name, status, mark, ...
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
Build table list for objects of given user.
global $ilUser
Definition: imgupload.php:15
__showUsersList($a_print_view=false)
if($_REQUEST['ilias_path']) define('ILIAS_HTTP_PATH' $_REQUEST['ilias_path']
Definition: index.php:7
static getInstance($a_obj_id)