ILIAS  trunk Revision v12.0_alpha-377-g3641b37b9db
class.ilLTIConsumerProviderUsageTableGUI.php
Go to the documentation of this file.
1<?php
2
19declare(strict_types=1);
20
29
39{
40 protected ilLanguage $lng;
42 protected \ILIAS\UI\Renderer $ui_renderer;
43 protected $request;
44 protected array $records;
45
46 public function __construct()
47 {
48 global $DIC;
49
50 $this->lng = $DIC->language();
51 $this->ui_factory = $DIC->ui()->factory();
52 $this->ui_renderer = $DIC->ui()->renderer();
53 $this->request = $DIC->http()->request();
54 }
55
56 public function getRows(
57 DataRowBuilder $row_builder,
58 array $visible_column_ids,
60 Order $order,
61 mixed $additional_viewcontrol_data,
62 mixed $filter_data,
63 mixed $additional_parameters
64 ): Generator {
65 global $DIC;
66
68 $static_url = $DIC["static_url"];
69
70 foreach ($this->records as $record) {
71 $record['icon'] = $record['icon'] ?? "lti";
72 $record['icon'] = $this->ui_factory->symbol()->icon()->standard($record['icon'], $record['icon'], Icon::SMALL);
73
74 $link = (string) $static_url->builder()->build(
75 ilObject::_lookupType($record['usedByObjId']),
76 new ReferenceId($record['usedByRefId'])
77 );
78
79 $record['used_by'] = $this->ui_factory->link()->standard(
80 $record['usedByTitle'],
81 $link
82 );
83
84 yield $row_builder->buildDataRow((string) $record['id'], $record);
85 }
86 }
87
88 public function getTotalRowCount(
89 mixed $additional_viewcontrol_data,
90 mixed $filter_data,
91 mixed $additional_parameters
92 ): ?int {
93 return count($this->records);
94 }
95
96 public function setData(array $data): void
97 {
98 $this->records = $data;
99 }
100
101 public function getHTML(): string
102 {
103 $table = $this->ui_factory->table()
104 ->data($this->lng->txt('tbl_provider_usage_header'), $this->getColumns(), $this)
105 ->withOrder(new Order('title', Order::ASC))
106 ->withRequest($this->request);
107
108 return $this->ui_renderer->render($table);
109 }
110
111 private function getColumns(): array
112 {
113 return [
114 "icon" => $this->ui_factory->table()->column()->statusIcon($this->lng->txt('tbl_lti_prov_icon')),
115 "title" => $this->ui_factory->table()->column()->text($this->lng->txt('tbl_lti_prov_title')),
116 "usedByIsTrashed" => $this->ui_factory->table()->column()->boolean(
117 $this->lng->txt('tbl_lti_prov_usages_trashed'),
118 $this->ui_factory->symbol()->icon()->custom('assets/images/standard/icon_ok.svg', $this->lng->txt('icon_ok'), Icon::SMALL),
119 $this->ui_factory->symbol()->icon()->custom('assets/images/standard/icon_not_ok.svg', $this->lng->txt('icon_not_ok'), Icon::SMALL)
120 ),
121 "used_by" => $this->ui_factory->table()->column()->link($this->lng->txt('tbl_lti_prov_used_by'))
122 ];
123 }
124}
Builds a Color from either hex- or rgb values.
Definition: Factory.php:31
Both the subject and the direction need to be specified when expressing an order.
Definition: Order.php:29
A simple class to express a naive range of whole positive numbers.
Definition: Range.php:29
Class Services.
Definition: Services.php:38
getTotalRowCount(mixed $additional_viewcontrol_data, mixed $filter_data, mixed $additional_parameters)
Mainly for the purpose of pagination-support, it is important to know about the total number of recor...
language handling
static _lookupType(int $id, bool $reference=false)
return['delivery_method'=> 'php',]
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
$static_url
Definition: goto.php:29
This describes how an icon could be modified during construction of UI.
Definition: Icon.php:29
getRows(DataRowBuilder $row_builder, array $visible_column_ids, Range $range, Order $order, mixed $additional_viewcontrol_data, mixed $filter_data, mixed $additional_parameters)
This is called by the table to retrieve rows; map data-records to rows using the $row_builder e....
buildDataRow(string $id, array $record)
This is how the factory for UI elements looks.
Definition: Factory.php:38
global $DIC
Definition: shib_login.php:26