ILIAS  release_7 Revision v7.30-3-g800a261c036
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
16{
20 public function render(Component\Component $component, RendererInterface $default_renderer)
21 {
25 $this->checkComponent($component);
26
27 if ($component instanceof Component\Panel\Standard) {
31 return $this->renderStandard($component, $default_renderer);
32 } elseif ($component instanceof Component\Panel\Sub) {
36 return $this->renderSub($component, $default_renderer);
37 }
41 return $this->renderReport($component, $default_renderer);
42 }
43
49 protected function getContentAsString(Component\Component $component, RendererInterface $default_renderer)
50 {
51 $content = "";
52 foreach ($component->getContent() as $item) {
53 $content .= $default_renderer->render($item);
54 }
55 return $content;
56 }
57
63 protected function renderStandard(Component\Panel\Standard $component, RendererInterface $default_renderer)
64 {
65 $tpl = $this->getTemplate("tpl.standard.html", true, true);
66
67 $view_controls = $component->getViewControls();
68 if ($view_controls) {
69 foreach ($view_controls as $view_control) {
70 $tpl->setCurrentBlock("view_controls");
71 $tpl->setVariable("VIEW_CONTROL", $default_renderer->render($view_control));
72 $tpl->parseCurrentBlock();
73 }
74 }
75
76 // actions
77 $actions = $component->getActions();
78 if ($actions !== null) {
79 $tpl->setVariable("ACTIONS", $default_renderer->render($actions));
80 }
81
82 $tpl->setVariable("TITLE", $component->getTitle());
83 $tpl->setVariable("BODY", $this->getContentAsString($component, $default_renderer));
84 return $tpl->get();
85 }
86
92 protected function renderSub(Component\Panel\Sub $component, RendererInterface $default_renderer)
93 {
94 $tpl = $this->getTemplate("tpl.sub.html", true, true);
95
96 $actions = $component->getActions();
97
98 if ($component->getTitle() != "" || $actions !== null) {
99 $tpl->setCurrentBlock("title");
100
101 // actions
102 if ($actions !== null) {
103 $tpl->setVariable("ACTIONS", $default_renderer->render($actions));
104 }
105
106 // title
107 $tpl->setVariable("TITLE", $component->getTitle());
108 $tpl->parseCurrentBlock();
109 }
110
111 if ($component->getCard()) {
112 $tpl->setCurrentBlock("with_card");
113 $tpl->setVariable("BODY", $this->getContentAsString($component, $default_renderer));
114 $tpl->setVariable("CARD", $default_renderer->render($component->getCard()));
115 $tpl->parseCurrentBlock();
116 } else {
117 $tpl->setCurrentBlock("no_card");
118 $tpl->setVariable("BODY", $this->getContentAsString($component, $default_renderer));
119 $tpl->parseCurrentBlock();
120 }
121
122 return $tpl->get();
123 }
124
130 protected function renderReport(Component\Panel\Report $component, RendererInterface $default_renderer)
131 {
132 $tpl = $this->getTemplate("tpl.report.html", true, true);
133 $tpl->setVariable("TITLE", $component->getTitle());
134 $tpl->setVariable("BODY", $this->getContentAsString($component, $default_renderer));
135 return $tpl->get();
136 }
137
141 protected function getComponentInterfaceName()
142 {
143 return [Component\Panel\Panel::class];
144 }
145}
An exception for terminatinating execution or to throw for unit testing.
renderStandard(Component\Panel\Standard $component, RendererInterface $default_renderer)
Definition: Renderer.php:63
getContentAsString(Component\Component $component, RendererInterface $default_renderer)
Definition: Renderer.php:49
renderReport(Component\Panel\Report $component, RendererInterface $default_renderer)
Definition: Renderer.php:130
renderSub(Component\Panel\Sub $component, RendererInterface $default_renderer)
Definition: Renderer.php:92
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:14
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:15
if($DIC->http() ->request() ->getMethod()=="GET" &&isset($DIC->http() ->request() ->getQueryParams()['tex'])) $tpl
Definition: latex.php:41