Completed
Push — develop ( 755a17...843010 )
by Daniel
07:33
created

fields_factory::exists()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 4
ccs 2
cts 2
cp 1
rs 10
c 0
b 0
f 0
cc 1
eloc 2
nc 1
nop 1
crap 1
1
<?php
2
/**
3
 *
4
 * @package sitemaker
5
 * @copyright (c) 2013 Daniel A. (blitze)
6
 * @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
7
 *
8
 */
9
10
namespace blitze\content\services\form;
11
12
class fields_factory
13
{
14
	/** @var \phpbb\language\language */
15
	protected $language;
16
17
	/** @var array */
18
	protected $fields = array();
19
20
	/**
21
	 * Constructor
22
	 *
23
	 * @param \phpbb\language\language			$language			Language object
24
	 * @param \phpbb\di\service_collection		$field_drivers		Form fields
25
	 */
26 8
	public function __construct(\phpbb\language\language $language, \phpbb\di\service_collection $field_drivers)
27
	{
28 8
		$this->language = $language;
29
30 8
		$this->register_fields($field_drivers);
31 8
	}
32
33
	/**
34
	 * Register available form fields
35
	 * @param \phpbb\di\service_collection $field_drivers
36
	 */
37 8
	protected function register_fields(\phpbb\di\service_collection $field_drivers)
38
	{
39 8
		if (!empty($field_drivers))
40 8
		{
41 8
			foreach ($field_drivers as $driver)
42
			{
43 8
				$this->fields[$driver->get_name()] = $driver;
44 8
			}
45 8
		}
46 8
	}
47
48
	/**
49
	 * @return array
50
	 */
51 3
	public function get_all()
52
	{
53 3
		return $this->fields;
54
	}
55
56
	/**
57
	 * Get field object
58
	 *
59
	 * @param string $service_name
60
	 * @return \blitze\content\services\form\field\field_interface
61
	 */
62 2
	public function get($service_name)
63
	{
64 2
		return $this->fields[$service_name];
65
	}
66
67
	/**
68
	 * Verify if field exists
69
	 *
70
	 * @param string $service_name
71
	 * @return bool
72
	 */
73 3
	public function exists($service_name)
74
	{
75 3
		return (isset($this->fields[$service_name]));
76
	}
77
78
	/**
79
	 * Get available content field options
80
	 * @return array
81
	 */
82 1
	public function get_options()
83
	{
84 1
		$fields = array();
85 1
		foreach ($this->fields as $service => $driver)
86
		{
87 1
			$fields[$service] = $this->language->lang($driver->get_langname());
88 1
		}
89
90 1
		asort($fields);
91
92 1
		return $fields;
93
	}
94
}
95