ILIAS  release_6 Revision v6.24-5-g0c8bfefb3b8
class.ilPDSelectedItemsBlockGUI.php
Go to the documentation of this file.
1<?php
2
19declare(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,
451 $this->objectService,
452 $this->ctrl
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,
465 $this->objectService,
466 $this->ctrl
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);
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}
user()
Definition: user.php:4
$_GET["client_id"]
$_POST["username"]
An exception for terminatinating execution or to throw for unit testing.
const IL_SCREEN_SIDE
const IL_SCREEN_FULL
This class represents a block method of a block.
setLimit($a_limit)
Set Limit.
setData($a_data)
Set Data.
setPresentation(int $type)
Set presentation.
setDataSection($a_content)
Call this from overwritten fillDataSection(), if standard row based data is not used.
addBlockCommand(string $a_href, string $a_text, string $a_onclick="")
Add Block Command.
setTitle($a_title)
Set Title.
setEnableNumInfo($a_enablenuminfo)
Set Enable Item Number Info.
getListItemForData(array $data)
Get list item for data array.
static getInstanceFromAjaxCall()
(Re-)Build instance from ajax call
Confirmation screen class.
Dashboard objects table renderer.
Base class for ILIAS Exception handling.
Manages favourites, currently the interface for other components, needs discussion.
static checkForumsExistsDelete($ref_id, $user_id=0)
const ID_PART_SCREEN
static addListGUIActivationProperty(ilObjectListGUI $a_list_gui, array &$a_item)
Get timing details for list gui.
static _lookupObjId($a_id)
static _lookupTitle($a_id)
lookup object title
static _lookupObjectId($a_ref_id)
lookup object id
static _lookupType($a_id, $a_reference=false)
lookup object type
Class ilPDSelectedItemsListRenderer.
Class ilPDObjectsTileRenderer.
BlockGUI class for Selected Items on Personal Desktop.
removeFromDeskObject()
Remove from desktop @access public.
renderGroupedItems(array $grouped_items, $showHeader=true)
initViewSettings()
Evaluates the view settings of this block.
changePDItemSorting()
Called if the user interacted with the provided presentation options.
__construct()
ilPDSelectedItemsBlockGUI constructor.
fillDataSection()
Standard implementation for row based data.Overwrite this and call setContent for other data.
isRepositoryObject()
Returns whether block has a corresponding repository object.bool
getLegacyContent()
Get legacy content.string
addToDeskObject()
Add desktop item @access public.
changePDItemPresentation()
Called if the user interacted with the provided sorting options.
static getScreenMode()
Get Screen Mode for current command.
static bySettings(ilPDSelectedItemsBlockViewSettings $viewSettings)
static getInstance($a_ref_id)
Get instance by ref_id.
static getInstance()
Factory.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
$nd
Definition: error.php:12
$txt
Definition: error.php:13
Interface for gui classes (e.g ilLuceneSearchGUI) that offer add/remove to/from desktop.
exit
Definition: login.php:29
$factory
Definition: metadata.php:58
static http()
Fetches the global http state from ILIAS.
__construct(Container $dic, ilPlugin $plugin)
@inheritDoc
Class ChatMainBarProvider \MainMenu\Provider.
Class Factory.
$type
settings()
Definition: settings.php:2
standard()
This is an example, of how the Notification Slate is generated by assigning Notification Items to it.
Definition: standard.php:11
ui()
Definition: ui.php:5
$a_content
Definition: workflow.php:93
$DIC
Definition: xapitoken.php:46