48 $contents = $component->getContents();
51 return $this->
renderSlate($component, $contents, $default_renderer);
59 foreach ($component->getContents() as $entry) {
61 $trigger_signal = $entry->getToggleSignal();
62 $triggerer =
$f->button()->bulky($entry->getSymbol(), $entry->getName(),
'#')
63 ->withOnClick($trigger_signal)
64 ->withHelpTopics(...$entry->getHelpTopics())
67 $mb_id = $entry->getMainBarTreePosition();
69 $trigger_signal = $component->getTriggerSignal($mb_id);
70 $triggerer = $triggerer
71 ->withOnClick($trigger_signal)
72 ->withAdditionalOnLoadCode(
74 il.UI.maincontrols.mainbar.addTriggerSignal('{$trigger_signal}'); 75 il.UI.maincontrols.mainbar.addPartIdAndEntry('{$mb_id}', 'triggerer', '{$id}'); 79 $contents[] = [$triggerer, $entry];
81 $contents[] = $entry->withPersistenceId($component->getMainBarTreePosition());
94 $tpl = $this->
getTemplate(
"Slate/tpl.slate.html",
true,
true);
96 foreach ($contents as $content) {
97 $content_html = $default_renderer->render($content);
101 || is_array($content)
103 $tpl->setCurrentBlock(
"list_content_component");
104 $tpl->setVariable(
"LIST_COMPONENT_CONTENT", $content_html);
106 $tpl->setCurrentBlock(
"none_list_content_component");
107 $tpl->setVariable(
"NONE_LIST_COMPONENT_CONTENT", $content_html);
109 $tpl->parseCurrentBlock();
113 $aria_role = $component->getAriaRole();
114 if ($aria_role !=
null) {
115 $tpl->setCurrentBlock(
"with_aria_role");
116 $tpl->setVariable(
"ARIA_ROLE", $aria_role);
117 $tpl->parseCurrentBlock();
120 if ($component->getEngaged()) {
121 $tpl->touchBlock(
'engaged');
123 $tpl->touchBlock(
'disengaged');
127 'toggle' => $component->getToggleSignal(),
128 'engage' => $component->getEngageSignal(),
129 'replace' => $component->getReplaceSignal()
132 $mb_id = $component->getMainBarTreePosition();
135 $tpl->setVariable(
'TREE_DEPTH', $component->getMainBarTreeDepth());
138 $component = $component->withAdditionalOnLoadCode(
139 function (
$id) use ($slate_signals, $mb_id):
string {
141 foreach ($slate_signals as $key => $signal) {
142 $js .=
"$(document).on('{$signal}', function(event, signalData) { 143 il.UI.maincontrols.slate.onSignal('{$key}', 152 $js .=
"il.UI.maincontrols.mainbar.addPartIdAndEntry('{$mb_id}', 'slate', '{$id}');";
160 $tpl->setVariable(
'ID',
$id);
169 $contents = $component->getContents();
170 $tpl = $this->
getTemplate(
"Slate/tpl.notification.html",
true,
true);
171 $tpl->setVariable(
'NAME', $component->getName());
172 $tpl->setVariable(
'CONTENTS', $default_renderer->render($contents));
181 parent::registerResources($registry);
182 $registry->register(
'assets/js/maincontrols.min.js');
Registry for resources required by rendered output like Javascript or CSS.
Interface Observer Contains several chained tasks and infos about them.
renderNotificationSlate(ISlate\Slate $component, RendererInterface $default_renderer)
renderSlate(ISlate\Slate $component, $contents, RendererInterface $default_renderer)
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
getTemplate(string $name, bool $purge_unfilled_vars, bool $purge_unused_blocks)
Get template of component this renderer is made for.
cannotHandleComponent(Component $component)
This method MUST be called by derived component renderers, if.
render(Component\Component $component, RendererInterface $default_renderer)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
registerResources(\ILIAS\UI\Implementation\Render\ResourceRegistry $registry)
getUIFactory()
Get a UI factory.
getCombinedSlateContents(ISlate\Slate $component)
Base class for all component renderers.
bindJavaScript(JavaScriptBindable $component)
Bind the component to JavaScript.