Passed
Push — master ( 9d8949...e36a68 )
by Peter
02:19
created

Ordered::build()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 8
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 4
c 1
b 0
f 0
nc 1
nop 2
dl 0
loc 8
rs 10
1
<?php
2
3
declare(strict_types=1);
4
5
namespace AbterPhp\Website\Template\Builder\ContentList;
6
7
use AbterPhp\Framework\Constant\Html5;
8
use AbterPhp\Framework\Template\Data;
9
use AbterPhp\Framework\Template\IBuilder;
10
use AbterPhp\Framework\Template\IData;
11
use AbterPhp\Framework\Template\ParsedTemplate;
12
use AbterPhp\Website\Domain\Entities\ContentList as Entity;
13
14
class Ordered implements IBuilder
15
{
16
    use ItemTrait;
17
18
    const IDENTIFIER = 'ordered-list';
19
20
    /**
21
     * @return string
22
     */
23
    public function getIdentifier(): string
24
    {
25
        return static::IDENTIFIER;
26
    }
27
28
    /**
29
     * @return string[]
30
     */
31
    public function getPartClassesByOrder(): array
32
    {
33
        return ['item-name', 'item-body', 'item-image'];
34
    }
35
36
    /**
37
     * @return string[]
38
     */
39
    public function wrapperTags(): array
40
    {
41
        return [Html5::TAG_SPAN, Html5::TAG_SPAN, Html5::TAG_SPAN];
42
    }
43
44
    /**
45
     * @SuppressWarnings(PHPMD.UnusedFormalParameter)
46
     *
47
     * @param Entity              $list
48
     * @param ParsedTemplate|null $template
49
     *
50
     * @return Data
51
     */
52
    public function build($list, ?ParsedTemplate $template = null): IData
53
    {
54
        $html = $this->buildItems($list, Html5::TAG_OL, Html5::TAG_LI);
55
56
        return new Data(
57
            $list->getIdentifier(),
58
            [],
59
            ['body' => $html]
60
        );
61
    }
62
}
63