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 
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 }
checkComponent(Component $component)
Check if a given component fits this renderer and throw if that is not the case. ...
renderSub(Component\Panel\Sub $component, RendererInterface $default_renderer)
Definition: Renderer.php:73
global $tpl
Definition: ilias.php:8
renderReport(Component\Panel\Report $component, RendererInterface $default_renderer)
Definition: Renderer.php:103
getContentAsString(Component\Component $component, RendererInterface $default_renderer)
Definition: Renderer.php:47
render(Component $component, Renderer $default_renderer)
Render the component if possible and delegate additional rendering to the default_renderer.
renderStandard(Component\Panel\Standard $component, RendererInterface $default_renderer)
Definition: Renderer.php:60
getTemplate($name, $purge_unfilled_vars, $purge_unused_blocks)
Get template of component this renderer is made for.