19declare(strict_types=1);
42 } elseif ($component instanceof
Mail) {
51 RendererInterface $default_renderer
55 $tpl->setVariable(
'FAVICON_PATH', $component->getFaviconPath());
58 $tpl->setVariable(
"ID",
$id);
60 if ($component->hasOverlay()) {
61 $tpl->setVariable(
'OVERLAY', $default_renderer->render($component->getOverlay()));
63 if ($component->hasMetabar()) {
64 $tpl->setVariable(
'METABAR', $default_renderer->render($component->getMetabar()));
66 if ($component->hasMainbar()) {
67 $tpl->setVariable(
'MAINBAR', $default_renderer->render($component->getMainbar()));
70 if ($slates_cookie && json_decode($slates_cookie,
true)[
'engaged']) {
71 $tpl->touchBlock(
'slates_engaged');
74 if ($component->hasModeInfo()) {
75 $tpl->setVariable(
'MODEINFO', $default_renderer->render($component->getModeInfo()));
77 if ($component->hasSystemInfos()) {
78 $tpl->setVariable(
'SYSTEMINFOS', $default_renderer->render($component->getSystemInfos()));
81 $breadcrumbs = $component->getBreadcrumbs();
82 if ($breadcrumbs && $breadcrumbs->getItems()) {
83 $tpl->setVariable(
'BREADCRUMBS', $default_renderer->render($breadcrumbs));
86 $tpl->setVariable(
'HEADER_BREADCRUMBS', $default_renderer->render($dropdown));
88 if ($component->hasLogo()) {
89 $tpl->setVariable(
'LOGO', $default_renderer->render($component->getLogo()));
91 if ($component->hasResponsiveLogo()) {
92 $tpl->setVariable(
'RESPONSIVE_LOGO', $default_renderer->render($component->getResponsiveLogo()));
93 } elseif ($component->hasLogo()) {
94 $tpl->setVariable(
'RESPONSIVE_LOGO', $default_renderer->render($component->getLogo()));
97 $tpl->setVariable(
"TITLE", $component->getTitle());
98 $tpl->setVariable(
"SHORT_TITLE", $component->getShortTitle());
99 $tpl->setVariable(
"VIEW_TITLE", $component->getViewTitle());
100 $tpl->setVariable(
"LANGUAGE", $this->
getLangKey());
101 $tpl->setVariable(
"TEXT_DIRECTION", $component->getTextDirection());
102 $tpl->setVariable(
'CONTENT', $default_renderer->render($component->getContent()));
104 if ($component->hasFooter()) {
105 $tpl->setVariable(
'FOOTER', $default_renderer->render($component->getFooter()));
108 if ($component->getWithHeaders()) {
109 $tpl = $this->
setHeaderVars($tpl, $component->getIsUIDemo());
112 $tpl->setVariable(
'META_DATA', $this->
getDataFactory()->htmlMetadata()->collection(
113 $component->getMetaData()
121 RendererInterface $default_renderer
124 $tpl = $this->getTemplate(
'tpl.mailpage.html',
true,
true);
126 $tpl->setVariable(
'LOGO_SRC', $component->getLogoURL());
127 $tpl->setVariable(
'INSTALLATION_TITLE', $component->getInstallationTitle());
128 $tpl->setVariable(
'CONTENT', $default_renderer->render($component->
getContent()));
129 $tpl->setVariable(
'FOOTER_URL', $default_renderer->render($this->getUIFactory()->link()->standard($component->getFooterURL()->getLabel(), $component->getFooterURL()->getURL()->getBaseURI())));
130 $tpl->setVariable(
'CSS_CONTENT', file_get_contents($component->getStyleSheetPath()) ?:
'');
138 $f = $this->getUIFactory();
140 $items = array_reverse($breadcrumbs->getItems());
141 $current = array_shift($items);
142 foreach ($items as $item) {
143 $button =
$f->button()->shy(
147 $buttons[] = $button;
149 return $f->dropdown()->standard($buttons)->withLabel($current->getLabel());
161 $il_tpl =
$DIC[
"tpl"] ??
null;
169 $layout =
$DIC->globalScreen()->layout();
170 foreach ($layout->meta()->getJs()->getItemsInOrderOfDelivery() as $js) {
171 $js_files[] = $js->getContent();
173 foreach ($layout->meta()->getCss()->getItemsInOrderOfDelivery() as $css) {
174 $css_files[] = [
'file' => $css->getContent(),
'media' => $css->getMedia()];
176 foreach ($layout->meta()->getInlineCss()->getItemsInOrderOfDelivery() as $inline_css) {
177 $css_inline[] = $inline_css->getContent();
179 foreach ($layout->meta()->getOnloadCode()->getItemsInOrderOfDelivery() as $on_load_code) {
180 $js_inline[] = $on_load_code->getContent();
185 $additional_js_files = [
187 'assets/js/Basic.js',
188 './assets/js/jquery.js',
189 './assets/js/jquery-migrate.min.js',
192 array_unshift($js_files, ...$additional_js_files);
194 $css_files[] = [
'file' =>
'./assets/css/delos.css'];
197 foreach ($js_files as $js_file) {
202 foreach ($css_files as $css_file) {
208 $tpl->
setVariable(
"CSS_INLINE", implode(PHP_EOL, $css_inline));
209 $tpl->
setVariable(
"OLCODE", implode(PHP_EOL, $js_inline));
219 parent::registerResources($registry);
220 $registry->
register(
'assets/js/stdpage.js');
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
setHeaderVars(Template $tpl, bool $for_ui_demo=false)
When rendering the whole page, all resources must be included.
convertBreadcrumbsToDropdownLocator(Component\Breadcrumbs\Breadcrumbs $breadcrumbs)
render(Component\Component $component, RendererInterface $default_renderer)
const string COOKIE_NAME_SLATES_ENGAGED
renderStandardPage(Component\Layout\Page\Standard $component, RendererInterface $default_renderer)
renderMailPage(Mail $component, RendererInterface $default_renderer)
registerResources(ResourceRegistry $registry)
Announce resources this renderer requires.
Base class for all component renderers.
cannotHandleComponent(Component $component)
This method MUST be called by derived component renderers, if.
bindJavaScript(JavaScriptBindable $component)
Bind the component to JavaScript.
getLangKey()
Get current language key.
getTemplate(string $name, bool $purge_unfilled_vars, bool $purge_unused_blocks)
Get template of component this renderer is made for.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static getLocaljQueryPath()
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.
setVariable(string $name, $value)
Set a variable in the current block.
setCurrentBlock(string $name)
Set the block to work on.
parseCurrentBlock()
Parse the block that is currently worked on.
An entity that renders components to a string output.
RFC 822 Email address list validation Utility.