renderSidebarItem()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 22
Code Lines 15

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 15
dl 0
loc 22
rs 9.7666
c 1
b 0
f 0
cc 2
nc 2
nop 1
1
<?php
2
3
use Arcanesoft\Sidebar\Entities\Item;
4
5
/**
6
 * Render sidebar item.
7
 *
8
 * @param  \Arcanesoft\Sidebar\Entities\Item  $item
9
 *
10
 * @return string
11
 */
12
function renderSidebarItem(Item $item)
13
{
14
    $output   = [];
15
    $output[] = '<li class="'.trim($item->childrenClass().' '.$item->activeClass('active open')).'">';
16
17
    if ($item->hasChildren()) {
18
        $output[] = '<a href="javascript:void(0);">';
19
        $output[] = '<i class="'.$item->icon().'"></i> <span>'.$item->title().'</span> <i class="fa fa-angle-left pull-right"></i>';
20
        $output[] = '</a>';
21
        $output[] = '<ul class="treeview-menu">';
22
        $output[] = $item->children()->transform(function ($child) { return renderSidebarItem($child); })->implode(PHP_EOL);
23
        $output[] = '</ul>';
24
    }
25
    else {
26
        $output[] = '<a href="'.$item->url().'">';
27
        $output[] = '<i class="'.$item->icon().'"></i> <span>'.$item->title().'</span>';
28
        $output[] = '</a>';
29
    }
30
31
    $output[] = '</li>';
32
33
    return implode(PHP_EOL, $output);
34
}
35
36
?>
37
38
<ul class="sidebar-menu">
39
    <li class="header">{{ trans('foundation::navigation.sidebar.main-navigation') }}</li>
40
    @foreach($sidebarItems as $item)
41
        {!! renderSidebarItem($item) !!}
42
    @endforeach
43
</ul>
44