BasePresenter   A
last analyzed

Complexity

Total Complexity 6

Size/Duplication

Total Lines 32
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Importance

Changes 0
Metric Value
dl 0
loc 32
c 0
b 0
f 0
wmc 6
lcom 1
cbo 1
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
B getChildMenuItems() 0 22 6
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Rinvex\Menus\Presenters;
6
7
use Rinvex\Menus\Models\MenuItem;
8
use Rinvex\Menus\Contracts\PresenterContract;
9
10
abstract class BasePresenter implements PresenterContract
11
{
12
    /**
13
     * Get child menu items.
14
     *
15
     * @param \Rinvex\Menus\Models\MenuItem $item
16
     *
17
     * @return string
18
     */
19
    public function getChildMenuItems(MenuItem $item): string
20
    {
21
        $results = '';
22
23
        foreach ($item->getChilds() as $child) {
24
            if ($child->isHidden()) {
25
                continue;
26
            }
27
28
            if ($child->hasChilds()) {
29
                $results .= $this->getMultiLevelDropdownWrapper($child);
30
            } elseif ($child->isHeader()) {
31
                $results .= $this->getHeaderWrapper($child);
32
            } elseif ($child->isDivider()) {
33
                $results .= $this->getDividerWrapper();
34
            } else {
35
                $results .= $this->getMenuWithoutDropdownWrapper($child);
36
            }
37
        }
38
39
        return $results;
40
    }
41
}
42