Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
n/a
0 / 0
n/a
0 / 0
CRAP
n/a
0 / 0
BackendController
n/a
0 / 0
n/a
0 / 0
5
n/a
0 / 0
 viewTagCreate
n/a
0 / 0
n/a
0 / 0
1
 viewTagList
n/a
0 / 0
n/a
0 / 0
3
 viewTagSingle
n/a
0 / 0
n/a
0 / 0
1
1<?php
2/**
3 * Jingga
4 *
5 * PHP Version 8.1
6 *
7 * @package   Modules\Tag
8 * @copyright Dennis Eichhorn
9 * @license   OMS License 2.0
10 * @version   1.0.0
11 * @link      https://jingga.app
12 */
13declare(strict_types=1);
14
15namespace Modules\Tag\Controller;
16
17use Modules\Tag\Models\TagL11nMapper;
18use Modules\Tag\Models\TagMapper;
19use phpOMS\Contract\RenderableInterface;
20use phpOMS\Message\RequestAbstract;
21use phpOMS\Message\ResponseAbstract;
22use phpOMS\Views\View;
23
24/**
25 * Calendar controller class.
26 *
27 * @package Modules\Tag
28 * @license OMS License 2.0
29 * @link    https://jingga.app
30 * @since   1.0.0
31 * @codeCoverageIgnore
32 */
33final class BackendController extends Controller
34{
35    /**
36     * Routing end-point for application behaviour.
37     *
38     * @param RequestAbstract  $request  Request
39     * @param ResponseAbstract $response Response
40     * @param array            $data     Generic data
41     *
42     * @return RenderableInterface
43     *
44     * @since 1.0.0
45     * @codeCoverageIgnore
46     */
47    public function viewTagCreate(RequestAbstract $request, ResponseAbstract $response, array $data = []) : RenderableInterface
48    {
49        $view = new View($this->app->l11nManager, $request, $response);
50
51        $view->setTemplate('/Modules/Tag/Theme/Backend/tag-create');
52        $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1007501001, $request, $response);
53
54        return $view;
55    }
56
57    /**
58     * Routing end-point for application behaviour.
59     *
60     * @param RequestAbstract  $request  Request
61     * @param ResponseAbstract $response Response
62     * @param array            $data     Generic data
63     *
64     * @return RenderableInterface
65     *
66     * @since 1.0.0
67     * @codeCoverageIgnore
68     */
69    public function viewTagList(RequestAbstract $request, ResponseAbstract $response, array $data = []) : RenderableInterface
70    {
71        $view = new View($this->app->l11nManager, $request, $response);
72
73        $view->setTemplate('/Modules/Tag/Theme/Backend/tag-list');
74        $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1007501001, $request, $response);
75
76        if ($request->getData('ptype') === 'p') {
77            $view->data['tags'] = TagMapper::getAll()
78                    ->with('title')
79                    ->where('id', $request->getDataInt('id') ?? 0, '<')
80                    ->where('title/language', $request->header->l11n->language)
81                    ->limit(25)
82                    ->execute();
83        } elseif ($request->getData('ptype') === 'n') {
84            $view->data['tags'] = TagMapper::getAll()
85                    ->with('title')
86                    ->where('id', $request->getDataInt('id') ?? 0, '>')
87                    ->where('title/language', $request->header->l11n->language)
88                    ->limit(25)
89                    ->execute();
90        } else {
91            $view->data['tags'] = TagMapper::getAll()
92                    ->with('title')
93                    ->where('id', 0, '>')
94                    ->where('title/language', $request->header->l11n->language)
95                    ->limit(25)
96                    ->execute();
97        }
98
99        return $view;
100    }
101
102    /**
103     * Routing end-point for application behaviour.
104     *
105     * @param RequestAbstract  $request  Request
106     * @param ResponseAbstract $response Response
107     * @param array            $data     Generic data
108     *
109     * @return RenderableInterface
110     *
111     * @since 1.0.0
112     * @codeCoverageIgnore
113     */
114    public function viewTagSingle(RequestAbstract $request, ResponseAbstract $response, array $data = []) : RenderableInterface
115    {
116        $view = new View($this->app->l11nManager, $request, $response);
117
118        /** @var \Modules\Tag\Models\Tag $tag */
119        $tag = TagMapper::get()
120            ->with('title')
121            ->where('id', (int) $request->getData('id'))
122            ->where('title/language', $response->header->l11n->language)
123            ->execute();
124
125        $view->setTemplate('/Modules/Tag/Theme/Backend/tag-single');
126        $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1007501001, $request, $response);
127        $view->data['tag'] = $tag;
128
129        /** @var \phpOMS\Localization\BaseStringL11n[] $l11n */
130        $l11n = TagL11nMapper::getAll()
131            ->where('ref', $tag->id)
132            ->execute();
133
134        $view->data['l11n'] = $l11n;
135
136        return $view;
137    }
138}