Passed
Push — release-3.2.0 ( 24bcfb...4d8cca )
by Daniel
04:25
created

radio::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 1
nc 1
nop 1
dl 0
loc 3
rs 10
c 0
b 0
f 0
1
<?php
2
/**
3
 *
4
 * @package sitemaker
5
 * @copyright (c) 2019 Daniel A. (blitze)
6
 * @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
7
 *
8
 */
9
10
namespace blitze\sitemaker\services\blocks\config\fields;
11
12
use blitze\sitemaker\services\blocks\config\cfg_utils;
13
14
/**
15
 * @package sitemaker
16
 */
17
class radio implements cfg_field_interface
18
{
19
	/** @var \phpbb\language\language */
20
	protected $translator;
21
22
	/**
23
	 * Constructor
24
	 *
25
	 * @param \phpbb\language\language	$translator		Language object
26
	 */
27
	public function __construct(\phpbb\language\language $translator)
28
	{
29
		$this->translator = $translator;
30
	}
31
32
	/**
33
	 * @inheritdoc
34
	 */
35
	public function get_name()
36
	{
37
		return 'radio';
38
	}
39
40
	/**
41
	 * {@inheritdoc}
42
	 */
43
	public function prep_field(array &$vars, array &$type, $field, array $db_settings)
44
	{
45
		if (!isset($type[1]))
46
		{
47
			$vars['method'] = 'build_radio';
48
			$vars['params'][] = $field;
49
			$type[0] = 'custom';
50
		}
51
	}
52
53
	/**
54
	 * Build radio buttons other than yes_no/enable_disable in blocks config
55
	 *
56
	 * @param array $option_ary
57
	 * @param mixed $selected_item
58
	 * @param string $key
59
	 * @return string
60
	 */
61
	public function build_radio(array $option_ary, $selected_item, $key)
62
	{
63
		$selected_item = (is_array($selected_item)) ? $selected_item : array($selected_item);
64
65
		$html = '';
66
		foreach ($option_ary as $value => $title)
67
		{
68
			$selected = cfg_utils::get_selected_option($value, $selected_item, 'checked');
69
			$html .= '<label><input type="radio" name="config[' . $key . ']" value="' . $value . '"' . $selected . ' class="radio" /> ' . $this->translator->lang($title) . '</label><br />';
70
		}
71
72
		return $html;
73
	}
74
}
75