ILIAS  trunk Revision v12.0_alpha-1221-g4e438232683
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 ()
 
 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

string $content
 
readonly ilRbacSystem $rbacsystem
 
string $parent
 
readonly ilFavouritesManager $favourites_manager
 
int $requested_item_ref_id
 
mixed $object_cache
 
readonly ilTree $tree
 
readonly mixed $obj_definition
 
readonly ilSetting $settings
 
readonly ilLogger $logging
 
readonly Services $http
 
readonly Factory $refinery
 
ilPDSelectedItemsBlockViewSettings $view_settings
 
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

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->obj_definition = $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 363 of file class.ilDashboardBlockGUI.php.

363 : void
364 {
365 $sortings = $this->view_settings->getSelectableSortingModes();
366 if (count($sortings) > 1) {
367 foreach ($sortings as $sorting) {
369 global $DIC;
370 $signal = $this->signal_generator->create();
371 // $signal = $DIC['ui.signal_generator']->create();
372 $this->manual_sort_modal = $this->ui->factory()->modal()->roundtrip(
373 $this->lng->txt('dash_manual_sorting_title'),
374 [$this->manually()]
375 )->withAdditionalOnLoadCode(fn($id) => "document.getElementById('$id').addEventListener('close', () => {window.location = window.location;});");
376
377 $this->manual_sort_modal = $this->manual_sort_modal->withAdditionalOnLoadCode(fn($id) => (
378 "il.Dashboard.moveModalButtons($id)"
379 ));
380 }
381 $this->addSortOption(
382 $sorting,
383 '<span data-action="' . $sorting . '">' . $this->lng->txt(ilObjDashboardSettingsGUI::DASH_SORT_PREFIX . $sorting) . '</span>',
384 $sorting === $this->view_settings->getEffectiveSortingMode()
385 );
386 }
387 $this->setSortTarget($this->ctrl->getLinkTarget($this, 'changePDItemSorting'));
388 }
389
390 $presentations = $this->view_settings->getSelectablePresentationModes();
391 foreach ($presentations as $presentation) {
392 $this->ctrl->setParameter($this, 'presentation', $presentation);
393 $this->addPresentation(
394 $this->ui->renderer()->render($this->ui->factory()->symbol()->glyph()->{$presentation . 'View'}()),
395 $this->ctrl->getLinkTarget($this, 'changePDItemPresentation'),
396 $presentation === $this->view_settings->getEffectivePresentationMode()
397 );
398 $this->ctrl->setParameter($this, 'presentation', null);
399 }
400
401 if ($this->removeMultipleEnabled()) {
402 $this->addBlockCommand(
403 $this->ctrl->getLinkTarget($this, 'manage'),
404 $this->lng->txt('dash_' . $this->getBlockType() . '_remove_multiple'),
405 '',
406 $this->getRemoveModal()
407 );
408 }
409 }
$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 607 of file class.ilDashboardBlockGUI.php.

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

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 633 of file class.ilDashboardBlockGUI.php.

634 {
635 $class = $this->obj_definition->getClassName($a_type);
636 if (!$class) {
637 throw new ilException(sprintf('Could not find a class for object type: %s', $a_type));
638 }
639
640 $location = $this->obj_definition->getLocation($a_type);
641 if (!$location) {
642 throw new ilException(sprintf('Could not find a class location for object type: %s', $a_type));
643 }
644
645 $full_class = 'ilObj' . $class . 'ListGUI';
646 $item_list_gui = new $full_class();
647
648 $item_list_gui->setContainerObject($this);
649 $item_list_gui->enableNotes(false);
650 $item_list_gui->enableComments(false);
651 $item_list_gui->enableTags(false);
652
653 $item_list_gui->enableIcon(true);
654 $item_list_gui->enableDelete(false);
655 $item_list_gui->enableCut(false);
656 $item_list_gui->enableCopy(false);
657 $item_list_gui->enableLink(false);
658 $item_list_gui->enableInfoScreen(true);
659
660 $item_list_gui->enableCommands(true, true);
661
662 return $item_list_gui;
663 }
$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 572 of file class.ilDashboardBlockGUI.php.

572 : string
573 {
574 $this->view_settings->storeActorPresentationMode(
575 ilUtil::stripSlashes((string) ($this->http->request()->getQueryParams()['presentation'] ?? ''))
576 );
577 return $this->initAndShow();
578 }
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 563 of file class.ilDashboardBlockGUI.php.

563 : string
564 {
565 $this->view_settings->storeActorSortingMode(
566 ilUtil::stripSlashes((string) ($this->http->request()->getQueryParams()['sorting'] ?? ''))
567 );
568
569 return $this->initAndShow();
570 }

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 629 of file class.ilDashboardBlockGUI.php.

629 : void
630 {
631 }

◆ emptyHandling()

ilDashboardBlockGUI::emptyHandling ( )
abstract

◆ executeCommand()

ilDashboardBlockGUI::executeCommand ( )

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

466 : string
467 {
468 $next_class = $this->ctrl->getNextClass();
469 $cmd = $this->ctrl->getCmd('getHTML');
470
471 switch ($next_class) {
472 case strtolower(ilCommonActionDispatcherGUI::class):
473 $gui = ilCommonActionDispatcherGUI::getInstanceFromAjaxCall();
474 if ($gui instanceof ilCommonActionDispatcherGUI) {
475 $this->ctrl->forwardCommand($gui);
476 }
477 break;
478
479 default:
480 switch ($cmd) {
481 case 'confirmedRemove':
482 $form = $this->ui->factory()->input()->container()->form()->standard('', $this->getManageFields())->withRequest($this->http->request());
483 $this->confirmedRemove(array_merge(...array_filter($form->getData())));
484 // no break
485 default:
486 if (method_exists($this, $cmd . 'Object')) {
487 return $this->{$cmd . 'Object'}();
488 }
489 }
490 }
491 return '';
492 }
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 238 of file class.ilDashboardBlockGUI.php.

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

◆ getHTML()

ilDashboardBlockGUI::getHTML ( )

Reimplemented from ilBlockGUI.

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

205 : string
206 {
207 $this->setTitle(
208 $this->lng->txt('dash_' . $this->view_settings->getViewName($this->view_settings->getView()))
209 );
210
211 if (!$this->data) {
212 return $this->emptyHandling();
213 }
214
215 $this->addCommandActions();
216 $this->setData($this->getItemGroups());
217
218 $modal = $this->manual_sort_modal ? $this->ui->renderer()->render($this->manual_sort_modal) : '';
219 return parent::getHTML() . $modal;
220 }
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 583 of file class.ilDashboardBlockGUI.php.

583 : array
584 {
585 switch ($this->view_settings->getEffectiveSortingMode()) {
587 $data = $this->getData();
588 $data = array_merge(...array_values($data));
589 $data = $this->sortByTitle($data);
590 return ['' => $data];
592 return $this->groupItemsByStartDate();
594 return ['' => $this->sortManually($this->getData())];
596 $groups = $this->groupItemsByType();
597 ksort($groups, SORT_NATURAL);
598 return $groups;
600 default:
601 $groups = $this->groupItemsByLocation();
602 ksort($groups, SORT_NATURAL);
603 return $groups;
604 }
605 }

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 436 of file class.ilDashboardBlockGUI.php.

436 : array
437 {
438 $inputs = [];
439 foreach ($this->getItemGroups() as $key => $item_group) {
440 $options = [];
441 foreach ($item_group as $item) {
442 $icon = $this->ui->renderer()->render($this->ui->factory()->symbol()->icon()->custom(ilObject::_getIcon($item->getObjId()), ''));
443 if ($this instanceof ilMembershipBlockGUI) {
444 if ($this->rbacsystem->checkAccess('leave', $item->getRefId())) {
445 if ($item->getType() === 'crs' || $item->getType() === 'grp') {
446 $members_obj = ilParticipants::getInstance($item->getRefId());
447 if (!$members_obj->checkLastAdmin([$this->user->getId()])) {
448 continue;
449 }
450 }
451 $options[$item->getRefId()] = $icon . $item->getTitle();
452 }
453 } else {
454 $options[$item->getRefId()] = $icon . $item->getTitle();
455 }
456 }
457 if ($options !== []) {
458 $inputs[] = $this->ui->factory()->input()->field()->multiSelect((string) $key, $options)
459 ->withAdditionalTransformation($this->refinery->to()->listOf($this->refinery->kindlyTo()->int()));
460 }
461 }
462
463 return $inputs;
464 }
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, ILIAS\UI\Implementation\Component\Input\Field\$options, 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 411 of file class.ilDashboardBlockGUI.php.

411 : RoundTrip
412 {
413 $items = $this->getManageFields();
414 if ($items !== []) {
415 $modal = $this->ui->factory()->modal()->roundtrip(
416 $this->lng->txt('dash_' . $this->getBlockType() . '_remove_multiple'),
417 [
418 $this->ui->factory()->messageBox()->confirmation($this->lng->txt('dash_' . $this->getBlockType() . '_remove_info')),
419 $this->ui->factory()->messageBox()->info($this->lng->txt('select_one')),
420 ],
421 $items,
422 $this->ctrl->getLinkTargetByClass([ilDashboardGUI::class, $this::class], 'confirmedRemove')
423 )->withSubmitLabel($this->lng->txt('dash_' . $this->getBlockType() . '_remove'));
424
425 $modal = $modal->withOnLoadCode(static fn($id) => "il.Dashboard.confirmModal($id)");
426 } else {
427 $modal = $this->ui->factory()->modal()->roundtrip(
428 $this->lng->txt('dash_' . $this->getBlockType() . '_remove_multiple'),
429 $this->ui->factory()->messageBox()->info($this->lng->txt('dash_no_items_to_manage'))
430 );
431 }
432
433 return $modal;
434 }

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

+ Here is the call graph for this function:

◆ getRepositoryTitle()

ilDashboardBlockGUI::getRepositoryTitle ( )
protected

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

351 : string
352 {
353 $nd = $this->tree->getNodeData($this->tree->getRootId());
354 $title = $nd['title'];
355
356 if ($title === 'ILIAS') {
357 $title = $this->lng->txt('repository');
358 }
359
360 return $title;
361 }

References 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 539 of file class.ilDashboardBlockGUI.php.

539 : array
540 {
541 global $DIC;
542 if (!$this->manual_sort_modal) {
543 return parent::getViewControlsForPanel();
544 }
545 $show = $this->manual_sort_modal->getShowSignal();
546 $modal_signals = json_encode(['manually' => (string) $show]);
547 $url = json_encode($this->ctrl->getLinkTarget($this, 'changePDItemSorting'));
548 $signal = $this->signal_generator->create();
549 $code = fn($id) => "il.Dashboard.showModalOnSort($id, $url, '$signal', $modal_signals)";
550 $compontents = array_map(
551 fn($x) => $x instanceof Sortation ? $x->withOnSort($signal)->withAdditionalOnLoadCode($code) : $x,
552 parent::getViewControlsForPanel()
553 );
554
555 return $compontents;
556 }
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:70

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('pd');
182 $this->initViewSettings();
183 $this->view_settings->parse();
184 $this->requested_item_ref_id = (int) ($this->http->request()->getQueryParams()['item_ref_id'] ?? 0);
185 $this->initData();
186
187 $this->ctrl->setParameter($this, 'view', $this->view_settings->getView());
188 if ($this->view_settings->isTilePresentation()) {
189 $this->setPresentation(self::PRES_MAIN_LEG);
190 } else {
191 $this->setPresentation(self::PRES_SEC_LIST);
192 }
193 }
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 195 of file class.ilDashboardBlockGUI.php.

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

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 ( )
finalprotected

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)
finalprotected

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

346 : bool
347 {
348 return $this->tree->getRootId() === $refId;
349 }
$refId
Definition: xapitoken.php:56

References $refId.

◆ manually()

ilDashboardBlockGUI::manually ( )

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

494 : Ordering
495 {
496 $request = $this->http->request();
497 $columns = [
498 'title' => $this->factory->table()->column()->text('Title')
499 ];
500
501 $records = null;
502 $proc = function ($b) use (&$records) {
503 return yield from array_map(fn($x) => $b->buildOrderingRow((string) $x['id'], $x), $records);
504 };
505
506 $uri = new URI((string) $request->getUri());
507 parse_str($uri->getQuery(), $query);
508 $uri = $uri->withQuery(http_build_query(array_merge(
509 $query,
510 ['view' => $this->view_settings->getView()]
511 )));
512 $table = $this->factory->table()
513 ->ordering(new \ILIAS\Dashboard\TableData($proc), $uri, '', $columns)
514 ->withRequest($request);
515
516 $int = $this->refinery->byTrying([$this->refinery->kindlyTo()->int(), $this->refinery->always(null)]);
517
518 if ($request->getMethod() === 'POST' && $this->view_settings->getView() === $this->http->wrapper()->query()->retrieve('view', $int)) {
519 $data = $table->getData();
520 if ($data) {
521 $this->view_settings->storeActorSortingMode('manually');
522 $this->view_settings->storeActorSortingData(array_flip($data));
523 $this->ctrl->redirectByClass(ilDashboardGUI::class);
524 }
525 }
526
527 $icon_for = fn(int $obj_id) => $this->renderer->render(
528 $this->ui->factory()->symbol()->icon()->custom(ilObject::_getIcon($obj_id), '')
529 );
530
531 $records = array_map(fn($x) => [
532 'id' => $x->getRefId(),
533 'title' => $icon_for($x->getObjId()) . $x->getTitle(),
534 ], array_values($this->sortManually($this->getItemGroups())));
535
536 return $table;
537 }
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 614 of file class.ilDashboardBlockGUI.php.

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

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

+ Here is the call graph for this function:

◆ removeMultipleEnabled()

ilDashboardBlockGUI::removeMultipleEnabled ( )

Reimplemented in ilMembershipBlockGUI, ilSelectedItemsBlockGUI, ilDashboardLearningSequenceGUI, and ilDashboardRecommendedContentGUI.

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

621 : bool
622 {
623 return false;
624 }

◆ setData()

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

Reimplemented from ilBlockGUI.

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

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

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 668 of file class.ilDashboardBlockGUI.php.

668 : array
669 {
670 usort(
671 $data,
672 static fn(BlockDTO $left, BlockDTO $right): int =>
673 ($asc ? -1 : 1) *
674 (($right->getStartDate()?->get(IL_CAL_UNIX) ?? 0) - ($left->getStartDate()?->get(IL_CAL_UNIX) ?? 0))
675 );
676 return $data;
677 }
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 682 of file class.ilDashboardBlockGUI.php.

682 : array
683 {
684 usort(
685 $data,
686 static fn(BlockDTO $left, BlockDTO $right): int => strcasecmp($left->getTitle(), $right->getTitle())
687 );
688 return $data;
689 }

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 691 of file class.ilDashboardBlockGUI.php.

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

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

+ Here is the call graph for this function:

◆ viewDashboardObject()

ilDashboardBlockGUI::viewDashboardObject ( )

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

558 : void
559 {
560 $this->initAndShow();
561 }

Field Documentation

◆ $content

◆ $data

array ilDashboardBlockGUI::$data
protected

◆ $favourites_manager

readonly ilFavouritesManager ilDashboardBlockGUI::$favourites_manager
protected

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

◆ $http

readonly Services ilDashboardBlockGUI::$http
protected

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

◆ $logging

readonly 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.

◆ $obj_definition

readonly mixed ilDashboardBlockGUI::$obj_definition
protected

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

◆ $object_cache

mixed ilDashboardBlockGUI::$object_cache
protected

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

◆ $parent

string ilDashboardBlockGUI::$parent
protected

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

◆ $rbacsystem

readonly ilRbacSystem ilDashboardBlockGUI::$rbacsystem
protected

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

◆ $refinery

readonly Factory ilDashboardBlockGUI::$refinery
protected

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

readonly ilSetting ilDashboardBlockGUI::$settings
protected

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

Referenced by ilFavouritesListGUI\__construct().

◆ $signal_generator

◆ $tree

readonly ilTree ilDashboardBlockGUI::$tree
protected

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

◆ $view_settings

ilPDSelectedItemsBlockViewSettings ilDashboardBlockGUI::$view_settings
protected

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

Referenced by getViewSettings().


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