19 declare(strict_types=1);
52 $tpl = $this->
getTemplate(
"tpl.standardpage.html",
true,
true);
54 $tpl->setVariable(
'FAVICON_PATH', $component->getFaviconPath());
57 $tpl->setVariable(
"ID",
$id);
59 if ($component->hasOverlay()) {
60 $tpl->setVariable(
'OVERLAY', $default_renderer->render($component->getOverlay()));
62 if ($component->hasMetabar()) {
63 $tpl->setVariable(
'METABAR', $default_renderer->render($component->getMetabar()));
65 if ($component->hasMainbar()) {
66 $tpl->setVariable(
'MAINBAR', $default_renderer->render($component->getMainbar()));
68 $slates_cookie =
$_COOKIE[self::COOKIE_NAME_SLATES_ENGAGED] ??
'';
69 if ($slates_cookie && json_decode($slates_cookie,
true)[
'engaged']) {
70 $tpl->touchBlock(
'slates_engaged');
73 if ($component->hasModeInfo()) {
74 $tpl->setVariable(
'MODEINFO', $default_renderer->render($component->getModeInfo()));
76 if ($component->hasSystemInfos()) {
77 $tpl->setVariable(
'SYSTEMINFOS', $default_renderer->render($component->getSystemInfos()));
80 $breadcrumbs = $component->getBreadcrumbs();
81 if ($breadcrumbs && $breadcrumbs->getItems()) {
82 $tpl->setVariable(
'BREADCRUMBS', $default_renderer->render($breadcrumbs));
85 $tpl->setVariable(
'HEADER_BREADCRUMBS', $default_renderer->render($dropdown));
87 if ($component->hasLogo()) {
88 $tpl->setVariable(
'LOGO', $default_renderer->render($component->getLogo()));
90 if ($component->hasResponsiveLogo()) {
91 $tpl->setVariable(
'RESPONSIVE_LOGO', $default_renderer->render($component->getResponsiveLogo()));
92 } elseif ($component->hasLogo()) {
93 $tpl->setVariable(
'RESPONSIVE_LOGO', $default_renderer->render($component->getLogo()));
96 $tpl->setVariable(
"TITLE", $component->getTitle());
97 $tpl->setVariable(
"SHORT_TITLE", $component->getShortTitle());
98 $tpl->setVariable(
"VIEW_TITLE", $component->getViewTitle());
99 $tpl->setVariable(
"LANGUAGE", $this->
getLangKey());
100 $tpl->setVariable(
"TEXT_DIRECTION", $component->getTextDirection());
101 $tpl->setVariable(
'CONTENT', $default_renderer->render($component->getContent()));
103 if ($component->hasFooter()) {
104 $tpl->setVariable(
'FOOTER', $default_renderer->render($component->getFooter()));
107 if ($component->getWithHeaders()) {
108 $tpl = $this->
setHeaderVars($tpl, $component->getIsUIDemo());
111 $tpl->setVariable(
'META_DATA', $this->
getDataFactory()->htmlMetadata()->collection(
112 $component->getMetaData()
123 $items = array_reverse($breadcrumbs->getItems());
124 $current = array_shift($items);
125 foreach ($items as $item) {
126 $button =
$f->button()->shy(
130 $buttons[] = $button;
132 return $f->dropdown()->standard($buttons)->withLabel($current->getLabel());
144 $il_tpl = $DIC[
"tpl"] ??
null;
152 $layout = $DIC->globalScreen()->layout();
153 foreach ($layout->meta()->getJs()->getItemsInOrderOfDelivery() as $js) {
154 $js_files[] = $js->getContent();
156 foreach ($layout->meta()->getCss()->getItemsInOrderOfDelivery() as $css) {
157 $css_files[] = [
'file' => $css->getContent(),
'media' => $css->getMedia()];
159 foreach ($layout->meta()->getInlineCss()->getItemsInOrderOfDelivery() as $inline_css) {
160 $css_inline[] = $inline_css->getContent();
162 foreach ($layout->meta()->getOnloadCode()->getItemsInOrderOfDelivery() as $on_load_code) {
163 $js_inline[] = $on_load_code->getContent();
168 $additional_js_files = [
170 'assets/js/Basic.js',
171 './assets/js/jquery.js',
172 './assets/js/jquery-migrate.min.js',
175 array_unshift($js_files, ...$additional_js_files);
177 $css_files[] = [
'file' =>
'./assets/css/delos.css'];
180 foreach ($js_files as $js_file) {
185 foreach ($css_files as $css_file) {
191 $tpl->
setVariable(
"CSS_INLINE", implode(PHP_EOL, $css_inline));
192 $tpl->
setVariable(
"OLCODE", implode(PHP_EOL, $js_inline));
202 parent::registerResources($registry);
203 $registry->
register(
'assets/js/stdpage.js');
Registry for resources required by rendered output like Javascript or CSS.
setHeaderVars(Template $tpl, bool $for_ui_demo=false)
When rendering the whole page, all resources must be included.
convertBreadcrumbsToDropdownLocator(Component\Breadcrumbs\Breadcrumbs $breadcrumbs)
renderStandardPage(Component\Layout\Page\Standard $component, RendererInterface $default_renderer)
render(Component\Component $component, RendererInterface $default_renderer)
setCurrentBlock(string $name)
Set the block to work on.
setVariable(string $name, $value)
Set a variable in the current block.
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.
const COOKIE_NAME_SLATES_ENGAGED
cannotHandleComponent(Component $component)
This method MUST be called by derived component renderers, if.
register(string $name)
Add a dependency.
parseCurrentBlock()
Parse the block that is currently worked on.
registerResources(ResourceRegistry $registry)
Announce resources this renderer requires.
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
getLangKey()
Get current language key.
getUIFactory()
Get a UI factory.
static getLocaljQueryPath()
Base class for all component renderers.
bindJavaScript(JavaScriptBindable $component)
Bind the component to JavaScript.