ILIAS  release_5-2 Revision v5.2.25-18-g3f80b828510
Renderer.php
Go to the documentation of this file.
1<?php
2
3/* Copyright (c) 2016 Timon Amstutz <timon.amstutz@ilub.unibe.ch> Extended GPL, see docs/LICENSE */
4
6
8use ILIAS\UI\Renderer as RendererInterface;
10
19 public function render(Component\Component $component, RendererInterface $default_renderer) {
23 $this->checkComponent($component);
24
25 if ($component instanceof Component\Panel\Standard) {
29 return $this->renderStandard($component, $default_renderer);
30 } else if($component instanceof Component\Panel\Sub) {
34 return $this->renderSub($component, $default_renderer);
35 }
39 return $this->renderReport($component, $default_renderer);
40 }
41
47 protected function getContentAsString(Component\Component $component, RendererInterface $default_renderer){
48 $content = "";
49 foreach($component->getContent() as $item){
50 $content .= $default_renderer->render($item);
51 }
52 return $content;
53 }
54
60 protected function renderStandard(Component\Panel\Standard $component, RendererInterface $default_renderer)
61 {
62 $tpl = $this->getTemplate("tpl.standard.html", true, true);
63 $tpl->setVariable("TITLE", $component->getTitle());
64 $tpl->setVariable("BODY", $this->getContentAsString($component,$default_renderer));
65 return $tpl->get();
66 }
67
73 protected function renderSub(Component\Panel\Sub $component, RendererInterface $default_renderer)
74 {
75 $tpl = $this->getTemplate("tpl.sub.html", true, true);
76
77 if ($component->getTitle() != "")
78 {
79 $tpl->setCurrentBlock("title");
80 $tpl->setVariable("TITLE", $component->getTitle());
81 $tpl->parseCurrentBlock();
82 }
83
84 if($component->getCard()){
85 $tpl->setCurrentBlock("with_card");
86 $tpl->setVariable("BODY", $this->getContentAsString($component,$default_renderer));
87 $tpl->setVariable("CARD", $default_renderer->render($component->getCard()));
88 $tpl->parseCurrentBlock();
89 }else{
90 $tpl->setCurrentBlock("no_card");
91 $tpl->setVariable("BODY", $this->getContentAsString($component,$default_renderer));
92 $tpl->parseCurrentBlock();
93 }
94
95 return $tpl->get();
96 }
97
103 protected function renderReport(Component\Panel\Report $component, RendererInterface $default_renderer)
104 {
105 $tpl = $this->getTemplate("tpl.report.html", true, true);
106 $tpl->setVariable("TITLE", $component->getTitle());
107 $tpl->setVariable("BODY", $this->getContentAsString($component,$default_renderer));
108 return $tpl->get();
109 }
110
114 protected function getComponentInterfaceName() {
115 return [Component\Panel\Panel::class];
116 }
117}
global $tpl
Definition: ilias.php:8
An exception for terminatinating execution or to throw for unit testing.
renderStandard(Component\Panel\Standard $component, RendererInterface $default_renderer)
Definition: Renderer.php:60
getContentAsString(Component\Component $component, RendererInterface $default_renderer)
Definition: Renderer.php:47
renderReport(Component\Panel\Report $component, RendererInterface $default_renderer)
Definition: Renderer.php:103
renderSub(Component\Panel\Sub $component, RendererInterface $default_renderer)
Definition: Renderer.php:73
getTemplate($name, $purge_unfilled_vars, $purge_unused_blocks)
Get template of component this renderer is made for.
checkComponent(Component $component)
Check if a given component fits this renderer and throw \LogicError if that is not the case.
A component is the most general form of an entity in the UI.
Definition: Component.php:13
render(Component $component, Renderer $default_renderer)
Render the component if possible and delegate additional rendering to the default_renderer.
An entity that renders components to a string output.
Definition: Renderer.php:12