ILIAS  release_6 Revision v6.24-5-g0c8bfefb3b8
All Data Structures Namespaces Files Functions Variables Modules Pages
class.ilObjLearningSequenceGUI.php
Go to the documentation of this file.
1 <?php
2 
3 declare(strict_types=1);
4 
36 {
37  const CMD_VIEW = "view";
38  const CMD_LEARNER_VIEW = "learnerView";
39  const CMD_CONTENT = "manageContent";
40 
41  const CMD_MEMBERS = "members";
42  const CMD_MANAGE_MEMBERS = "participants";
43  const CMD_MEMBERS_GALLERY = "jump2UsersGallery";
44 
45  const CMD_INFO = "showSummary";
46  const CMD_INFO_SCREEN = "infoScreen";
47  const CMD_SETTINGS = "settings";
48  const CMD_PERMISSIONS = "perm";
49  const CMD_LP = "learningProgress";
50  const CMD_EXPORT = "export";
51  const CMD_IMPORT = "importFile";
52  const CMD_CREATE = "create";
53  const CMD_SAVE = "save";
54  const CMD_CANCEL = "cancel";
55  const CMD_UNPARTICIPATE = "unparticipate";
56  const CMD_ADD_TO_DESK = "addToDesk";
57  const CMD_REMOVE_FROM_DESK = "removeFromDesk";
58  const CMD_LINK = "link";
59  const CMD_CANCEL_LINK = "cancelMoveLink";
60  const CMD_CUT = "cut";
61  const CMD_CANCEL_CUT = "cancelCut";
62  const CMD_CUT_SHOWTREE = "showPasteTree";
63  const CMD_CUT_CLIPBOARD = "keepObjectsInClipboard";
64  const CMD_DELETE = "delete";
65  const CMD_CANCEL_DELETE = "cancelDelete";
66  const CMD_DELETE_CONFIRMED = "confirmedDelete";
67  const CMD_PERFORM_PASTE = 'performPasteIntoMultipleObjects';
68  const CMD_SHOW_TRASH = 'trash';
69  const CMD_UNDELETE = 'undelete';
70 
71  const TAB_VIEW_CONTENT = "view_content";
72  const TAB_MANAGE = "manage";
73  const TAB_CONTENT_MAIN = "manage_content_maintab";
74  const TAB_INFO = "show_summary";
75  const TAB_SETTINGS = "settings";
76  const TAB_PERMISSIONS = "perm_settings";
77  const TAB_MEMBERS = "members";
78  const TAB_LP = "learning_progress";
79  const TAB_EXPORT = "export";
80 
81  const MAIL_ALLOWED_ALL = 1;
83 
84  const ACCESS_READ = 'read';
85  const ACCESS_VISIBLE = 'visible';
86 
87  public $object;
88 
89  public static function _goto(string $target)
90  {
91  global $DIC;
92 
93  $request = $DIC->http()->request();
94  $lng = $DIC->language();
95  $err = $DIC['ilErr'];
96 
97  $targetParameters = explode('_', $target);
98  $id = (int) $targetParameters[0];
99 
100  if (!self::isAccessible($id)) {
101  $err->raiseError($lng->txt('msg_no_perm_read'), $err->FATAL);
102  }
103 
104  if (self::hasAccess(self::ACCESS_READ, $id)) {
105  $params = ['ref_id' => $id];
106 
107  if (isset($request->getQueryParams()['gotolp'])) {
108  $params['gotolp'] = 1;
109  }
110 
111  self::forwardByClass(
112  ilRepositoryGUI::class,
113  [ilRepositoryGUI::class, ilObjLearningSequenceGUI::class],
114  $params,
115  self::CMD_VIEW
116  );
117  }
118 
119  if (self::hasAccess(self::ACCESS_VISIBLE, $id)) {
120  ilObjectGUI::_gotoRepositoryNode($target, 'infoScreen');
121  }
122 
123  if (self::hasAccess(self::ACCESS_READ, ROOT_FOLDER_ID)) {
124  ilUtil::sendInfo(sprintf(
125  $lng->txt('msg_no_perm_read_item'),
127  ), true);
128 
129  self::forwardByClass(ilRepositoryGUI::class, [ilRepositoryGUI::class], ['ref_id' => ROOT_FOLDER_ID]);
130  }
131  }
132 
133  protected static function isAccessible(int $id) : bool
134  {
135  return $id > 0 && (
136  self::hasAccess(self::ACCESS_READ, $id) ||
137  self::hasAccess(self::ACCESS_VISIBLE, $id) ||
138  self::hasAccess(self::ACCESS_READ, ROOT_FOLDER_ID)
139  );
140  }
141 
142  protected static function hasAccess(string $mode, int $id) : bool
143  {
144  global $DIC;
145  return $DIC->access()->checkAccess($mode, '', $id);
146  }
147 
148  protected static function forwardByClass(string $base_class, array $classes, array $params, string $cmd = '')
149  {
150  global $DIC;
151  $ctrl = $DIC->ctrl();
152  $target_class = end($classes);
153 
154  $ctrl->setTargetScript('ilias.php');
155  $ctrl->initBaseClass($base_class);
156 
157  foreach ($params as $key => $value) {
158  $ctrl->setParameterByClass($target_class, $key, $value);
159  }
160 
161  $ctrl->redirectByClass($classes, $cmd);
162  }
163 
164  public function __construct()
165  {
166  $this->ref_id = (int) $_GET['ref_id'];
167  parent::__construct([], $this->ref_id, true, false);
168 
169  $this->obj_type = ilObjLearningSequence::OBJ_TYPE;
170 
171  global $DIC;
172  $this->ctrl = $DIC['ilCtrl'];
173  $this->lng = $DIC['lng'];
174  $this->user = $DIC['ilUser'];
175  $this->tabs = $DIC['ilTabs'];
176  $this->toolbar = $DIC['ilToolbar'];
177  $this->help = $DIC['ilHelp'];
178  $this->settings = $DIC['ilSetting'];
179  $this->access = $DIC['ilAccess'];
180  $this->rbac_review = $DIC['rbacreview'];
181  $this->ui_factory = $DIC['ui.factory'];
182  $this->ui_renderer = $DIC['ui.renderer'];
183 
184  $this->log = $DIC["ilLoggerFactory"]->getRootLogger();
185  $this->app_event_handler = $DIC['ilAppEventHandler'];
186  $this->navigation_history = $DIC['ilNavigationHistory'];
187  $this->obj_definition = $DIC['objDefinition'];
188  $this->tpl = $DIC["tpl"];
189  $this->obj_service = $DIC->object();
190  $this->toolbar = $DIC['ilToolbar'];
191 
192  $this->help->setScreenIdComponent($this->obj_type);
193  $this->lng->loadLanguageModule($this->obj_type);
194 
195  $this->object = $this->getObject();
196  $this->data_factory = new \ILIAS\Data\Factory();
197  }
198 
199  protected function recordLearningSequenceRead()
200  {
202  $this->object->getType(),
203  $this->object->getRefId(),
204  $this->object->getId(),
205  $this->user->getId()
206  );
207  }
208 
209  public function executeCommand()
210  {
211  $next_class = $this->ctrl->getNextClass($this);
212  $cmd = $this->ctrl->getCmd();
213  $tpl = $this->tpl;
214 
215  parent::prepareOutput();
216  $this->addToNavigationHistory();
217  //showRepTree is from containerGUI;
218  //LSO will attach allowed subitems to whitelist
219  //see: $this::getAdditionalWhitelistTypes
220 
221  $in_player = (
222  $next_class === 'ilobjlearningsequencelearnergui'
223  && $cmd === 'view'
224  );
225 
226  $tpl->setPermanentLink("lso", $this->ref_id);
227 
228  switch ($next_class) {
229  case "ilcommonactiondispatchergui":
231  $this->ctrl->forwardCommand($gui);
232  break;
233  case "ilinfoscreengui":
234  $this->info($cmd);
235  break;
236  case "ilpermissiongui":
237  $this->permissions($cmd);
238  break;
239  case "ilobjlearningsequencesettingsgui":
240  $this->settings($cmd);
241  break;
242  case "ilobjlearningsequencecontentgui":
243  $this->manageContent($cmd);
244  break;
245  case "ilobjlearningsequencelearnergui":
246  $this->learnerView($cmd);
247  break;
248  case "illearningsequencemembershipgui":
249  $this->manage_members($cmd);
250  break;
251  case 'ilmailmembersearchgui':
252  $this->mail();
253  break;
254  case 'illearningprogressgui':
255  $this->learningProgress($cmd);
256  break;
257  case 'ilexportgui':
258  $this->export();
259  break;
260  case 'ilobjectcopygui':
261  $cp = new ilObjectCopyGUI($this);
262  $cp->setType('lso');
263  $this->ctrl->forwardCommand($cp);
264  break;
265  case 'ilobjindividualassessmentgui':
266  $struct = ['ilrepositorygui','ilobjindividualassessmentgui'];
267  if ($cmd === 'edit') {
268  $struct[] = 'ilindividualassessmentsettingsgui';
269  }
270  $this->ctrl->redirectByClass($struct, $cmd);
271  break;
272  case 'ilobjtestgui':
273  $struct = ['ilrepositorygui','ilobjtestgui'];
274  $this->ctrl->redirectByClass($struct, $cmd);
275  break;
276 
277  case false:
278  if ($cmd === '') {
279  $cmd = self::CMD_VIEW;
280  }
281 
282  switch ($cmd) {
283  case self::CMD_IMPORT:
284  $this->importFileObject();
285  break;
286  case self::CMD_INFO:
287  case self::CMD_INFO_SCREEN:
288  $this->info();
289  break;
290  case self::CMD_VIEW:
291  case self::CMD_LEARNER_VIEW:
292  case self::CMD_CONTENT:
293  case self::CMD_MEMBERS:
294  case self::CMD_SETTINGS:
295  case self::CMD_SAVE:
296  case self::CMD_CREATE:
297  case self::CMD_LP:
298  case self::CMD_UNPARTICIPATE:
299  $this->$cmd();
300  break;
301  case self::CMD_CANCEL:
302  if ($this->getCreationMode()) {
303  $this->cancelCreation();
304  }
305  break;
306  case self::CMD_REMOVE_FROM_DESK:
307  $this->removeFromDeskObject();
308  $this->view();
309  break;
310  case self::CMD_ADD_TO_DESK:
311  $this->addToDeskObject();
312  $this->view();
313  break;
314  case self::CMD_CUT:
315  $this->cutObject();
316  break;
317  case self::CMD_CUT_SHOWTREE:
318  $this->showPasteTreeObject();
319  break;
320  case self::CMD_CUT_CLIPBOARD:
322  break;
323  case self::CMD_LINK:
324  $this->linkObject();
325  break;
326  case self::CMD_DELETE:
327  $this->deleteObject();
328  break;
329  case self::CMD_DELETE_CONFIRMED:
330  $this->confirmedDeleteObject();
331  break;
332  case self::CMD_PERFORM_PASTE:
334  break;
335  case self::CMD_SHOW_TRASH:
336  $this->trashObject();
337  break;
338  case self::CMD_UNDELETE:
339  $this->undeleteObject();
340  break;
341 
342  case self::CMD_CANCEL_CUT:
343  case self::CMD_CANCEL_DELETE:
344  case self::CMD_CANCEL_LINK:
345  $cmd = self::CMD_CONTENT;
346  $this->$cmd();
347  break;
348 
349  default:
350  throw new ilException("ilObjLearningSequenceGUI: Invalid command '$cmd'");
351  }
352  break;
353  default:
354  throw new ilException("ilObjLearningSequenceGUI: Can't forward to next class $next_class");
355  }
356 
357  if (!$in_player) {
358  $this->addHeaderAction();
359  }
360  }
361 
362  public function addToNavigationHistory()
363  {
364  if (
365  !$this->getCreationMode() &&
366  $this->access->checkAccess('read', '', $this->ref_id)
367  ) {
368  $link = ilLink::_getLink($this->ref_id, $this->obj_type);
369  $this->navigation_history->addItem($this->ref_id, $link, $this->obj_type);
370  }
371  }
372 
373  protected function info(string $cmd = self::CMD_INFO)
374  {
375  $this->tabs->setTabActive(self::TAB_INFO);
376  $this->ctrl->setCmdClass('ilinfoscreengui');
377  $this->ctrl->setCmd($cmd);
378  $info = new ilInfoScreenGUI($this);
379  $this->ctrl->forwardCommand($info);
380  }
381 
382  protected function permissions(string $cmd = self::CMD_PERMISSIONS)
383  {
384  $this->tabs->setTabActive(self::TAB_PERMISSIONS);
385  $perm_gui = new ilPermissionGUI($this);
386  $this->ctrl->setCmd($cmd);
387  $this->ctrl->forwardCommand($perm_gui);
388  }
389 
390  protected function settings(string $cmd = self::CMD_SETTINGS)
391  {
392  $this->tabs->activateTab(self::TAB_SETTINGS);
394  $this->getObject(),
395  $this->ctrl,
396  $this->lng,
397  $this->tpl,
398  $this->obj_service
399  );
400  $this->ctrl->setCmd($cmd);
401  $this->ctrl->forwardCommand($gui);
402  }
403 
404  protected function view()
405  {
406  $this->tabs->clearSubTabs();
407  if ($this->checkAccess("write")) {
408  $this->manageContent(self::CMD_CONTENT);
409  return;
410  }
411  if ($this->checkAccess("read")) {
412  $this->learnerView(self::CMD_LEARNER_VIEW);
414  return;
415  }
416  $this->info(self::CMD_INFO);
418  }
419 
420  protected function manageContent(string $cmd = self::CMD_CONTENT)
421  {
422  $this->tabs->activateTab(self::TAB_CONTENT_MAIN);
423  $this->addSubTabsForContent($cmd);
424  $this->tabs->activateSubTab(self::TAB_MANAGE);
425 
427  $this,
428  $this->ctrl,
429  $this->tpl,
430  $this->lng,
431  $this->access,
432  new ilConfirmationGUI(),
433  new LSItemOnlineStatus()
434  );
435  $this->ctrl->setCmd($cmd);
436  $this->ctrl->forwardCommand($gui);
437  }
438 
439  protected function learnerView(string $cmd = self::CMD_LEARNER_VIEW)
440  {
441  $this->tabs->activateTab(self::TAB_CONTENT_MAIN);
442  $this->addSubTabsForContent($cmd);
443  $this->tabs->activateSubTab(self::TAB_VIEW_CONTENT);
444 
445  $gui = $this->object->getLocalDI()["gui.learner"];
446 
447  $this->ctrl->setCmd($cmd);
448  $this->ctrl->forwardCommand($gui);
449  }
450 
451  protected function members()
452  {
453  $may_manage_members = $this->checkAccess("edit_members");
454  $this->ctrl->setCmdClass('ilLearningSequenceMembershipGUI');
455  if ($may_manage_members) {
456  $this->manage_members(self::CMD_MANAGE_MEMBERS);
457  } else {
458  $this->manage_members(self::CMD_MEMBERS_GALLERY);
459  }
460  }
461 
462  protected function manage_members(string $cmd = self::CMD_MANAGE_MEMBERS)
463  {
464  $this->tabs->setTabActive(self::TAB_MEMBERS);
465 
466  $ms_gui = new ilLearningSequenceMembershipGUI(
467  $this,
468  $this->getObject(),
469  $this->getTrackingObject(),
471  $this->lng,
472  $this->ctrl,
473  $this->access,
474  $this->rbac_review,
475  $this->settings,
476  $this->toolbar
477  );
478 
479  $this->ctrl->setCmd($cmd);
480  $this->ctrl->forwardCommand($ms_gui);
481  }
482 
483  protected function learningProgress(string $cmd = self::CMD_LP)
484  {
485  $this->tabs->setTabActive(self::TAB_LP);
486 
487  $for_user = $this->user->getId();
488 
489  if ($_GET['user_id']) {
490  $for_user = $_GET['user_id'];
491  }
492 
493  $lp_gui = new ilLearningProgressGUI(
495  $this->getObject()->getRefId(),
496  $for_user
497  );
498 
499  if ($cmd === self::CMD_LP) {
500  $cmd = '';
501  }
502 
503  $this->ctrl->setCmd($cmd);
504  $this->ctrl->forwardCommand($lp_gui);
505  }
506 
507  protected function export()
508  {
509  $this->tabs->setTabActive(self::TAB_EXPORT);
510  $gui = new ilExportGUI($this);
511  $gui->addFormat("xml");
512 
513  $this->ctrl->forwardCommand($gui);
514  }
515 
516  protected function initDidacticTemplate(ilPropertyFormGUI $form)
517  {
518  return $form;
519  }
520 
521  protected function create()
522  {
523  parent::createObject();
524  }
525 
526  protected function save()
527  {
528  parent::saveObject();
529  }
530 
531  protected function afterSave(ilObject $new_object)
532  {
533  $participant = new ilLearningSequenceParticipants(
534  (int) $new_object->getId(),
535  $this->log,
538  );
539 
540  $participant->add($this->user->getId(), IL_LSO_ADMIN);
541  $participant->updateNotification($this->user->getId(), $this->settings->get('mail_lso_admin_notification', true));
542 
543 
544  $settings = new \ilContainerSortingSettings($new_object->getId());
545  $settings->setSortMode(\ilContainer::SORT_MANUAL);
546  $settings->setSortDirection(\ilContainer::SORT_DIRECTION_ASC);
548  $settings->setSortNewItemsPosition(\ilContainer::SORT_NEW_ITEMS_POSITION_BOTTOM);
549  $settings->save();
550 
551  ilUtil::sendSuccess($this->lng->txt('object_added'), true);
552  $this->ctrl->setParameter($this, "ref_id", $new_object->getRefId());
554  $this->getReturnLocation(
555  "save",
556  $this->ctrl->getLinkTarget($this, self::CMD_SETTINGS, "", false, false)
557  )
558  );
559  }
560 
561  public function unparticipate()
562  {
563  if ($this->checkAccess('unparticipate')) {
564  $usr_id = (int) $this->user->getId();
565  $this->getObject()->getLSRoles()->leave($usr_id);
566  $this->learnerView();
567  }
568  }
569 
570  protected function removeMember(int $usr_id)
571  {
572  $this->ls_object->leave($usr_id);
573  }
574 
575  public function getTabs()
576  {
577  if ($this->checkAccess("read")) {
578  $this->tabs->addTab(
579  self::TAB_CONTENT_MAIN,
580  $this->lng->txt(self::TAB_CONTENT_MAIN),
581  $this->ctrl->getLinkTarget($this, self::CMD_VIEW, "", false, false)
582  );
583  }
584 
585  if ($this->checkAccess("read") || $this->checkAccess("visible")) {
586  $this->tabs->addTab(
587  self::TAB_INFO,
588  $this->lng->txt(self::TAB_INFO),
589  $this->getLinkTarget(self::CMD_INFO)
590  );
591  }
592 
593  if ($this->checkAccess("write")) {
594  $this->tabs->addTab(
595  self::TAB_SETTINGS,
596  $this->lng->txt(self::TAB_SETTINGS),
597  $this->getLinkTarget(self::CMD_SETTINGS)
598  );
599  }
600 
601  if ($this->checkAccess("read")) {
602  if ($this->checkAccess("manage_members")
603  || (
604  $this->getObject()->getLSSettings()->getMembersGallery()
605  &&
606  $this->getObject()->getLSRoles()->isMember((int) $this->user->getId())
607  )
608  ) {
609  $this->tabs->addTab(
610  self::TAB_MEMBERS,
611  $this->lng->txt(self::TAB_MEMBERS),
612  $this->ctrl->getLinkTarget($this, self::CMD_MEMBERS, "", false, false)
613  );
614  }
615  }
616 
618  $this->tabs->addTab(
619  self::TAB_LP,
620  $this->lng->txt(self::TAB_LP),
621  $this->getLinkTarget(self::CMD_LP)
622  );
623  }
624 
625  if ($this->checkAccess("write")) {
626  $this->tabs->addTab(
627  self::TAB_EXPORT,
628  $this->lng->txt(self::TAB_EXPORT),
629  $this->ctrl->getLinkTargetByClass("ilexportgui", "")
630  );
631  }
632 
633  if ($this->checkAccess("edit_permission")) {
634  $this->tabs->addTab(
635  self::TAB_PERMISSIONS,
636  $this->lng->txt(self::TAB_PERMISSIONS),
637  $this->getLinkTarget(self::CMD_PERMISSIONS)
638  );
639  }
640  }
641 
642  public function renderObject()
643  {
644  // disables this method in ilContainerGUI
645  }
646 
647  protected function addSubTabsForContent()
648  {
649  $this->tabs->addSubTab(
650  self::TAB_VIEW_CONTENT,
651  $this->lng->txt(self::TAB_VIEW_CONTENT),
652  $this->getLinkTarget(self::CMD_LEARNER_VIEW)
653  );
654 
655  if ($this->checkAccess("write")) {
656  $this->tabs->addSubTab(
657  self::TAB_MANAGE,
658  $this->lng->txt(self::TAB_MANAGE),
659  $this->getLinkTarget(self::CMD_CONTENT)
660  );
661  }
662  }
663 
664  protected function checkAccess($which) : bool
665  {
666  return $this->access->checkAccess($which, "", $this->ref_id);
667  }
668 
669  protected function checkLPAccess()
670  {
671  $ref_id = $this->getObject()->getRefId();
672  $is_participant = ilLearningSequenceParticipants::_isParticipant($ref_id, $this->user->getId());
673 
674  $lp_access = ilLearningProgressAccess::checkAccess($ref_id, $is_participant);
675  $may_edit_lp_settings = $this->checkAccess('edit_learning_progress');
676 
677  return ($lp_access || $may_edit_lp_settings);
678  }
679 
680  protected function getLinkTarget(string $cmd) : string
681  {
682  $class = $this->getClassForTabs($cmd);
683  $class_path = [
684  strtolower('ilObjLearningSequenceGUI'),
685  $class
686  ];
687  return $this->ctrl->getLinkTargetByClass($class_path, $cmd);
688  }
689 
690  protected function getClassForTabs(string $cmd) : string
691  {
692  switch ($cmd) {
693  case self::CMD_CONTENT:
694  return 'ilObjLearningSequenceContentGUI';
695  case self::CMD_LEARNER_VIEW:
696  return 'ilObjLearningSequenceLearnerGUI';
697  case self::CMD_SETTINGS:
698  return 'ilObjLearningSequenceSettingsGUI';
699  case self::CMD_INFO:
700  return 'ilInfoScreenGUI';
701  case self::CMD_PERMISSIONS:
702  return 'ilPermissionGUI';
703  case self::CMD_LP:
704  return 'ilLearningProgressGUI';
705  }
706 
707  throw new InvalidArgumentException('cannot resolve class for command: ' . $cmd);
708  }
709 
710  public function createMailSignature()
711  {
712  $link = chr(13) . chr(10) . chr(13) . chr(10);
713  $link .= $this->lng->txt('lso_mail_permanent_link');
714  $link .= chr(13) . chr(10) . chr(13) . chr(10);
715  $link .= ilLink::_getLink($this->object->getRefId());
716 
717  return rawurlencode(base64_encode($link));
718  }
719 
720  public function getObject()
721  {
722  if ($this->object === null) {
723  $this->object = ilObjLearningSequence::getInstanceByRefId($this->ref_id);
724  }
725 
726  return $this->object;
727  }
728 
729  protected function getTrackingObject() : ilObjUserTracking
730  {
731  return new ilObjUserTracking();
732  }
733 
737  public function getLocalRoles() : array
738  {
739  $local_roles = $this->object->getLocalLearningSequenceRoles(false);
740  $lso_member = $this->object->getDefaultMemberRole();
741  $lso_roles = array();
742 
743  if (in_array($lso_member, $local_roles)) {
744  $lso_roles[$lso_member] = ilObjRole::_getTranslation(array_search($lso_member, $local_roles));
745  unset($local_roles[$lso_roles[$lso_member]]);
746  }
747 
748  foreach ($local_roles as $title => $role_id) {
749  $lso_roles[$role_id] = ilObjRole::_getTranslation($title);
750  }
751 
752  return $lso_roles;
753  }
754 
758  protected function getAdditionalWhitelistTypes() : array
759  {
760  $types = array_filter(
761  array_keys($this->obj_definition->getSubObjects('lso', false)),
762  function ($type) {
763  return $type !== 'rolf';
764  }
765  );
766 
767  return $types;
768  }
769 
770  public function addCustomData($a_data)
771  {
772  $res_data = array();
773  foreach ($a_data as $usr_id => $user_data) {
774  $res_data[$usr_id] = $user_data;
775  $udf_data = new ilUserDefinedData($usr_id);
776 
777  foreach ($udf_data->getAll() as $field => $value) {
778  list($f, $field_id) = explode('_', $field);
779  $res_data[$usr_id]['udf_' . $field_id] = (string) $value;
780  }
781  }
782 
783  return $res_data;
784  }
785 }
static _recordReadEvent( $a_type, $a_ref_id, $obj_id, $usr_id, $isCatchupWriteEvents=true, $a_ext_rc=false, $a_ext_time=false)
Records a read event and catches up with write events.
static hasAccess(string $mode, int $id)
Class ilInfoScreenGUI.
Class ilUserDefinedData.
cancelCreation()
cancel create action and go back to repository parent
This class represents a property form user interface.
GUI class for the workflow of copying objects.
$type
$_GET["client_id"]
trashObject()
Show trash content of object.
learningProgress(string $cmd=self::CMD_LP)
static _lookupTitle($a_id)
lookup object title
confirmedDeleteObject()
confirmed deletion of object -> objects are moved to trash or deleted immediately, if trash is disabled
const IL_LSO_ADMIN
Class ilObjLearningSequenceSettingsGUI.
user()
Definition: user.php:4
help()
Definition: help.php:2
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
Export User Interface Class.
static checkAccess($a_ref_id, $a_allow_only_read=true)
check access to learning progress
static _enabledLearningProgress()
check wether learing progress is enabled or not
const SORT_NEW_ITEMS_POSITION_BOTTOM
initDidacticTemplate(ilPropertyFormGUI $form)
undeleteObject()
Get objects back from trash.
getId()
get object id public
static _gotoRepositoryNode($a_ref_id, $a_cmd="frameset")
Goto repository root.
linkObject()
create an new reference of an object in tree it&#39;s like a hard link of unix
manage_members(string $cmd=self::CMD_MANAGE_MEMBERS)
const SORT_NEW_ITEMS_ORDER_CREATION
manageContent(string $cmd=self::CMD_CONTENT)
static _lookupObjId($a_id)
static getInstanceByRefId(int $ref_id)
settings(string $cmd=self::CMD_SETTINGS)
static forwardByClass(string $base_class, array $classes, array $params, string $cmd='')
Class ilObjLearningSequenceContentGUI.
showPasteTreeObject()
Show paste tree.
importFileObject($parent_id=null, $a_catch_errors=true)
Import.
getAdditionalWhitelistTypes()
append additional types to ilRepositoryExplorerGUI&#39;s whitelist
learnerView(string $cmd=self::CMD_LEARNER_VIEW)
static _getTranslation($a_role_title)
removeFromDeskObject()
Remove from desktop public.
__construct(Container $dic, ilPlugin $plugin)
$DIC
Definition: xapitoken.php:46
addToDeskObject()
Add desktop item public.
getCreationMode()
get creation mode
cutObject()
cut object(s) out from a container and write the information to clipboard
getRefId()
get reference id public
Class ilContainerGUI.
New PermissionGUI (extends from old ilPermission2GUI) RBAC related output.
deleteObject($a_error=false)
Display deletion confirmation screen.
Class ilObjLearningSequenceGUI.
static _getInstance()
Get instance of ilPrivacySettings.
permissions(string $cmd=self::CMD_PERMISSIONS)
static redirect($a_script)
addHeaderAction()
Add header action menu.
Class ilObjUserTrackingGUI.
getReturnLocation($a_cmd, $a_location="")
get return location for command (command is method name without "Object", e.g.
keepObjectsInClipboardObject()
Keep objects in the clipboard.
GUI class for learning sequence membership features.
static getInstanceFromAjaxCall()
(Re-)Build instance from ajax call
Confirmation screen class.