1<?php
2
3/* Copyright (c) 2017 Alex Killing <killing@leifos.de> Extended GPL, see docs/LICENSE */
4
5namespace ILIAS\UI\Implementation\Component\Divider;
6
7use ILIAS\UI\Implementation\Render\AbstractComponentRenderer;
8use ILIAS\UI\Renderer as RendererInterface;
9use ILIAS\UI\Component;
10
11class Renderer extends AbstractComponentRenderer
12{
13    /**
14     * @inheritdoc
15     */
16    public function render(Component\Component $component, RendererInterface $default_renderer)
17    {
18        $this->checkComponent($component);
19
20        if ($component instanceof Component\Divider\Horizontal) {
21            return $this->renderDividerHorizontal($component, $default_renderer);
22        }
23        if ($component instanceof Component\Divider\Vertical) {
24            return $this->renderDividerVertical($component, $default_renderer);
25        }
26        return "";
27    }
28
29    protected function renderDividerHorizontal(Component\Divider\Horizontal $component, RendererInterface $default_renderer)
30    {
31        $tpl = $this->getTemplate("tpl.horizontal.html", true, true);
32
33        $label = $component->getLabel();
34
35        if ($label !== null) {
36            $tpl->setCurrentBlock("label");
37            $tpl->setVariable("LABEL", $label);
38            $tpl->parseCurrentBlock();
39            $tpl->touchBlock("with_label");
40        } else {
41            $tpl->touchBlock("divider");
42        }
43
44        return $tpl->get();
45    }
46
47    protected function renderDividerVertical(Component\Divider\Vertical $component, RendererInterface $default_renderer)
48    {
49        $tpl = $this->getTemplate("tpl.vertical.html", true, true);
50
51        $tpl->touchBlock("divider");
52
53        return $tpl->get();
54    }
55
56    /**
57     * @inheritdoc
58     */
59    protected function getComponentInterfaceName()
60    {
61        return array(Component\Divider\Horizontal::class
62        ,Component\Divider\Vertical::class
63        );
64    }
65}
66