ILIAS  release_6 Revision v6.24-5-g0c8bfefb3b8
All Data Structures Namespaces Files Functions Variables Modules Pages
class.ilPDSelectedItemsBlockGUI.php
Go to the documentation of this file.
1 <?php
2 
19 declare(strict_types=1);
20 
31 {
33  protected $rbacsystem;
34 
36  protected $settings;
37 
39  protected $obj_definition;
40 
42  public static $block_type = 'pditems';
43 
45  protected $viewSettings;
46 
48  protected $blockView;
49 
51  protected $manage = false;
52 
54  protected $content = '';
55 
57  protected $lng;
58 
60  protected $ctrl;
61 
63  protected $user;
64 
66  protected $ui;
67 
69  protected $http;
70 
72  protected $objectService;
73 
77  protected $favourites;
78 
82  protected $tree;
83 
87  public function __construct()
88  {
89  global $DIC;
90 
91  $this->rbacsystem = $DIC->rbac()->system();
92  $this->settings = $DIC->settings();
93  $this->obj_definition = $DIC["objDefinition"];
94  $this->access = $DIC->access();
95  $this->ui = $DIC->ui();
96  $this->http = $DIC->http();
97  $this->objectService = $DIC->object();
98  $this->favourites = new ilFavouritesManager();
99  $this->tree = $DIC->repositoryTree();
100 
102 
103  $this->lng = $DIC->language();
104  $this->ctrl = $DIC->ctrl();
105  $this->user = $DIC->user();
106 
107  $this->lng->loadLanguageModule('pd');
108  $this->lng->loadLanguageModule('cntr'); // #14158
109  $this->lng->loadLanguageModule('rep'); // #14158
110 
111  $this->setEnableNumInfo(false);
112  $this->setLimit(99999);
113  $this->allow_moving = false;
114 
115  $this->initViewSettings();
116 
117  if ($this->viewSettings->isTilePresentation()) {
118  $this->setPresentation(self::PRES_MAIN_LEG);
119  } else {
120  $this->setPresentation(self::PRES_MAIN_LIST);
121  }
122  $this->main_content = true;
123  }
124 
128  protected function initViewSettings()
129  {
130  $this->viewSettings = new ilPDSelectedItemsBlockViewSettings(
131  $this->user,
133  );
134 
135  $this->viewSettings->parse();
136 
137  $this->blockView = ilPDSelectedItemsBlockViewGUI::bySettings($this->viewSettings);
138 
139  $this->ctrl->setParameter($this, 'view', $this->viewSettings->getCurrentView());
140  }
141 
146  {
147  return $this->viewSettings;
148  }
149 
153  /*
154  public function fillDetailRow()
155  {
156  parent::fillDetailRow();
157  }*/
158 
162  public function addToDeskObject()
163  {
164  $this->favourites->add($this->user->getId(), (int) $_GET["item_ref_id"]);
165  ilUtil::sendSuccess($this->lng->txt("rep_added_to_favourites"), true);
166  $this->returnToContext();
167  }
168 
174  protected function returnToContext()
175  {
176  $this->ctrl->setParameterByClass('ildashboardgui', 'view', $this->viewSettings->getCurrentView());
177  $this->ctrl->redirectByClass('ildashboardgui', 'show');
178  }
179 
183  public function removeFromDeskObject()
184  {
185  $this->lng->loadLanguageModule("rep");
186  $this->favourites->remove($this->user->getId(), (int) $_GET["item_ref_id"]);
187  ilUtil::sendSuccess($this->lng->txt("rep_removed_from_favourites"), true);
188  $this->returnToContext();
189  }
190 
194  public function getBlockType() : string
195  {
196  return static::$block_type;
197  }
198 
202  public static function getScreenMode()
203  {
204  $cmd = $_GET['cmd'];
205  if ($cmd == 'post') {
206  $cmd = $_POST['cmd'];
207  $cmd = array_shift(array_keys($cmd));
208  }
209 
210  switch ($cmd) {
211  case 'confirmRemove':
212  case 'manage':
213  return IL_SCREEN_FULL;
214 
215  default:
216  return IL_SCREEN_SIDE;
217  }
218  }
219 
223  protected function isRepositoryObject() : bool
224  {
225  return false;
226  }
227 
232  protected function getViewTitle()
233  {
234  return $this->blockView->getTitle();
235  }
236 
240  public function getHTML()
241  {
242  global $DIC;
243 
244  $this->setTitle($this->getViewTitle());
245 
246  $DIC->database()->useSlave(true);
247 
248  // workaround to show details row
249  $this->setData([['dummy']]);
250 
251  /*
252  ilObjectListGUI::prepareJSLinks('',
253  $this->ctrl->getLinkTargetByClass(['ilcommonactiondispatchergui', 'ilnotegui'], '', '', true, false),
254  $this->ctrl->getLinkTargetByClass(['ilcommonactiondispatchergui', 'iltagginggui'], '', '', true, false)
255  );*/
256 
257  $DIC['ilHelp']->setDefaultScreenId(ilHelpGUI::ID_PART_SCREEN, $this->blockView->getScreenId());
258 
259  // $this->setContent($this->getViewBlockHtml());
260 
261  // if ('' === $this->getContent()) {
262  // $this->setEnableDetailRow(false);
263  // }
264 
265  $this->ctrl->clearParameters($this);
266 
267  $DIC->database()->useSlave(false);
268 
269  return parent::getHTML();
270  }
271 
275  public function executeCommand()
276  {
277  $next_class = $this->ctrl->getNextClass();
278  $cmd = $this->ctrl->getCmd('getHTML');
279 
280  switch ($next_class) {
281  case 'ilcommonactiondispatchergui':
282  include_once('Services/Object/classes/class.ilCommonActionDispatcherGUI.php');
284  $this->ctrl->forwardCommand($gui);
285  break;
286 
287  default:
288  if (method_exists($this, $cmd)) {
289  return $this->$cmd();
290  } else {
291  return $this->{$cmd . 'Object'}();
292  }
293  }
294  }
295 
299  protected function getContent() : string
300  {
301  return $this->content;
302  }
303 
307  protected function setContent(string $a_content)
308  {
309  $this->content = $a_content;
310  }
311 
315  public function fillDataSection()
316  {
317  if ($this->getContent() == '') {
318  $this->setDataSection($this->blockView->getIntroductionHtml());
319  } else {
320  $this->tpl->setVariable('BLOCK_ROW', $this->getContent());
321  }
322  }
323 
324 
328  public function fillFooter()
329  {
330  /*
331  $this->tpl->setVariable('FCOLSPAN', $this->getColSpan());
332  if ($this->tpl->blockExists('block_footer')) {
333  $this->tpl->setCurrentBlock('block_footer');
334  $this->tpl->parseCurrentBlock();
335  }
336  */
337  }
338 
342  protected function getGroupedCommandsForView($manage = false) : array
343  {
344  $commandGroups = [];
345 
346  $sortingCommands = [];
347  $sortings = $this->viewSettings->getSelectableSortingModes();
348  $effectiveSorting = $this->viewSettings->getEffectiveSortingMode();
349  // @todo: set checked on $sorting === $effectiveSorting
350  foreach ($sortings as $sorting) {
351  $this->ctrl->setParameter($this, 'sorting', $sorting);
352  $sortingCommands[] = [
353  'txt' => $this->lng->txt('dash_sort_by_' . $sorting),
354  'url' => $this->ctrl->getLinkTarget($this, 'changePDItemSorting'),
355  'xxxasyncUrl' => $this->ctrl->getLinkTarget($this, 'changePDItemSorting', '', true),
356  'active' => $sorting === $effectiveSorting,
357  ];
358  $this->ctrl->setParameter($this, 'sorting', null);
359  }
360 
361  if (count($sortingCommands) > 1) {
362  $commandGroups[] = $sortingCommands;
363  }
364 
365  if ($manage) {
366  return $commandGroups;
367  }
368 
369  $presentationCommands = [];
370  $presentations = $this->viewSettings->getSelectablePresentationModes();
371  $effectivePresentation = $this->viewSettings->getEffectivePresentationMode();
372  // @todo: set checked on $presentation === $effectivePresentation
373  foreach ($presentations as $presentation) {
374  $this->ctrl->setParameter($this, 'presentation', $presentation);
375  $presentationCommands[] = [
376  'txt' => $this->lng->txt('pd_presentation_mode_' . $presentation),
377  'url' => $this->ctrl->getLinkTarget($this, 'changePDItemPresentation'),
378  'xxxasyncUrl' => $this->ctrl->getLinkTarget($this, 'changePDItemPresentation', '', true),
379  'active' => $presentation === $effectivePresentation,
380  ];
381  $this->ctrl->setParameter($this, 'presentation', null);
382  }
383 
384  if (count($presentationCommands) > 1) {
385  $commandGroups[] = $presentationCommands;
386  }
387 
388  $commandGroups[] = [
389  [
390  'txt' => $this->viewSettings->isSelectedItemsViewActive() ?
391  $this->lng->txt('pd_remove_multiple') :
392  $this->lng->txt('pd_unsubscribe_multiple_memberships'),
393  'url' => $this->ctrl->getLinkTarget($this, 'manage'),
394  'asyncUrl' => null,
395  'active' => false,
396  ]
397  ];
398 
399  return $commandGroups;
400  }
401 
402 
406  protected function setFooterLinks()
407  {
408  if ('' === $this->getContent()) {
409  $this->setEnableNumInfo(false);
410  return;
411  }
412 
413  if ($this->blockView->isInManageMode()) {
414  return;
415  }
416 
417  // @todo: handle $command['active']
418  $groupedCommands = $this->getGroupedCommandsForView();
419  foreach ($groupedCommands as $group) {
420  foreach ($group as $command) {
421  $this->addBlockCommand(
422  $command['url'],
423  $command['txt'],
424  $command['asyncUrl']
425  );
426  }
427  }
428  }
429 
435  protected function renderGroupedItems(array $grouped_items, $showHeader = true) : string
436  {
437  if (0 === count($grouped_items)) {
438  return '';
439  }
440 
441  $listFactory = new ilPDSelectedItemsBlockListGUIFactory($this, $this->blockView);
442 
443  if ($this->viewSettings->isTilePresentation()) {
444  $renderer = new ilPDObjectsTileRenderer(
445  $this->blockView,
446  $this->ui->factory(),
447  $this->ui->renderer(),
448  $listFactory,
449  $this->user,
450  $this->lng,
453  );
454 
455  return $renderer->render($grouped_items, $showHeader);
456  }
457 
458  $renderer = new ilPDObjectsListRenderer(
459  $this->blockView,
460  $this->ui->factory(),
461  $this->ui->renderer(),
462  $listFactory,
463  $this->user,
464  $this->lng,
467  );
468 
469  return $renderer->render($grouped_items, $showHeader);
470  }
471 
475  protected function getViewBlockHtml() : string
476  {
477  return $this->renderGroupedItems(
478  $this->blockView->getItemGroups()
479  );
480  }
481 
485  public function changePDItemPresentation()
486  {
487  $this->viewSettings->storeActorPresentationMode(
488  \ilUtil::stripSlashes((string) ($this->http->request()->getQueryParams()['presentation'] ?? ''))
489  );
490  $this->initAndShow();
491  }
492 
496  public function changePDItemSorting()
497  {
498  $this->viewSettings->storeActorSortingMode(
499  \ilUtil::stripSlashes((string) ($this->http->request()->getQueryParams()['sorting'] ?? ''))
500  );
501 
502  $this->initAndShow();
503  }
504 
508  protected function initAndShow()
509  {
510  $this->initViewSettings();
511 
512  if ($this->ctrl->isAsynch()) {
513  echo $this->getHTML();
514  exit;
515  }
516 
517  if ($_GET["manage"]) {
518  $this->ctrl->redirect($this, 'manage');
519  }
520 
521  $this->returnToContext();
522  }
523 
524  public function manageObject()
525  {
526  $this->blockView->setIsInManageMode(true);
527 
528  $top_tb = new ilToolbarGUI();
529  $top_tb->setFormAction($this->ctrl->getFormAction($this));
530  $top_tb->setLeadingImage(ilUtil::getImagePath('arrow_upright.svg'), $this->lng->txt('actions'));
531 
532  $button = ilSubmitButton::getInstance();
533  $grouped_items = $this->blockView->getItemGroups();
534  if ($this->viewSettings->isSelectedItemsViewActive()) {
535  $button->setCaption('remove');
536  } else {
537  $button->setCaption('pd_unsubscribe_memberships');
538  foreach ($grouped_items as $group) {
539  $items = $group->getItems();
540  $group->setItems([]);
541  foreach ($items as $item) {
542  if ($this->rbacsystem->checkAccess('leave', $item['ref_id'])) {
543  if (
544  $item['type'] !== 'crs' ||
545  ilParticipants::getInstance($item['ref_id'])->checkLastAdmin([$this->user->getId()])
546  ) {
547  $group->pushItem($item);
548  }
549  }
550  }
551  }
552  }
553  $button->setCommand('confirmRemove');
554  $top_tb->addStickyItem($button);
555 
556  $top_tb->setCloseFormTag(false);
557 
558  $bot_tb = new ilToolbarGUI();
559  $bot_tb->setLeadingImage(ilUtil::getImagePath('arrow_downright.svg'), $this->lng->txt('actions'));
560  $bot_tb->addStickyItem($button);
561  $bot_tb->setOpenFormTag(false);
562 
563  return $top_tb->getHTML() . $this->renderManageList($grouped_items) . $bot_tb->getHTML();
564  }
565 
572  protected function cancel()
573  {
574  $this->ctrl->returnToParent($this);
575  }
576 
577 
578  public function confirmRemoveObject()
579  {
580  $this->ctrl->setParameter($this, 'view', $this->viewSettings->getCurrentView());
581 
582  $refIds = (array) ($this->http->request()->getParsedBody()['id'] ?? []);
583  if (0 === count($refIds)) {
584  ilUtil::sendFailure($this->lng->txt('select_one'), true);
585  $this->ctrl->redirect($this, 'manage');
586  }
587 
588  if ($this->viewSettings->isSelectedItemsViewActive()) {
589  $question = $this->lng->txt('dash_info_sure_remove_from_favs');
590  $cmd = 'confirmedRemove';
591  } else {
592  $question = $this->lng->txt('mmbr_info_delete_sure_unsubscribe');
593  $cmd = 'confirmedUnsubscribe';
594  }
595 
596  include_once('./Services/Utilities/classes/class.ilConfirmationGUI.php');
597  $cgui = new ilConfirmationGUI();
598  $cgui->setHeaderText($question);
599 
600  $cgui->setFormAction($this->ctrl->getFormAction($this));
601  $cgui->setCancel($this->lng->txt('cancel'), 'manage');
602  $cgui->setConfirm($this->lng->txt('confirm'), $cmd);
603 
604  foreach ($refIds as $ref_id) {
605  $obj_id = ilObject::_lookupObjectId((int) $ref_id);
606  $title = ilObject::_lookupTitle($obj_id);
607  $type = ilObject::_lookupType($obj_id);
608 
609  $cgui->addItem(
610  'ref_id[]',
611  $ref_id,
612  $title,
613  ilObject::_getIcon($obj_id, 'small', $type),
614  $this->lng->txt('icon') . ' ' . $this->lng->txt('obj_' . $type)
615  );
616  }
617 
618  return $cgui->getHTML();
619  }
620 
621  public function confirmedRemove()
622  {
623  $refIds = (array) ($this->http->request()->getParsedBody()['ref_id'] ?? []);
624  if (0 === count($refIds)) {
625  $this->ctrl->redirect($this, 'manage');
626  }
627 
628  foreach ($refIds as $ref_id) {
629  $this->favourites->remove($this->user->getId(), $ref_id);
630  }
631 
632  // #12909
633  ilUtil::sendSuccess($this->lng->txt('pd_remove_multi_confirm'), true);
634  $this->ctrl->redirect($this, 'manage');
635  }
636 
637  public function confirmedUnsubscribe()
638  {
639  $refIds = (array) ($this->http->request()->getParsedBody()['ref_id'] ?? []);
640  if (0 === count($refIds)) {
641  $this->ctrl->redirect($this, 'manage');
642  }
643 
644  foreach ($refIds as $ref_id) {
645  if ($this->access->checkAccess('leave', '', (int) $ref_id)) {
646  switch (ilObject::_lookupType($ref_id, true)) {
647  case 'crs':
648  // see ilObjCourseGUI:performUnsubscribeObject()
649  $members = new ilCourseParticipants(ilObject::_lookupObjId((int) $ref_id));
650  $members->delete($this->user->getId());
651 
652  $members->sendUnsubscribeNotificationToAdmins($this->user->getId());
653  $members->sendNotification(
654  $members->NOTIFY_UNSUBSCRIBE,
655  $this->user->getId()
656  );
657  break;
658 
659  case 'grp':
660  // see ilObjGroupGUI:performUnsubscribeObject()
661  $members = new ilGroupParticipants(ilObject::_lookupObjId((int) $ref_id));
662  $members->delete($this->user->getId());
663 
664  $members->sendNotification(
666  $this->user->getId()
667  );
668  $members->sendNotification(
670  $this->user->getId()
671  );
672  break;
673 
674  default:
675  // do nothing
676  continue 2;
677  }
678 
679  include_once './Modules/Forum/classes/class.ilForumNotification.php';
680  ilForumNotification::checkForumsExistsDelete($ref_id, $this->user->getId());
681  }
682  }
683 
684  ilUtil::sendSuccess($this->lng->txt('mmbr_unsubscribed_from_objs'), true);
685  $this->ctrl->returnToParent($this);
686  }
687 
688  //
689  // New rendering
690  //
691 
692  protected $new_rendering = true;
693 
694 
700  protected function getListItemGroups() : array
701  {
702  global $DIC;
703  $factory = $DIC->ui()->factory();
704 
705  // $data = $this->loadData();
706 
707  $this->list_factory = new ilPDSelectedItemsBlockListGUIFactory($this, $this->blockView);
708 
709  $groupedItems = $this->blockView->getItemGroups();
710  $groupedCommands = $this->getGroupedCommandsForView();
711  foreach ($groupedCommands as $group) {
712  foreach ($group as $command) {
713  $this->addBlockCommand(
714  (string) $command['url'],
715  (string) $command['txt'],
716  (string) $command['asyncUrl']
717  );
718  }
719  }
720 
723 
724 
725  $item_groups = [];
726  $list_items = [];
727 
728  foreach ($groupedItems as $group) {
729  $list_items = [];
730 
731  foreach ($group->getItems() as $item) {
732  try {
733  $itemListGUI = $this->list_factory->byType($item['type']);
735 
736  $list_items[] = $this->getListItemForData($item);
737  } catch (ilException $e) {
738  continue;
739  }
740  }
741  if (count($list_items) > 0) {
742  $item_groups[] = $factory->item()->group((string) $group->getLabel(), $list_items);
743  }
744  }
745 
746  /* @todo: checkboxes
747  if ($this->blockView->isInManageMode() && $this->blockView->supportsSelectAll()) {
748  // #11355 - see ContainerContentGUI::renderSelectAllBlock()
749  $this->tpl->setCurrentBlock('select_all_row');
750  $this->tpl->setVariable('CHECKBOXNAME', 'ilToolbarSelectAll');
751  $this->tpl->setVariable('SEL_ALL_PARENT', 'ilToolbar');
752  $this->tpl->setVariable('SEL_ALL_CB_NAME', 'id');
753  $this->tpl->setVariable('TXT_SELECT_ALL', $this->lng->txt('select_all'));
754  $this->tpl->parseCurrentBlock();
755  }
756 
757  return $this->tpl->get();
758  */
759 
760  return $item_groups;
761  }
762 
763 
767  protected function getListItemForData(array $item) : \ILIAS\UI\Component\Item\Item
768  {
769  $listFactory = $this->list_factory;
770 
772  $itemListGui = $listFactory->byType($item['type']);
774 
775  $list_item = $itemListGui->getAsListItem(
776  (int) $item['ref_id'],
777  (int) $item['obj_id'],
778  (string) $item['type'],
779  (string) $item['title'],
780  (string) $item['description']
781  );
782 
783  return $list_item;
784  }
785 
789  protected function getCardForData(array $item) : \ILIAS\UI\Implementation\Component\Card\RepositoryObject
790  {
791  $listFactory = $this->list_factory;
792 
794  $itemListGui = $listFactory->byType($item['type']);
796 
797  $card = $itemListGui->getAsCard(
798  (int) $item['ref_id'],
799  (int) $item['obj_id'],
800  (string) $item['type'],
801  (string) $item['title'],
802  (string) $item['description']
803  );
804 
805  return $card;
806  }
807 
811  protected function getLegacyContent() : string
812  {
813  $renderer = $this->ui->renderer();
814  $factory = $this->ui->factory();
815 
816  $this->list_factory = new ilPDSelectedItemsBlockListGUIFactory($this, $this->blockView);
817 
818  $groupedCommands = $this->getGroupedCommandsForView();
819  foreach ($groupedCommands as $group) {
820  foreach ($group as $command) {
821  $this->addBlockCommand(
822  (string) $command['url'],
823  (string) $command['txt'],
824  (string) $command['asyncUrl']
825  );
826  }
827  }
828 
829  $groupedItems = $this->blockView->getItemGroups();
830 
831  $subs = [];
832  foreach ($groupedItems as $group) {
833  $cards = [];
834 
835  foreach ($group->getItems() as $item) {
836  try {
837  $itemListGUI = $this->list_factory->byType($item['type']);
839 
840  $cards[] = $this->getCardForData($item);
841  } catch (ilException $e) {
842  continue;
843  }
844  }
845  if (count($cards) > 0) {
846  $subs[] = $factory->panel()->sub(
847  $group->getLabel(),
848  $factory->deck($cards)->withNormalCardsSize()
849  );
850  }
851  }
852 
853 
854  return $renderer->render($subs);
855  }
856 
857  protected function renderManageList(array $grouped_items) : string
858  {
859  $ui = $this->ui;
860 
861  $this->ctrl->setParameter($this, "manage", "1");
862  $groupedCommands = $this->getGroupedCommandsForView(true);
863  foreach ($groupedCommands as $group) {
864  foreach ($group as $command) {
865  $this->addBlockCommand(
866  (string) $command['url'],
867  (string) $command['txt'],
868  (string) $command['asyncUrl']
869  );
870  }
871  }
872 
873  // action drop down
874  if (is_array($groupedCommands[0])) {
875  $actions = array_map(function ($item) use ($ui) {
876  return $ui->factory()->link()->standard($item["txt"], $item["url"]);
877  }, $groupedCommands[0]);
878  if (count($actions) > 0) {
879  $dd = $this->ui->factory()->dropdown()->standard($actions);
880  $this->main_tpl->setHeaderActionMenu($ui->renderer()->render($dd));
881  }
882  }
883 
884  return (new ilDashObjectsTableRenderer($this))->render($grouped_items);
885  }
886 
892  public function getNoItemFoundContent() : string
893  {
894 
895  $txt = $this->lng->txt("rep_fav_intro1") . "<br>";
896  $txt .= sprintf(
897  $this->lng->txt('rep_fav_intro2'),
898  $this->getRepositoryTitle()
899  ) . "<br>";
900  $txt .= $this->lng->txt("rep_fav_intro3");
901  $mbox = $this->ui->factory()->messageBox()->info($txt);
902  $mbox = $mbox->withLinks([$this->ui->factory()->link()->standard($this->getRepositoryTitle(), ilLink::_getStaticLink(1, 'root', true))]);
903  return $this->ui->renderer()->render($mbox);
904  }
905 
909  protected function getRepositoryTitle()
910  {
911  $nd = $this->tree->getNodeData($this->tree->getRootId());
912  $title = $nd['title'];
913 
914  if ($title == 'ILIAS') {
915  $title = $this->lng->txt('repository');
916  }
917 
918  return $title;
919  }
920 }
removeFromDeskObject()
Remove from desktop public.
Dashboard objects table renderer.
exit
Definition: login.php:29
settings()
Definition: settings.php:2
__construct()
ilPDSelectedItemsBlockGUI constructor.
Class ilPDSelectedItemsListRenderer.
$type
changePDItemSorting()
Called if the user interacted with the provided presentation options.
setDataSection($a_content)
Call this from overwritten fillDataSection(), if standard row based data is not used.
$_GET["client_id"]
static _lookupTitle($a_id)
lookup object title
setEnableNumInfo($a_enablenuminfo)
Set Enable Item Number Info.
Class ilPDSelectedItemsBlockListGUIFactory.
Manages favourites, currently the interface for other components, needs discussion.
user()
Definition: user.php:4
static _lookupObjectId($a_ref_id)
lookup object id
static getInstance($a_ref_id)
Get instance by ref_id.
const IL_SCREEN_FULL
static http()
Fetches the global http state from ILIAS.
$nd
Definition: error.php:12
changePDItemPresentation()
Called if the user interacted with the provided sorting options.
setTitle($a_title)
Set Title.
$a_content
Definition: workflow.php:93
getListItemForData(array $data)
Get list item for data array.
static bySettings(ilPDSelectedItemsBlockViewSettings $viewSettings)
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
setData($a_data)
Set Data.
static _lookupObjId($a_id)
Common interface to all items.
Definition: Item.php:10
addToDeskObject()
Add desktop item public.
ui()
Definition: ui.php:5
Class ilPDObjectsTileRenderer.
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
render(array $groupedItems, bool $showHeader)
$txt
Definition: error.php:13
static addListGUIActivationProperty(ilObjectListGUI $a_list_gui, array &$a_item)
Get timing details for list gui.
static _lookupType($a_id, $a_reference=false)
lookup object type
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
static checkForumsExistsDelete($ref_id, $user_id=0)
render(array $groupedItems, bool $showHeader)
setLimit($a_limit)
Set Limit.
Interface for gui classes (e.g ilLuceneSearchGUI) that offer add/remove to/from desktop.
BlockGUI class for Selected Items on Personal Desktop.
__construct(Container $dic, ilPlugin $plugin)
$DIC
Definition: xapitoken.php:46
This class represents a block method of a block.
addBlockCommand(string $a_href, string $a_text, string $a_onclick="")
Add Block Command.
renderGroupedItems(array $grouped_items, $showHeader=true)
const IL_SCREEN_SIDE
const ID_PART_SCREEN
$_POST["username"]
setPresentation(int $type)
Set presentation.
$factory
Definition: metadata.php:58
static getInstanceFromAjaxCall()
(Re-)Build instance from ajax call
Confirmation screen class.
initViewSettings()
Evaluates the view settings of this block.