Completed
Pull Request — master (#610)
by Diego
03:20
created

MenuItemHelper::isNavbarLeftItem()   A

Complexity

Conditions 3
Paths 3

Size

Total Lines 6

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 4
CRAP Score 3

Importance

Changes 0
Metric Value
dl 0
loc 6
ccs 4
cts 4
cp 1
rs 10
c 0
b 0
f 0
cc 3
nc 3
nop 1
crap 3
1
<?php
2
3
namespace JeroenNoten\LaravelAdminLte\Helpers;
4
5
class MenuItemHelper
6
{
7
    /**
8
     * Check if a menu item is a header.
9
     *
10
     * @param mixed $item
11
     * @return bool
12
     */
13 4
    public static function isHeader($item)
14
    {
15 4
        return is_string($item) || isset($item['header']);
16
    }
17
18
    /**
19
     * Check if a menu item is a link.
20
     *
21
     * @param mixed $item
22
     * @return bool
23
     */
24 4
    public static function isLink($item)
25
    {
26 4
        return isset($item['text']) &&
27 4
               (isset($item['url']) || isset($item['route']));
28
    }
29
30
    /**
31
     * Check if a menu item is a search bar.
32
     *
33
     * @param mixed $item
34
     * @return bool
35
     */
36 4
    public static function isSearchBar($item)
37
    {
38 4
        return isset($item['text']) &&
39 4
               isset($item['search']) &&
40 4
               $item['search'];
41
    }
42
43
    /**
44
     * Check if a menu item is a submenu.
45
     *
46
     * @param mixed $item
47
     * @return bool
48
     */
49 4
    public static function isSubmenu($item)
50
    {
51 4
        return isset($item['text']) &&
52 4
               isset($item['submenu']) &&
53 4
               is_array($item['submenu']);
54
    }
55
56
    /**
57
     * Check if a menu item is valid for the sidebar section.
58
     *
59
     * @param mixed $item
60
     * @return bool
61
     */
62 4
    public static function isValidSidebarItem($item)
63
    {
64 4
        return self::isHeader($item) ||
65 4
               self::isSearchBar($item) ||
66 4
               self::isSubmenu($item) ||
67 4
               self::isLink($item);
68
    }
69
70
    /**
71
     * Check if a menu item is valid for the navbar section.
72
     *
73
     * @param mixed $item
74
     * @return bool
75
     */
76 4
    public static function isValidNavbarItem($item)
77
    {
78 4
        return self::isValidSidebarItem($item) && ! self::isHeader($item);
79
    }
80
81
    /**
82
     * Check if a menu item belongs to the left section of the navbar.
83
     *
84
     * @param mixed $item
85
     * @return bool
86
     */
87 2
    public static function isNavbarLeftItem($item)
88
    {
89 2
        return self::isValidNavbarItem($item) &&
90 2
               isset($item['topnav']) &&
91 2
               $item['topnav'];
92
    }
93
94
    /**
95
     * Check if a menu item belongs to the right section of the navbar.
96
     *
97
     * @param mixed $item
98
     * @return bool
99
     */
100 3
    public static function isNavbarRightItem($item)
101
    {
102 3
        return self::isValidNavbarItem($item) &&
103 3
               isset($item['topnav_right']) &&
104 3
               $item['topnav_right'];
105
    }
106
107
    /**
108
     * Check if a menu item belongs to the user menu section of the navbar.
109
     *
110
     * @param mixed $item
111
     * @return bool
112
     */
113 3
    public static function isNavbarUserItem($item)
114
    {
115 3
        return self::isValidNavbarItem($item) &&
116 3
               isset($item['topnav_user']) &&
117 3
               $item['topnav_user'];
118
    }
119
120
    /**
121
     * Check if a menu item belongs to the sidebar.
122
     *
123
     * @param mixed $item
124
     * @return bool
125
     */
126 2
    public static function isSidebarItem($item)
127
    {
128 2
        return self::isValidSidebarItem($item) &&
129 2
               ! self::isNavbarLeftItem($item) &&
130 2
               ! self::isNavbarRightItem($item) &&
131 2
               ! self::isNavbarUserItem($item);
132
    }
133
}
134