Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
66.67% covered (warning)
66.67%
4 / 6
33.33% covered (danger)
33.33%
1 / 3
CRAP
0.00% covered (danger)
0.00%
0 / 1
Page
66.67% covered (warning)
66.67%
4 / 6
33.33% covered (danger)
33.33%
1 / 3
5.93
0.00% covered (danger)
0.00%
0 / 1
 addL11n
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 getL11n
75.00% covered (warning)
75.00%
3 / 4
0.00% covered (danger)
0.00%
0 / 1
3.14
 getL11ns
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
1<?php
2/**
3 * Jingga
4 *
5 * PHP Version 8.1
6 *
7 * @package   Modules\CMS\Models
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\CMS\Models;
16
17use phpOMS\Localization\BaseStringL11n;
18use phpOMS\Localization\NullBaseStringL11n;
19
20/**
21 * Page class.
22 *
23 * @package Modules\CMS\Models
24 * @license OMS License 2.0
25 * @link    https://jingga.app
26 * @since   1.0.0
27 */
28class Page
29{
30    /**
31     * ID.
32     *
33     * @var int
34     * @since 1.0.0
35     */
36    public int $id = 0;
37
38    /**
39     * Page name.
40     *
41     * @var string
42     * @since 1.0.0
43     */
44    public string $name = '';
45
46    /**
47     * Page status.
48     *
49     * @var int
50     * @since 1.0.0
51     */
52    public int $status = PageStatus::ACTIVE;
53
54    /**
55     * Page localization
56     *
57     * @var BaseStringL11n[]
58     * @since 1.0.0
59     */
60    private array $l11n = [];
61
62    /**
63     * Page template.
64     *
65     * @var string
66     * @since 1.0.0
67     */
68    public string $template = '';
69
70    /**
71     * App.
72     *
73     * @var int
74     * @since 1.0.0
75     */
76    public int $app = 0;
77
78    /**
79     * Add l11n
80     *
81     * @param BaseStringL11n $l11n Page l11n
82     *
83     * @return void
84     *
85     * @since 1.0.0
86     */
87    public function addL11n(BaseStringL11n $l11n) : void
88    {
89        $this->l11n[] = $l11n;
90    }
91
92    /**
93     * Get l11n
94     *
95     * @param null|string $name Localization name
96     *
97     * @return BaseStringL11n
98     *
99     * @since 1.0.0
100     */
101    public function getL11n(string $name = null) : BaseStringL11n
102    {
103        foreach ($this->l11n as $l11n) {
104            if ($l11n->name === $name) {
105                return $l11n;
106            }
107        }
108
109        return new NullBaseStringL11n();
110    }
111
112    /**
113     * Get localizations
114     *
115     * @return BaseStringL11n[]
116     *
117     * @since 1.0.0
118     */
119    public function getL11ns() : array
120    {
121        return $this->l11n;
122    }
123}