ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
ilDashboardBlockGUI Class Reference
+ Inheritance diagram for ilDashboardBlockGUI:
+ Collaboration diagram for ilDashboardBlockGUI:

Public Member Functions

 __construct ()
 
 initViewSettings ()
 
 initData ()
 
 emptyHandling ()
 
 addCustomCommandsToActionMenu (ilObjectListGUI $itemListGui, int $ref_id)
 
 getNoItemFoundContent ()
 
 getViewSettings ()
 
 init ()
 
 getHTML ()
 
 setData (array $a_data)
 
 getData ()
 
 addCommandActions ()
 
 getRemoveModal ()
 
 executeCommand ()
 
 manually ()
 
 getViewControlsForPanel ()
 
 viewDashboardObject ()
 
 changePDItemSortingObject ()
 
 changePDItemPresentationObject ()
 
 getItemGroups ()
 
 addToDeskObject ()
 
 removeFromDeskObject ()
 
 removeMultipleEnabled ()
 
 getRemoveMultipleActionText ()
 
 confirmedRemove (array $ids)
 
 byType (string $a_type)
 
- Public Member Functions inherited from ilBlockGUI
 __construct ()
 
 getBlockType ()
 
 setData (array $a_data)
 
 getData ()
 
 setPresentation (int $type)
 
 getPresentation ()
 
 setBlockId (string $a_block_id="0")
 
 getBlockId ()
 
 setGuiObject (object $a_gui_object)
 Set GuiObject. More...
 
 getGuiObject ()
 
 setTitle (string $a_title)
 
 getTitle ()
 
 setOffset (int $a_offset)
 
 getOffset ()
 
 checkOffset (int $offset)
 
 setLimit (int $a_limit)
 
 getLimit ()
 
 setEnableEdit (bool $a_enableedit)
 
 getEnableEdit ()
 
 setRepositoryMode (bool $a_repositorymode)
 
 getRepositoryMode ()
 
 setSubtitle (string $a_subtitle)
 
 getSubtitle ()
 
 setRefId (int $a_refid)
 Set Ref Id (only used if isRepositoryObject() is true). More...
 
 getRefId ()
 
 setAdminCommands (bool $a_admincommands)
 
 getAdminCommands ()
 
 setEnableNumInfo (bool $a_enablenuminfo)
 
 getEnableNumInfo ()
 
 setProperties (array $a_properties)
 This function is supposed to be used for block type specific properties, that should be inherited through ilColumnGUI->setBlockProperties. More...
 
 getProperty (string $a_property)
 
 setProperty (string $a_property, string $a_value)
 
 setRowTemplate (string $a_rowtemplatename, string $a_rowtemplatedir="")
 Set Row Template Name. More...
 
 getNavParameter ()
 
 getConfigParameter ()
 
 getMoveParameter ()
 
 getRowTemplateName ()
 
 getRowTemplateDir ()
 
 addBlockCommand (string $a_href, string $a_text, string $a_onclick="", ?RoundTrip $modal=null)
 
 getBlockCommands ()
 
 getHTML ()
 
 getAsynch ()
 Use this for final get before sending asynchronous output (ajax) per echo to output. More...
 
 getPaginationViewControl ()
 Fill previous/next row. More...
 
 getViewControlsForPanel ()
 
 sortObject ()
 
 addSortOption (string $option, string $label, bool $active)
 
 setSortTarget (string $target)
 
 addPresentation (string $label, string $target, bool $active)
 
 getNoItemFoundContent ()
 
 addToDeskObject ()
 
 removeFromDeskObject ()
 

Protected Member Functions

 getCardForData (BlockDTO $data)
 
 getListItemGroups ()
 Get items. More...
 
 getListItemForDataDTO (BlockDTO $data)
 
 isRepositoryObject ()
 Returns whether block has a corresponding repository object. More...
 
 getLegacyContent ()
 Get legacy content. More...
 
 preloadData (array $data)
 Can be overwritten in subclasses. More...
 
 initAndShow ()
 
 isRootNode (int $refId)
 
 getRepositoryTitle ()
 
 getManageFields ()
 
- Protected Member Functions inherited from ilBlockGUI
 isRepositoryObject ()
 Returns whether block has a corresponding repository object. More...
 
 specialCharsAsEntities (string $string)
 
 initCommands ()
 
 preloadData (array $data)
 Can be overwritten in subclasses. More...
 
 getLegacyContent ()
 Get legacy content. More...
 
 getListItemForData (array $data)
 Get list item for data array. More...
 
 handleNavigation ()
 Handle navigation. More...
 
 loadData ()
 Load data for current page. More...
 
 getListItemGroups ()
 Get items. More...
 
 addRepoCommands ()
 Add repo commands. More...
 
 getActionsForPanel ()
 
 send (string $output)
 Send. More...
 

Protected Attributes

ilFavouritesManager $favourites_manager
 
int $requested_item_ref_id
 
ilSetting $settings
 
ilLogger $logging
 
Services $http
 
ilPDSelectedItemsBlockViewSettings $viewSettings
 
array $data
 
- Protected Attributes inherited from ilBlockGUI
ILIAS UI Renderer $renderer
 
Factory $factory
 
object $gui_object
 
ILIAS Container Block StandardGUIRequest $request
 
ILIAS Container Block BlockManager $block_manager
 
bool $repositorymode = false
 
ILIAS DI UIServices $ui
 
array $data = array()
 
bool $enablenuminfo = true
 
array $footer_links = array()
 
string $block_id = "0"
 
bool $allow_moving = true
 
array $move = array("left" => false, "right" => false, "up" => false, "down" => false)
 
array $block_commands = array()
 
int $max_count = 0
 
bool $close_command = false
 
bool $image = false
 
array $property = []
 
string $nav_value = ""
 
string $css_row = ""
 
string $title = ""
 
bool $admincommands = false
 
array $dropdown
 
ilTemplate $tpl
 
ilGlobalTemplateInterface $main_tpl
 
ilObjUser $user
 
ilCtrl $ctrl
 
ilAccessHandler $access
 
ilLanguage $lng
 
ilObjectDefinition $obj_def
 
int $presentation
 
int $requested_ref_id
 

Private Member Functions

 sortByDate (array $data, bool $asc=true)
 
 sortByTitle (array $data)
 
 sortManually (array $data)
 

Private Attributes

string $content
 
ilRbacSystem $rbacsystem
 
string $parent
 
mixed $object_cache
 
ilTree $tree
 
mixed $objDefinition
 
Factory $refinery
 
RoundTrip $manual_sort_modal = null
 
readonly SignalGenerator $signal_generator
 

Additional Inherited Members

- Static Public Member Functions inherited from ilBlockGUI
static getScreenMode ()
 
- Data Fields inherited from ilBlockGUI
const PRES_MAIN_LEG = 0
 
const PRES_SEC_LEG = 1
 
const PRES_SEC_LIST = 2
 
const PRES_MAIN_LIST = 3
 
const PRES_MAIN_TILE = 4
 

Detailed Description

Definition at line 34 of file class.ilDashboardBlockGUI.php.

Constructor & Destructor Documentation

◆ __construct()

ilDashboardBlockGUI::__construct ( )

Reimplemented from ilBlockGUI.

Reimplemented in ilDashboardRecommendedContentGUI.

Definition at line 54 of file class.ilDashboardBlockGUI.php.

55 {
57 global $DIC;
58 $this->http = $DIC->http();
59 $this->refinery = $DIC->refinery();
60 $this->logging = $DIC->logger()->root();
61 $this->settings = $DIC->settings();
62 $this->object_cache = $DIC['ilObjDataCache'];
63 $this->tree = $DIC->repositoryTree();
64 $this->objDefinition = $DIC['objDefinition'];
65 $this->rbacsystem = $DIC->rbac()->system();
66 $this->favourites_manager = new ilFavouritesManager();
67 $this->parent = $this->ctrl->getCurrentClassPath()[0] ?? '';
68 $this->signal_generator = new SignalGenerator();
69 $this->init();
70 }
Manages favourites, currently the interface for other components, needs discussion.
static http()
Fetches the global http state from ILIAS.
__construct(Container $dic, ilPlugin $plugin)
@inheritDoc
global $DIC
Definition: shib_login.php:26

References $DIC, ILIAS\GlobalScreen\Provider\__construct(), ILIAS\Repository\ctrl(), ILIAS\FileDelivery\http(), init(), ILIAS\Repository\refinery(), and ILIAS\Repository\settings().

+ Here is the call graph for this function:

Member Function Documentation

◆ addCommandActions()

ilDashboardBlockGUI::addCommandActions ( )

Definition at line 365 of file class.ilDashboardBlockGUI.php.

365 : void
366 {
367 $sortings = $this->viewSettings->getSelectableSortingModes();
368 if (count($sortings) > 1) {
369 foreach ($sortings as $sorting) {
371 global $DIC;
372 $signal = $this->signal_generator->create();
373 // $signal = $DIC['ui.signal_generator']->create();
374 $this->manual_sort_modal = $this->ui->factory()->modal()->roundtrip(
375 $this->lng->txt('dash_manual_sorting_title'),
376 [$this->manually()]
377 )->withAdditionalOnLoadCode(fn($id) => "document.getElementById('$id').addEventListener('close', () => {window.location = window.location;});");
378
379 $this->manual_sort_modal = $this->manual_sort_modal->withAdditionalOnLoadCode(fn($id) => (
380 "il.Dashboard.moveModalButtons($id)"
381 ));
382 }
383 $this->addSortOption(
384 $sorting,
385 '<span data-action="' . $sorting . '">' . $this->lng->txt(ilObjDashboardSettingsGUI::DASH_SORT_PREFIX . $sorting) . '</span>',
386 $sorting === $this->viewSettings->getEffectiveSortingMode()
387 );
388 }
389 $this->setSortTarget($this->ctrl->getLinkTarget($this, 'changePDItemSorting'));
390 }
391
392 $presentations = $this->viewSettings->getSelectablePresentationModes();
393 foreach ($presentations as $presentation) {
394 $this->ctrl->setParameter($this, 'presentation', $presentation);
395 $this->addPresentation(
396 $this->ui->renderer()->render($this->ui->factory()->symbol()->glyph()->{$presentation . 'View'}()),
397 $this->ctrl->getLinkTarget($this, 'changePDItemPresentation'),
398 $presentation === $this->viewSettings->getEffectivePresentationMode()
399 );
400 $this->ctrl->setParameter($this, 'presentation', null);
401 }
402
403 if ($this->removeMultipleEnabled()) {
404 $this->addBlockCommand(
405 $this->ctrl->getLinkTarget($this, 'manage'),
406 $this->getRemoveMultipleActionText(),
407 '',
408 $this->getRemoveModal()
409 );
410 }
411 }
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
Definition: plugin.php:23
array $presentations
addPresentation(string $label, string $target, bool $active)
addBlockCommand(string $a_href, string $a_text, string $a_onclick="", ?RoundTrip $modal=null)
addSortOption(string $option, string $label, bool $active)
setSortTarget(string $target)

References $DIC, $id, ilBlockGUI\$presentation, ilBlockGUI\$presentations, ilBlockGUI\addPresentation(), ilBlockGUI\addSortOption(), ILIAS\Repository\ctrl(), ilObjDashboardSettingsGUI\DASH_SORT_PREFIX, ILIAS\Repository\lng(), ilBlockGUI\setSortTarget(), ilPDSelectedItemsBlockConstants\SORT_MANUALLY, and ILIAS\Repository\ui().

Referenced by getHTML().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ addCustomCommandsToActionMenu()

ilDashboardBlockGUI::addCustomCommandsToActionMenu ( ilObjectListGUI  $itemListGui,
int  $ref_id 
)

Reimplemented in ilDashboardRecommendedContentGUI.

Definition at line 78 of file class.ilDashboardBlockGUI.php.

78 : void
79 {
80 }

Referenced by getCardForData(), and getListItemForDataDTO().

+ Here is the caller graph for this function:

◆ addToDeskObject()

ilDashboardBlockGUI::addToDeskObject ( )

Implements ilDesktopItemHandling.

Definition at line 611 of file class.ilDashboardBlockGUI.php.

611 : void
612 {
613 $this->favourites_manager->add($this->user->getId(), $this->requested_item_ref_id);
614 $this->main_tpl->setOnScreenMessage('success', $this->lng->txt('rep_added_to_favourites'), true);
615 $this->ctrl->redirectByClass(ilDashboardGUI::class, 'show');
616 }

References ILIAS\Repository\ctrl(), ILIAS\Repository\lng(), and ILIAS\Repository\user().

+ Here is the call graph for this function:

◆ byType()

ilDashboardBlockGUI::byType ( string  $a_type)

Definition at line 636 of file class.ilDashboardBlockGUI.php.

637 {
638 $class = $this->objDefinition->getClassName($a_type);
639 if (!$class) {
640 throw new ilException(sprintf('Could not find a class for object type: %s', $a_type));
641 }
642
643 $location = $this->objDefinition->getLocation($a_type);
644 if (!$location) {
645 throw new ilException(sprintf('Could not find a class location for object type: %s', $a_type));
646 }
647
648 $full_class = 'ilObj' . $class . 'ListGUI';
649 $item_list_gui = new $full_class();
650
651 $item_list_gui->setContainerObject($this);
652 $item_list_gui->enableNotes(false);
653 $item_list_gui->enableComments(false);
654 $item_list_gui->enableTags(false);
655
656 $item_list_gui->enableIcon(true);
657 $item_list_gui->enableDelete(false);
658 $item_list_gui->enableCut(false);
659 $item_list_gui->enableCopy(false);
660 $item_list_gui->enableLink(false);
661 $item_list_gui->enableInfoScreen(true);
662
663 $item_list_gui->enableCommands(true, true);
664
665 return $item_list_gui;
666 }
$location
Definition: buildRTE.php:22
Base class for ILIAS Exception handling.

References $location.

Referenced by getCardForData(), and getListItemForDataDTO().

+ Here is the caller graph for this function:

◆ changePDItemPresentationObject()

ilDashboardBlockGUI::changePDItemPresentationObject ( )

Definition at line 580 of file class.ilDashboardBlockGUI.php.

580 : string
581 {
582 $this->viewSettings->storeActorPresentationMode(
583 ilUtil::stripSlashes((string) ($this->http->request()->getQueryParams()['presentation'] ?? ''))
584 );
585 return $this->initAndShow();
586 }
static stripSlashes(string $a_str, bool $a_strip_html=true, string $a_allow="")

References ILIAS\FileDelivery\http(), and ilUtil\stripSlashes().

+ Here is the call graph for this function:

◆ changePDItemSortingObject()

ilDashboardBlockGUI::changePDItemSortingObject ( )

Definition at line 571 of file class.ilDashboardBlockGUI.php.

571 : string
572 {
573 $this->viewSettings->storeActorSortingMode(
574 ilUtil::stripSlashes((string) ($this->http->request()->getQueryParams()['sorting'] ?? ''))
575 );
576
577 return $this->initAndShow();
578 }

References ILIAS\FileDelivery\http(), and ilUtil\stripSlashes().

+ Here is the call graph for this function:

◆ confirmedRemove()

ilDashboardBlockGUI::confirmedRemove ( array  $ids)
Parameters
int[]$ids

Reimplemented in ilMembershipBlockGUI, ilSelectedItemsBlockGUI, ilDashboardLearningSequenceGUI, and ilDashboardRecommendedContentGUI.

Definition at line 632 of file class.ilDashboardBlockGUI.php.

632 : void
633 {
634 }

◆ emptyHandling()

ilDashboardBlockGUI::emptyHandling ( )
abstract

◆ executeCommand()

ilDashboardBlockGUI::executeCommand ( )

Definition at line 474 of file class.ilDashboardBlockGUI.php.

474 : string
475 {
476 $next_class = $this->ctrl->getNextClass();
477 $cmd = $this->ctrl->getCmd('getHTML');
478
479 switch ($next_class) {
480 case strtolower(ilCommonActionDispatcherGUI::class):
481 $gui = ilCommonActionDispatcherGUI::getInstanceFromAjaxCall();
482 if ($gui instanceof ilCommonActionDispatcherGUI) {
483 $this->ctrl->forwardCommand($gui);
484 }
485 break;
486
487 default:
488 switch ($cmd) {
489 case 'confirmedRemove':
490 $form = $this->ui->factory()->input()->container()->form()->standard('', $this->getManageFields())->withRequest($this->http->request());
491 $this->confirmedRemove(array_merge(...array_filter($form->getData())));
492 // no break
493 default:
494 if (method_exists($this, $cmd . 'Object')) {
495 return $this->{$cmd . 'Object'}();
496 }
497 }
498 }
499 return '';
500 }
Class ilCommonActionDispatcherGUI.

References ILIAS\Repository\ctrl(), ilCommonActionDispatcherGUI\getInstanceFromAjaxCall(), ILIAS\FileDelivery\http(), and ILIAS\Repository\ui().

+ Here is the call graph for this function:

◆ getCardForData()

ilDashboardBlockGUI::getCardForData ( BlockDTO  $data)
protected

Definition at line 82 of file class.ilDashboardBlockGUI.php.

83 {
84 $itemListGui = $this->byType($data->getType());
85 $this->addCustomCommandsToActionMenu($itemListGui, $data->getRefId());
86 $card = $itemListGui->getAsCard(
87 $data->getRefId(),
88 $data->getObjId(),
89 $data->getType(),
90 $data->getTitle(),
91 $data->getDescription()
92 );
93
94 return $card;
95 }
addCustomCommandsToActionMenu(ilObjectListGUI $itemListGui, int $ref_id)

References $data, addCustomCommandsToActionMenu(), byType(), and ILIAS\components\Dashboard\Block\BlockDTO\getType().

Referenced by getLegacyContent().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getData()

ilDashboardBlockGUI::getData ( )
Returns
array<BlockDTO[]>

Reimplemented from ilBlockGUI.

Definition at line 239 of file class.ilDashboardBlockGUI.php.

239 : array
240 {
241 return parent::getData();
242 }

◆ getHTML()

ilDashboardBlockGUI::getHTML ( )

Reimplemented from ilBlockGUI.

Definition at line 206 of file class.ilDashboardBlockGUI.php.

206 : string
207 {
208 $this->setTitle(
209 $this->lng->txt('dash_' . $this->viewSettings->getViewName($this->viewSettings->getCurrentView()))
210 );
211
212 if (!$this->data) {
213 return $this->emptyHandling();
214 }
215
216 $this->addCommandActions();
217 $this->setData($this->getItemGroups());
218
219 $modal = $this->manual_sort_modal ? $this->ui->renderer()->render($this->manual_sort_modal) : '';
220 return parent::getHTML() . $modal;
221 }
setTitle(string $a_title)

References addCommandActions(), emptyHandling(), getItemGroups(), ILIAS\Repository\lng(), setData(), ilBlockGUI\setTitle(), and ILIAS\Repository\ui().

Referenced by initAndShow().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getItemGroups()

ilDashboardBlockGUI::getItemGroups ( )
Returns
array<BlockDTO[]>

Definition at line 591 of file class.ilDashboardBlockGUI.php.

591 : array
592 {
593 switch ($this->viewSettings->getEffectiveSortingMode()) {
595 $data = $this->getData();
596 $data = array_merge(...array_values($data));
597 $data = $this->sortByTitle($data);
598 return ['' => $data];
600 return $this->groupItemsByStartDate();
602 return $this->groupItemsByType();
604 return ['' => $this->sortManually($this->getData())];
606 default:
607 return $this->groupItemsByLocation();
608 }
609 }

References $data, ilPDSelectedItemsBlockConstants\SORT_BY_ALPHABET, ilPDSelectedItemsBlockConstants\SORT_BY_LOCATION, ilPDSelectedItemsBlockConstants\SORT_BY_START_DATE, ilPDSelectedItemsBlockConstants\SORT_BY_TYPE, and ilPDSelectedItemsBlockConstants\SORT_MANUALLY.

Referenced by getHTML().

+ Here is the caller graph for this function:

◆ getLegacyContent()

ilDashboardBlockGUI::getLegacyContent ( )
protected

Get legacy content.

Returns
string

Reimplemented from ilBlockGUI.

Definition at line 136 of file class.ilDashboardBlockGUI.php.

136 : string
137 {
138 $groupedCards = [];
139 foreach ($this->loadData() as $title => $group) {
140 $cards = array_filter(array_map($this->getCardForData(...), $group));
141 if ($cards) {
142 $groupedCards[] = $this->ui->factory()->panel()->sub(
143 (string) $title,
144 $this->factory->deck($cards)->withNormalCardsSize()
145 );
146 }
147 }
148
149 if ($groupedCards) {
150 return $this->renderer->render($groupedCards);
151 }
152
153 return $this->getNoItemFoundContent();
154 }
renderer()
factory()
loadData()
Load data for current page.

References ilBlockGUI\$title, factory(), getCardForData(), getNoItemFoundContent(), ilBlockGUI\loadData(), renderer(), and ILIAS\Repository\ui().

+ Here is the call graph for this function:

◆ getListItemForDataDTO()

ilDashboardBlockGUI::getListItemForDataDTO ( BlockDTO  $data)
protected

Definition at line 114 of file class.ilDashboardBlockGUI.php.

114 : ?Item
115 {
116 $itemListGui = $this->byType($data->getType());
117 $this->addCustomCommandsToActionMenu($itemListGui, $data->getRefId());
118 $list_item = $itemListGui->getAsListItem(
119 $data->getRefId(),
120 $data->getObjId(),
121 $data->getType(),
122 $data->getTitle(),
123 $data->getDescription()
124 );
125
126 $list_item = $list_item->withProperties($list_item->getProperties() + $data->getAdditionalData());
127
128 return $list_item;
129 }
Common interface to all items.
Definition: Item.php:32

References $data, addCustomCommandsToActionMenu(), byType(), and ILIAS\components\Dashboard\Block\BlockDTO\getType().

Referenced by getListItemGroups().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getListItemGroups()

ilDashboardBlockGUI::getListItemGroups ( )
protected

Get items.

Returns
\ILIAS\UI\Component\Item\Group[]

Reimplemented from ilBlockGUI.

Definition at line 97 of file class.ilDashboardBlockGUI.php.

97 : array
98 {
99 $groupedCards = [];
100 foreach ($this->loadData() as $title => $group) {
101 $items = [];
102 foreach ($group as $datum) {
103 $item = $this->getListItemForDataDTO($datum);
104 if ($item !== null) {
105 $items[] = $item;
106 }
107 }
108 $groupedCards[] = $this->factory->item()->group((string) $title, $items);
109 }
110
111 return $groupedCards;
112 }

References ilBlockGUI\$title, factory(), getListItemForDataDTO(), and ilBlockGUI\loadData().

+ Here is the call graph for this function:

◆ getManageFields()

ilDashboardBlockGUI::getManageFields ( )
protected

Definition at line 444 of file class.ilDashboardBlockGUI.php.

444 : array
445 {
446 $inputs = [];
447 foreach ($this->getItemGroups() as $key => $item_group) {
448 $options = [];
449 foreach ($item_group as $item) {
450 $icon = $this->ui->renderer()->render($this->ui->factory()->symbol()->icon()->custom(ilObject::_getIcon($item->getObjId()), ''));
451 if ($this instanceof ilMembershipBlockGUI) {
452 if ($this->rbacsystem->checkAccess('leave', $item->getRefId())) {
453 if ($item->getType() === 'crs' || $item->getType() === 'grp') {
454 $members_obj = ilParticipants::getInstance($item->getRefId());
455 if (!$members_obj->checkLastAdmin([$this->user->getId()])) {
456 continue;
457 }
458 }
459 $options[$item->getRefId()] = $icon . $item->getTitle();
460 }
461 } else {
462 $options[$item->getRefId()] = $icon . $item->getTitle();
463 }
464 }
465 if ($options !== []) {
466 $inputs[] = $this->ui->factory()->input()->field()->multiSelect((string) $key, $options)
467 ->withAdditionalTransformation($this->refinery->to()->listOf($this->refinery->kindlyTo()->int()));
468 }
469 }
470
471 return $inputs;
472 }
static _getIcon(int $obj_id=0, string $size="big", string $type="", bool $offline=false)
Get icon for repository item.
static getInstance(int $a_ref_id)

References ILIAS\UI\Implementation\Component\Input\$inputs, ilObject\_getIcon(), ilParticipants\getInstance(), ILIAS\Repository\refinery(), and ILIAS\Repository\ui().

+ Here is the call graph for this function:

◆ getNoItemFoundContent()

ilDashboardBlockGUI::getNoItemFoundContent ( )

Reimplemented from ilBlockGUI.

Definition at line 168 of file class.ilDashboardBlockGUI.php.

168 : string
169 {
170 return $this->emptyHandling();
171 }

References emptyHandling().

Referenced by getLegacyContent().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getRemoveModal()

ilDashboardBlockGUI::getRemoveModal ( )

Definition at line 413 of file class.ilDashboardBlockGUI.php.

413 : RoundTrip
414 {
415 $items = $this->getManageFields();
416 if ($items !== []) {
417 if ($this->viewSettings->isSelectedItemsViewActive()) {
418 $question = $this->lng->txt('dash_info_sure_remove_from_favs');
419 } else {
420 $this->lng->loadLanguageModule('mmbr');
421 $question = $this->lng->txt('mmbr_info_delete_sure_unsubscribe');
422 }
423 $modal = $this->ui->factory()->modal()->roundtrip(
425 [
426 $this->ui->factory()->messageBox()->confirmation($question),
427 $this->ui->factory()->messageBox()->info($this->lng->txt('select_one')),
428 ],
429 $items,
430 $this->ctrl->getLinkTargetByClass([ilDashboardGUI::class, $this::class], 'confirmedRemove')
431 )->withSubmitLabel($this->getRemoveMultipleActionText());
432
433 $modal = $modal->withOnLoadCode(static fn($id) => "il.Dashboard.confirmModal($id)");
434 } else {
435 $modal = $this->ui->factory()->modal()->roundtrip(
437 $this->ui->factory()->messageBox()->info($this->lng->txt('pd_no_items_to_manage'))
438 );
439 }
440
441 return $modal;
442 }

References $id, ILIAS\Repository\lng(), and ILIAS\Repository\ui().

+ Here is the call graph for this function:

◆ getRemoveMultipleActionText()

ilDashboardBlockGUI::getRemoveMultipleActionText ( )
abstract

◆ getRepositoryTitle()

ilDashboardBlockGUI::getRepositoryTitle ( )
protected

Definition at line 353 of file class.ilDashboardBlockGUI.php.

353 : string
354 {
355 $nd = $this->tree->getNodeData($this->tree->getRootId());
356 $title = $nd['title'];
357
358 if ($title === 'ILIAS') {
359 $title = $this->lng->txt('repository');
360 }
361
362 return $title;
363 }
$nd
Definition: error.php:30

References $nd, ilBlockGUI\$title, and ILIAS\Repository\lng().

+ Here is the call graph for this function:

◆ getViewControlsForPanel()

ilDashboardBlockGUI::getViewControlsForPanel ( )
Returns
ViewControl\Sortation[]|ViewControl\Pagination[]

Reimplemented from ilBlockGUI.

Definition at line 547 of file class.ilDashboardBlockGUI.php.

547 : array
548 {
549 global $DIC;
550 if (!$this->manual_sort_modal) {
551 return parent::getViewControlsForPanel();
552 }
553 $show = $this->manual_sort_modal->getShowSignal();
554 $modal_signals = json_encode(['manually' => (string) $show]);
555 $url = json_encode($this->ctrl->getLinkTarget($this, 'changePDItemSorting'));
556 $signal = $this->signal_generator->create();
557 $code = fn($id) => "il.Dashboard.showModalOnSort($id, $url, '$signal', $modal_signals)";
558 $compontents = array_map(
559 fn($x) => $x instanceof Sortation ? $x->withOnSort($signal)->withAdditionalOnLoadCode($code) : $x,
560 parent::getViewControlsForPanel()
561 );
562
563 return $compontents;
564 }
This describes a Sortation Control.
Definition: Sortation.php:32
withOnSort(Signal $signal)
Get a component like this, triggering a signal of another component.
$url
Definition: shib_logout.php:68

References $DIC, $id, $url, ILIAS\Repository\ctrl(), and ILIAS\UI\Component\ViewControl\Sortation\withOnSort().

+ Here is the call graph for this function:

◆ getViewSettings()

ilDashboardBlockGUI::getViewSettings ( )

◆ init()

ilDashboardBlockGUI::init ( )

Definition at line 178 of file class.ilDashboardBlockGUI.php.

178 : void
179 {
180 $this->lng->loadLanguageModule('dash');
181 $this->lng->loadLanguageModule('rep');
182 $this->lng->loadLanguageModule('pd');
183 $this->initViewSettings();
184 $this->viewSettings->parse();
185 $this->requested_item_ref_id = (int) ($this->http->request()->getQueryParams()['item_ref_id'] ?? 0);
186 $this->initData();
187
188 $this->ctrl->setParameter($this, 'view', $this->viewSettings->getCurrentView());
189 if ($this->viewSettings->isTilePresentation()) {
190 $this->setPresentation(self::PRES_MAIN_LEG);
191 } else {
192 $this->setPresentation(self::PRES_SEC_LIST);
193 }
194 }
setPresentation(int $type)

References ILIAS\Repository\ctrl(), ILIAS\FileDelivery\http(), initData(), initViewSettings(), ILIAS\Repository\int(), ILIAS\Repository\lng(), and ilBlockGUI\setPresentation().

Referenced by __construct(), and initAndShow().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ initAndShow()

ilDashboardBlockGUI::initAndShow ( )
protected

Definition at line 196 of file class.ilDashboardBlockGUI.php.

196 : string
197 {
198 $this->init();
199 if ($this->parent === ilDashboardGUI::class) {
200 $this->ctrl->redirectByClass(ilDashboardGUI::class, 'show');
201 }
202
203 return $this->getHTML();
204 }

References ILIAS\Repository\ctrl(), getHTML(), and init().

+ Here is the call graph for this function:

◆ initData()

ilDashboardBlockGUI::initData ( )
abstract

Reimplemented in ilMembershipBlockGUI, ilSelectedItemsBlockGUI, ilDashboardRecommendedContentGUI, and ilStudyProgrammeDashboardViewGUI.

Referenced by init().

+ Here is the caller graph for this function:

◆ initViewSettings()

ilDashboardBlockGUI::initViewSettings ( )
abstract

◆ isRepositoryObject()

ilDashboardBlockGUI::isRepositoryObject ( )
protected

Returns whether block has a corresponding repository object.

Reimplemented from ilBlockGUI.

Definition at line 131 of file class.ilDashboardBlockGUI.php.

131 : bool
132 {
133 return false;
134 }

◆ isRootNode()

ilDashboardBlockGUI::isRootNode ( int  $refId)
protected

Definition at line 348 of file class.ilDashboardBlockGUI.php.

348 : bool
349 {
350 return $this->tree->getRootId() === $refId;
351 }
$refId
Definition: xapitoken.php:58

References $refId.

◆ manually()

ilDashboardBlockGUI::manually ( )

Definition at line 502 of file class.ilDashboardBlockGUI.php.

502 : Ordering
503 {
504 $request = $this->http->request();
505 $columns = [
506 'title' => $this->factory->table()->column()->text('Title')
507 ];
508
509 $records = null;
510 $proc = function ($b) use (&$records) {
511 return yield from array_map(fn($x) => $b->buildOrderingRow((string) $x['id'], $x), $records);
512 };
513
514 $uri = new URI((string) $request->getUri());
515 parse_str($uri->getQuery(), $query);
516 $uri = $uri->withQuery(http_build_query(array_merge(
517 $query,
518 ['view' => $this->viewSettings->getCurrentView()]
519 )));
520 $table = $this->factory->table()
521 ->ordering(new \ILIAS\Dashboard\TableData($proc), $uri, '', $columns)
522 ->withRequest($request);
523
524 $int = $this->refinery->byTrying([$this->refinery->kindlyTo()->int(), $this->refinery->always(null)]);
525
526 if ($request->getMethod() === 'POST' && $this->viewSettings->getCurrentView() === $this->http->wrapper()->query()->retrieve('view', $int)) {
527 $data = $table->getData();
528 if ($data) {
529 $this->viewSettings->storeActorSortingMode('manually');
530 $this->viewSettings->storeActorSortingData(array_flip($data));
531 $this->ctrl->redirectByClass(ilDashboardGUI::class);
532 }
533 }
534
535 $icon_for = fn(int $obj_id) => $this->renderer->render(
536 $this->ui->factory()->symbol()->icon()->custom(ilObject::_getIcon($obj_id), '')
537 );
538
539 $records = array_map(fn($x) => [
540 'id' => $x->getRefId(),
541 'title' => $icon_for($x->getObjId()) . $x->getTitle(),
542 ], array_values($this->sortManually($this->getItemGroups())));
543
544 return $table;
545 }
The scope of this class is split ilias-conform URI's into components.
Definition: URI.php:35
ILIAS Container Block StandardGUIRequest $request
This describes a Table to specify the order of its data (rows).
Definition: Ordering.php:29
Interface Observer \BackgroundTasks Contains several chained tasks and infos about them.

References Vendor\Package\$b, $data, ilObject\_getIcon(), ILIAS\Repository\ctrl(), factory(), ILIAS\ResourceStorage\Flavour\Machine\DefaultMachines\from(), ILIAS\FileDelivery\http(), ILIAS\Repository\refinery(), renderer(), and ILIAS\Repository\ui().

+ Here is the call graph for this function:

◆ preloadData()

ilDashboardBlockGUI::preloadData ( array  $data)
protected

Can be overwritten in subclasses.

Only the visible part of the complete data was passed so a preload of the visible data is possible.

Parameters
array$data

Reimplemented from ilBlockGUI.

Definition at line 156 of file class.ilDashboardBlockGUI.php.

156 : void
157 {
158 $obj_ids = [];
159 foreach ($data as $group) {
160 foreach ($group as $datum) {
161 $obj_ids[] = $datum->getObjId();
162 }
163 }
165 parent::preloadData($data);
166 }
static preloadListGUIData(array $a_obj_ids)

References $data, and ilLPStatus\preloadListGUIData().

+ Here is the call graph for this function:

◆ removeFromDeskObject()

ilDashboardBlockGUI::removeFromDeskObject ( )

Implements ilDesktopItemHandling.

Definition at line 618 of file class.ilDashboardBlockGUI.php.

618 : void
619 {
620 $this->favourites_manager->remove($this->user->getId(), $this->requested_item_ref_id);
621 $this->main_tpl->setOnScreenMessage('success', $this->lng->txt('rep_removed_from_favourites'), true);
622 $this->ctrl->redirectByClass(ilDashboardGUI::class, 'show');
623 }

References ILIAS\Repository\ctrl(), ILIAS\Repository\lng(), and ILIAS\Repository\user().

+ Here is the call graph for this function:

◆ removeMultipleEnabled()

◆ setData()

ilDashboardBlockGUI::setData ( array  $a_data)
Parameters
array<BlockDTO[]>$a_data

Reimplemented from ilBlockGUI.

Definition at line 226 of file class.ilDashboardBlockGUI.php.

226 : void
227 {
228 $this->data = array_filter(
229 array_map(
230 static fn($group) => array_filter($group, static fn($item) => $item instanceof BlockDTO),
231 $a_data
232 )
233 );
234 }

Referenced by getHTML(), ilMembershipBlockGUI\initData(), ilSelectedItemsBlockGUI\initData(), ilDashboardRecommendedContentGUI\initData(), and ilStudyProgrammeDashboardViewGUI\initData().

+ Here is the caller graph for this function:

◆ sortByDate()

ilDashboardBlockGUI::sortByDate ( array  $data,
bool  $asc = true 
)
private
Parameters
BlockDTO[]$data

Definition at line 671 of file class.ilDashboardBlockGUI.php.

671 : array
672 {
673 usort(
674 $data,
675 static fn(BlockDTO $left, BlockDTO $right): int =>
676 ($asc ? -1 : 1) *
677 (($right->getStartDate()?->get(IL_CAL_UNIX) ?? 0) - ($left->getStartDate()?->get(IL_CAL_UNIX) ?? 0))
678 );
679 return $data;
680 }
const IL_CAL_UNIX

References $data, ILIAS\components\Dashboard\Block\BlockDTO\getStartDate(), and IL_CAL_UNIX.

+ Here is the call graph for this function:

◆ sortByTitle()

ilDashboardBlockGUI::sortByTitle ( array  $data)
private
Parameters
BlockDTO[]$data

Definition at line 685 of file class.ilDashboardBlockGUI.php.

685 : array
686 {
687 usort(
688 $data,
689 static fn(BlockDTO $left, BlockDTO $right): int => strcmp($left->getTitle(), $right->getTitle())
690 );
691 return $data;
692 }

References $data, and ILIAS\components\Dashboard\Block\BlockDTO\getTitle().

+ Here is the call graph for this function:

◆ sortManually()

ilDashboardBlockGUI::sortManually ( array  $data)
private

Definition at line 694 of file class.ilDashboardBlockGUI.php.

694 : array
695 {
696 $data = array_merge(...array_values($data));
697 $new_at_botton = 'bot' === ($this->viewSettings->getEffectiveSortingOptions()['new_items'] ?? 'bot');
698 $default = $new_at_botton ? INF : -INF;
699 $manual_sorting = $this->viewSettings->getEffectiveSortingData();
700 usort($data, fn(BlockDTO $l, BlockDTO $r) => (
701 ($manual_sorting[$l->getRefId()] ?? $default) <=> ($manual_sorting[$r->getRefId()] ?? $default)
702 ));
703
704 return $data;
705 }

References $data, and ILIAS\components\Dashboard\Block\BlockDTO\getRefId().

+ Here is the call graph for this function:

◆ viewDashboardObject()

ilDashboardBlockGUI::viewDashboardObject ( )

Definition at line 566 of file class.ilDashboardBlockGUI.php.

566 : void
567 {
568 $this->initAndShow();
569 }

Field Documentation

◆ $content

◆ $data

array ilDashboardBlockGUI::$data
protected

◆ $favourites_manager

ilFavouritesManager ilDashboardBlockGUI::$favourites_manager
protected

Definition at line 39 of file class.ilDashboardBlockGUI.php.

◆ $http

Services ilDashboardBlockGUI::$http
protected

Definition at line 46 of file class.ilDashboardBlockGUI.php.

◆ $logging

ilLogger ilDashboardBlockGUI::$logging
protected

Definition at line 45 of file class.ilDashboardBlockGUI.php.

◆ $manual_sort_modal

RoundTrip ilDashboardBlockGUI::$manual_sort_modal = null
private

Definition at line 51 of file class.ilDashboardBlockGUI.php.

◆ $objDefinition

mixed ilDashboardBlockGUI::$objDefinition
private

Definition at line 43 of file class.ilDashboardBlockGUI.php.

◆ $object_cache

mixed ilDashboardBlockGUI::$object_cache
private

Definition at line 41 of file class.ilDashboardBlockGUI.php.

◆ $parent

string ilDashboardBlockGUI::$parent
private

Definition at line 38 of file class.ilDashboardBlockGUI.php.

◆ $rbacsystem

ilRbacSystem ilDashboardBlockGUI::$rbacsystem
private

Definition at line 37 of file class.ilDashboardBlockGUI.php.

◆ $refinery

Factory ilDashboardBlockGUI::$refinery
private

Definition at line 47 of file class.ilDashboardBlockGUI.php.

◆ $requested_item_ref_id

int ilDashboardBlockGUI::$requested_item_ref_id
protected

Definition at line 40 of file class.ilDashboardBlockGUI.php.

◆ $settings

ilSetting ilDashboardBlockGUI::$settings
protected

Definition at line 44 of file class.ilDashboardBlockGUI.php.

Referenced by ilFavouritesListGUI\__construct().

◆ $signal_generator

◆ $tree

ilTree ilDashboardBlockGUI::$tree
private

Definition at line 42 of file class.ilDashboardBlockGUI.php.

◆ $viewSettings

ilPDSelectedItemsBlockViewSettings ilDashboardBlockGUI::$viewSettings
protected

Definition at line 48 of file class.ilDashboardBlockGUI.php.

Referenced by getViewSettings().


The documentation for this class was generated from the following file: