ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
Content.php
Go to the documentation of this file.
1<?php
2
19declare(strict_types=1);
20
22
25use ILIAS\UI\Implementation\Component\ComponentHelper;
28use InvalidArgumentException;
29
34class Content implements C\Legacy\Content
35{
36 use ComponentHelper;
38
39 private string $content;
41 private array $signal_list;
42
44 {
45 $this->checkStringArg("content", $content);
46
47 $this->content = $content;
48 $this->signal_generator = $signal_generator;
49 $this->signal_list = array();
50 }
51
55 public function getContent(): string
56 {
57 return $this->content;
58 }
59
63 public function withCustomSignal(string $signal_name, string $js_code): static
64 {
65 $clone = clone $this;
66 $clone->registerSignalAndCustomCode($signal_name, $js_code);
67 return $clone;
68 }
69
73 public function getCustomSignal(string $signal_name): Signal
74 {
75 if (!key_exists($signal_name, $this->signal_list)) {
76 throw new InvalidArgumentException("Signal with name $signal_name is not registered");
77 }
78
79 return $this->signal_list[$signal_name]['signal'];
80 }
81
94 public function getAllCustomSignals(): array
95 {
96 return $this->signal_list;
97 }
98
102 private function registerSignalAndCustomCode(string $signal_name, string $js_code): void
103 {
104 $this->signal_list[$signal_name] = array(
105 'signal' => $this->signal_generator->create(),
106 'js_code' => $js_code
107 );
108 }
109}
registerSignalAndCustomCode(string $signal_name, string $js_code)
Registers new signal with its JavaScript code in the signal list.
Definition: Content.php:102
__construct(string $content, SignalGeneratorInterface $signal_generator)
Definition: Content.php:43
getAllCustomSignals()
Get a list of all registered signals and their custom JavaScript code.
Definition: Content.php:94
SignalGeneratorInterface $signal_generator
Definition: Content.php:40
withCustomSignal(string $signal_name, string $js_code)
Definition: Content.php:63
trait JavaScriptBindable
Trait for components implementing JavaScriptBindable providing standard implementation.