33 if (!$component instanceof ISlate\
Slate) {
45 case ($component instanceof ISlate\
Combined):
46 case ($component instanceof ISlate\
Drilldown):
51 $contents = $component->getContents();
54 return $this->
renderSlate($component, $contents, $default_renderer);
58 ISlate\
Slate $component
62 foreach ($component->getContents() as $entry) {
64 $trigger_signal = $entry->getToggleSignal();
65 $triggerer =
$f->button()->bulky($entry->getSymbol(), $entry->getName(),
'#')
66 ->withOnClick($trigger_signal)
67 ->withHelpTopics(...$entry->getHelpTopics())
70 $mb_id = $entry->getMainBarTreePosition();
72 $trigger_signal = $component->getTriggerSignal($mb_id);
73 $triggerer = $triggerer
74 ->withOnClick($trigger_signal)
75 ->withAdditionalOnLoadCode(
77 il.UI.maincontrols.mainbar.addTriggerSignal('{$trigger_signal}');
78 il.UI.maincontrols.mainbar.addPartIdAndEntry('{$mb_id}', 'triggerer', '{$id}');
82 $contents[] = [$triggerer, $entry];
83 } elseif ($component instanceof ISlate\
Drilldown) {
84 $contents[] = $entry->withPersistenceId($component->getMainBarTreePosition());
93 ISlate\
Slate $component,
95 RendererInterface $default_renderer
97 $tpl = $this->getTemplate(
"Slate/tpl.slate.html",
true,
true);
99 foreach ($contents as $content) {
100 $content_html = $default_renderer->render($content);
104 || is_array($content)
106 $tpl->setCurrentBlock(
"list_content_component");
107 $tpl->setVariable(
"LIST_COMPONENT_CONTENT", $content_html);
109 $tpl->setCurrentBlock(
"none_list_content_component");
110 $tpl->setVariable(
"NONE_LIST_COMPONENT_CONTENT", $content_html);
112 $tpl->parseCurrentBlock();
116 $aria_role = $component->getAriaRole();
117 if ($aria_role !=
null) {
118 $tpl->setCurrentBlock(
"with_aria_role");
119 $tpl->setVariable(
"ARIA_ROLE", $aria_role);
120 $tpl->parseCurrentBlock();
123 if ($component->getEngaged()) {
124 $tpl->touchBlock(
'engaged');
126 $tpl->touchBlock(
'disengaged');
130 'toggle' => $component->getToggleSignal(),
131 'engage' => $component->getEngageSignal(),
132 'replace' => $component->getReplaceSignal()
135 $mb_id = $component->getMainBarTreePosition();
138 $tpl->setVariable(
'TREE_DEPTH', $component->getMainBarTreeDepth());
141 $component = $component->withAdditionalOnLoadCode(
142 function (
$id) use ($slate_signals, $mb_id):
string {
144 foreach ($slate_signals as $key => $signal) {
145 $js .=
"$(document).on('{$signal}', function(event, signalData) {
146 il.UI.maincontrols.slate.onSignal('{$key}',
155 $js .=
"il.UI.maincontrols.mainbar.addPartIdAndEntry('{$mb_id}', 'slate', '{$id}');";
162 $id = $this->bindJavaScript($component);
163 $tpl->setVariable(
'ID',
$id);
169 ISlate\
Slate $component,
170 RendererInterface $default_renderer
172 $contents = $component->getContents();
173 $tpl = $this->getTemplate(
"Slate/tpl.notification.html",
true,
true);
174 $tpl->setVariable(
'NAME', $component->getName());
175 $tpl->setVariable(
'CONTENTS', $default_renderer->render($contents));
184 parent::registerResources($registry);
185 $registry->register(
'assets/js/maincontrols.min.js');
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
renderSlate(ISlate\Slate $component, $contents, RendererInterface $default_renderer)
getCombinedSlateContents(ISlate\Slate $component)
renderNotificationSlate(ISlate\Slate $component, RendererInterface $default_renderer)
registerResources(\ILIAS\UI\Implementation\Render\ResourceRegistry $registry)
Base class for all component renderers.
cannotHandleComponent(Component $component)
This method MUST be called by derived component renderers, if.
addTriggererOnLoadCode(Triggerer $triggerer)
Add onload-code for triggerer.
getUIFactory()
Get a UI factory.
render(Component $component, Renderer $default_renderer)
Render the component if possible and delegate additional rendering to the default_renderer.
Registry for resources required by rendered output like Javascript or CSS.
An entity that renders components to a string output.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Interface Observer \BackgroundTasks Contains several chained tasks and infos about them.