Completed
Pull Request — development (#3050)
by John
09:17
created

MenuSection   A

Complexity

Total Complexity 6

Size/Duplication

Total Lines 48
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
dl 0
loc 48
ccs 12
cts 12
cp 1
rs 10
c 0
b 0
f 0
wmc 6
lcom 1
cbo 1

3 Methods

Rating   Name   Duplication   Size   Complexity  
A buildMoreFromArray() 0 16 4
A addArea() 0 6 1
A getAreas() 0 4 1
1
<?php
2
3
/**
4
 * This class contains a standard way of displaying side/drop down menus.
5
 *
6
 * @name      ElkArte Forum
7
 * @copyright ElkArte Forum contributors
8
 * @license   BSD http://opensource.org/licenses/BSD-3-Clause
9
 *
10
 * @version   2.0 dev
11
 */
12
13
namespace ElkArte\Menu;
14
15
/**
16
 * Class MenuSection
17
 *
18
 * This class implements a standard way of creating menus
19
 *
20
 * @package ElkArte\Menu
21
 */
22
class MenuSection extends MenuItem
23
{
24
	/** @var array $areas Array of areas within this section. */
25
	private $areas = [];
26
27
	/**
28
	 * @param array $arr
29
	 *
30
	 * @return MenuSection
31
	 */
32 41
	protected function buildMoreFromArray(array $arr): MenuSection
33
	{
34 41
		if (isset($arr['title']))
35
		{
36 41
			$this->setLabel($arr['title']);
37
		}
38 41
		if (isset($arr['areas']))
39
		{
40 41
			foreach ($arr['areas'] as $var => $area)
41
			{
42 41
				$this->addArea($var, $area);
43
			}
44
		}
45
46 41
		return $this;
47
	}
48
49
	/**
50
	 * @param string   $id
51
	 * @param MenuArea $area
52
	 *
53
	 * @return $this
54
	 */
55 41
	public function addArea(string $id, MenuArea $area): MenuSection
56
	{
57 41
		$this->areas[$id] = $area;
58
59 41
		return $this;
60
	}
61
62
	/**
63
	 * @return array
64
	 */
65 39
	public function getAreas(): array
66
	{
67 39
		return $this->areas;
68
	}
69
}
70