ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
base.php
Go to the documentation of this file.
1<?php
2
19declare(strict_types=1);
20
22
23use ILIAS\UI\Factory as UIFactory;
29
36function base()
37{
38 global $DIC;
39 $f = $DIC->ui()->factory();
40 $renderer = $DIC->ui()->renderer();
41
42 $record_to_entity = new class () implements RecordToEntity {
43 public function map(UIFactory $ui_factory, mixed $record): Entity
44 {
45 list($abbreviation, $login, $email, $name, $last_seen, $active) = $record;
46 $avatar = $ui_factory->symbol()->avatar()->letter($abbreviation);
47 return $ui_factory->entity()->standard($name, $avatar)
49 $ui_factory->listing()->property()
50 ->withProperty('login', $login)
51 ->withProperty('mail', $email, false)
52 )
53 ->withDetails(
54 $ui_factory->listing()->property()
55 ->withItems([
56 ['last seen', $last_seen],
57 ['active', $active ? 'yes' : 'no'],
58 ])
59 );
60 }
61 };
62
63 $data = new class () implements DataRetrieval {
64 protected $data = [
65 ['jw', 'jimmywilson','jimmywilson@example.com', 'Jimmy Wilson', '2022-03-15 13:20:10', true],
66 ['eb', 'emilybrown','emilybrown@example.com','Emily Brown','2022-03-16 10:45:32', false],
67 ['ms', 'michaelscott','michaelscott@example.com','Michael Scott','2022-03-14 08:15:05', true],
68 ['kj', 'katiejones','katiejones@example.com','Katie Jones','2022-03-17 15:30:50',true]
69 ];
70
71 public function getEntities(
72 Mapping $mapping,
74 ?array $additional_parameters
75 ): \Generator {
76 foreach ($this->data as $usr) {
77 yield $mapping->map($usr);
78 }
79 }
80 };
81
82 $listing = $f->listing()->entity()->standard($record_to_entity)
83 ->withData($data);
84
85 return $renderer->render($listing);
86}
$renderer
Builds a Color from either hex- or rgb values.
Definition: Factory.php:31
A simple class to express a naive range of whole positive numbers.
Definition: Range.php:29
This describes an Entity.
Definition: Entity.php:37
withMainDetails(PropertyListing|Content ... $main_details)
Main Details should provide a quick differentiation or choice on the entity.
This is to accumulate/consolidate the data to be shown in the listing.
Hand a record over to RecordToEntity and factor an Entity.
Definition: Mapping.php:29
Listings will have to map records to Entities.
global $DIC
Definition: shib_login.php:26