Argon::getCloseTagWrapper()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 2
c 1
b 0
f 0
nc 1
nop 0
dl 0
loc 5
rs 10
1
<?php
2
3
namespace Spinzar\Menu\Presenters\Admin;
4
5
use Spinzar\Menu\Presenters\Presenter;
6
use Illuminate\Support\Str;
7
8
class Argon extends Presenter
9
{
10
    /**
11
     * {@inheritdoc }.
12
     */
13
    public function getOpenTagWrapper()
14
    {
15
        return PHP_EOL . '<div class="navbar-inner">
16
            <!-- Collapse -->
17
            <div class="collapse navbar-collapse" id="sidenav-collapse-main">
18
                <!-- Nav items -->
19
                <ul class="navbar-nav">' . PHP_EOL;
20
    }
21
22
    /**
23
     * {@inheritdoc }.
24
     */
25
    public function getCloseTagWrapper()
26
    {
27
        return PHP_EOL . '</ul>
28
            </div>
29
        </div>' . PHP_EOL;
30
    }
31
32
    /**
33
     * {@inheritdoc }.
34
     */
35
    public function getMenuWithoutDropdownWrapper($item)
36
    {
37
        $html = '<li class="nav-item">';
38
        $html .= '  <a class="nav-link' . $this->getActiveState($item) . '" href="' . $item->getUrl() . '" ' . $item->getAttributes() . '>';
39
        $html .=      $item->getIcon();
40
        $html .= '    <span class="nav-link-text">' . $item->title . '</span>';
41
        $html .= '  </a>';
42
        $html .= '</li>' . PHP_EOL;
43
44
        return $html;
45
    }
46
47
    /**
48
     * {@inheritdoc }.
49
     */
50
    public function getActiveState($item, $state = ' active')
51
    {
52
        return $item->isActive() ? $state : '';
53
    }
54
55
    /**
56
     * Get active state on child items.
57
     *
58
     * @param $item
59
     * @param string $state
60
     *
61
     * @return null|string
62
     */
63
    public function getActiveStateOnChild($item, $state = ' active show')
64
    {
65
        return $item->hasActiveOnChild() ? $state : null;
66
    }
67
68
    /**
69
     * Get active state on child items.
70
     *
71
     * @param $item
72
     * @param string $state
73
     *
74
     * @return null|string
75
     */
76
    public function getShowStateOnChild($item, $state = ' show')
77
    {
78
        return $item->hasActiveOnChild() ? $state : null;
79
    }
80
81
    /**
82
     * {@inheritdoc }.
83
     */
84
    public function getDividerWrapper()
85
    {
86
        return '<hr class="my-3">';
87
    }
88
89
    /**
90
     * {@inheritdoc }.
91
     */
92
    public function getHeaderWrapper($item)
93
    {
94
        return '<h6 class="navbar-heading p-0 text-muted">' . $item->title . '</h6>';
95
    }
96
97
    /**
98
     * {@inheritdoc }.
99
     */
100
    public function getMenuWithDropDownWrapper($item)
101
    {
102
        $id = Str::slug($item->title);
103
104
        return '<li class="nav-item">
105
    <a class="nav-link' . $this->getActiveStateOnChild($item) . '" href="#navbar-' . $id . '" data-toggle="collapse" role="button" aria-expanded="false" aria-controls="navbar-' . $id . '">
106
        ' . $item->getIcon() . '
107
        <span class="nav-link-text">' . $item->title . '</span>
108
    </a>
109
    <div class="collapse' . $this->getShowStateOnChild($item) . '" id="navbar-' . $id . '">
110
        <ul class="nav nav-sm flex-column">
111
            ' . $this->getChildMenuItems($item) . '
112
        </ul>
113
    </div>
114
</li>'
115
        . PHP_EOL;
116
    }
117
118
    /**
119
     * Get multilevel menu wrapper.
120
     *
121
     * @param \Spinzar\Menu\MenuItem $item
122
     *
123
     * @return string`
0 ignored issues
show
Documentation Bug introduced by
The doc comment string` at position 0 could not be parsed: Unknown type name 'string`' at position 0 in string`.
Loading history...
124
     */
125
    public function getMultiLevelDropdownWrapper($item)
126
    {
127
        $id = Str::slug($item->title);
128
129
        return '<li class="nav-item">
130
    <a class="nav-link' . $this->getActiveState($item) . '" href="#navbar-' . $id . '" data-toggle="collapse" role="button" aria-expanded="false" aria-controls="navbar-' . $id . '">
131
        ' . $item->getIcon() . '
132
        <span class="nav-link-text">' . $item->title . '</span>
133
    </a>
134
    <div class="collapse' . $this->getShowStateOnChild($item) . '" id="navbar-' . $id . '">
135
        <ul class="nav nav-sm flex-column">
136
            ' . $this->getChildMenuItems($item) . '
137
        </ul>
138
    </div>
139
</li>'
140
        . PHP_EOL;
141
    }
142
}
143