Passed
Push — renovate/configure ( c923d4...2c70da )
by
unknown
20:13
created

links::get_config()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 7
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 4
nc 1
nop 1
dl 0
loc 7
rs 10
c 0
b 0
f 0
1
<?php
2
3
/**
4
 *
5
 * @package sitemaker
6
 * @copyright (c) 2013 Daniel A. (blitze)
7
 * @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
8
 *
9
 */
10
11
namespace blitze\sitemaker\blocks;
12
13
use blitze\sitemaker\services\blocks\driver\block;
14
15
/**
16
 * Links Block
17
 * @package phpBB Sitemaker
18
 */
19
class links extends block
20
{
21
	/** @var \phpbb\language\language */
22
	protected $language;
23
24
	/** @var \blitze\sitemaker\services\menus\navigation */
25
	protected $navigation;
26
27
	/** @var string */
28
	protected $title = 'LINKS';
29
30
	/** @var string */
31
	protected $tpl_name = 'links';
32
33
	/** @var bool */
34
	protected $is_navigation = false;
35
36
	/**
37
	 * Constructor
38
	 *
39
	 * @param \phpbb\language\language						$language		Language object
40
	 * @param \blitze\sitemaker\services\menus\navigation	$navigation		sitemaker navigation object
41
	 */
42
	public function __construct(\phpbb\language\language $language, \blitze\sitemaker\services\menus\navigation $navigation)
43
	{
44
		$this->language = $language;
45
		$this->navigation = $navigation;
46
	}
47
48
	/**
49
	 * {@inheritdoc}
50
	 */
51
	public function get_config(array $settings)
52
	{
53
		$menu_options = $this->navigation->get_menu_options();
54
55
		return array(
56
			'legend1'       => 'SETTINGS',
57
			'menu_id'		=> array('lang' => 'MENU', 'validate' => 'int', 'type' => 'select', 'options' => $menu_options, 'default' => 0, 'explain' => false),
58
		);
59
	}
60
61
	/**
62
	 * {@inheritdoc}
63
	 */
64
	public function display(array $db_data, $editing = false)
65
	{
66
		$menu_id = $db_data['settings']['menu_id'];
67
68
		if ($data = $this->navigation->build_menu($menu_id, $this->is_navigation, $db_data['settings']))
69
		{
70
			return array(
71
				'title'		=> $this->title,
72
				'data'		=> $data,
73
			);
74
		}
75
76
		return array(
77
			'title'     => $this->title,
78
			'status'	=> (int) !$editing,
79
			'content'   => $this->get_message($menu_id, $editing),
80
		);
81
	}
82
83
	/**
84
	 * @param int $menu_id
85
	 * @param bool $editing
86
	 * @return string
87
	 */
88
	protected function get_message($menu_id, $editing)
89
	{
90
		$msg_key = '';
91
		if ($editing)
92
		{
93
			$msg_key = ($menu_id) ? 'MENU_NO_ITEMS' : 'SELECT_MENU';
94
		}
95
96
		return $this->language->lang($msg_key);
97
	}
98
99
	/**
100
	 * {@inheritdoc}
101
	 */
102
	public function get_template()
103
	{
104
		return '@blitze_sitemaker/blocks/' . $this->tpl_name . '.html';
105
	}
106
}
107