ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
Renderer.php
Go to the documentation of this file.
1<?php
2
19declare(strict_types=1);
20
22
26use ILIAS\UI\Renderer as RendererInterface;
28
30{
34 public function render(Component\Component $component, RendererInterface $default_renderer): string
35 {
36 if ($component instanceof Component\Prompt\Prompt) {
37 return $this->renderPrompt($component, $default_renderer);
38 }
39
40 $this->cannotHandleComponent($component);
41 }
42
46 public function registerResources(ResourceRegistry $registry): void
47 {
48 parent::registerResources($registry);
49 $registry->register('assets/js/prompt.min.js');
50 }
51
52 protected function renderPrompt(Component\Prompt\Prompt $component, RendererInterface $default_renderer): string
53 {
54 $tpl = $this->getTemplate('tpl.prompt.html', true, true);
55 $show_signal = $component->getShowSignal();
56 $close_signal = $component->getCloseSignal();
57 $url = $component->getAsyncUrl()->__toString();
58 $component = $component->withAdditionalOnLoadCode(
59 fn($id) => "
60 il.UI.prompt.init('$id');
61 $(document).on('$show_signal', (e, data) => {il.UI.prompt.get('$id').show(data.options.url);})
62 $(document).on('$close_signal', () => {il.UI.prompt.get('$id').close();})
63 "
64 );
65 $id = $this->bindJavaScript($component);
66
67 $tpl->setVariable('ID', $id);
68 $tpl->setVariable('CLOSE_LABEL', $this->txt('close'));
69
70 return $tpl->get();
71 }
72
73}
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
Definition: plugin.php:23
renderPrompt(Component\Prompt\Prompt $component, RendererInterface $default_renderer)
Definition: Renderer.php:52
render(Component\Component $component, RendererInterface $default_renderer)
Definition: Renderer.php:34
registerResources(ResourceRegistry $registry)
Announce resources this renderer requires.
Definition: Renderer.php:46
cannotHandleComponent(Component $component)
This method MUST be called by derived component renderers, if.
bindJavaScript(JavaScriptBindable $component)
Bind the component to JavaScript.
getTemplate(string $name, bool $purge_unfilled_vars, bool $purge_unused_blocks)
Get template of component this renderer is made for.
Registry for resources required by rendered output like Javascript or CSS.
register(string $name)
Add a dependency.
Interface to templating as it is used in the UI framework.
Definition: Template.php:29
An entity that renders components to a string output.
Definition: Renderer.php:31
$url
Definition: shib_logout.php:68