ILIAS  trunk Revision v12.0_alpha-1221-g4e438232683
TableContent.php
Go to the documentation of this file.
1<?php
2
19declare(strict_types=1);
20
22
23use Generator;
32
34{
35 public function __construct(
36 protected Actions $actions,
37 protected TableFactory $table_factory
38 ) {
39 }
40
44 public function content(
45 PathInterface $base_path,
47 ElementInterface ...$elements
48 ): Generator {
49 yield from $this->createModalAndButton(
50 $base_path,
51 $request,
52 ...$elements
53 );
54 $builder = $this->table_factory->table();
55 foreach ($elements as $element) {
56 if ($element->isScaffold()) {
57 continue;
58 }
59 $update_modal = $this->actions->getModal()->update(
60 $base_path,
61 $element,
62 $request
63 );
64 $delete_modal = $this->actions->getModal()->delete(
65 $base_path,
66 $element,
67 true
68 );
69 $builder = $builder->withAdditionalRow(
70 $element,
71 $update_modal->getFlexibleSignal(),
72 $delete_modal?->getFlexibleSignal()
73 );
74 yield ContentType::MODAL => $update_modal;
75 if (isset($delete_modal)) {
76 yield ContentType::MODAL => $delete_modal;
77 }
78 }
79 yield ContentType::MAIN => $builder->get();
80 }
81
85 protected function createModalAndButton(
86 PathInterface $base_path,
88 ElementInterface ...$elements
89 ): Generator {
90 foreach ($elements as $element) {
91 if (!$element->isScaffold()) {
92 continue;
93 }
94 $modal = $this->actions->getModal()->create(
95 $base_path,
96 $element,
97 $request
98 );
99 $button = $this->actions->getButton()->create(
100 $modal->getFlexibleSignal(),
101 $element
102 );
103 yield ContentType::MODAL => $modal;
104 yield ContentType::TOOLBAR => $button;
105 }
106 }
107}
createModalAndButton(PathInterface $base_path, ?RequestForFormInterface $request, ElementInterface ... $elements)
content(PathInterface $base_path, ?RequestForFormInterface $request, ElementInterface ... $elements)
__construct(protected Actions $actions, protected TableFactory $table_factory)
This describes commonalities between standard and primary buttons.
Definition: Button.php:34