Completed
Push — develop ( 69e1c6...6a0b8a )
by Daniel
08:16
created

views_factory::get()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 9
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 6

Importance

Changes 0
Metric Value
dl 0
loc 9
ccs 0
cts 6
cp 0
rs 9.6666
c 0
b 0
f 0
cc 2
eloc 4
nc 2
nop 2
crap 6
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\views;
11
12
class views_factory
13
{
14
	/** @var \phpbb\language\language */
15
	protected $language;
16
17
	/** @var array */
18
	private $views;
19
20
	/**
21
	 * Constructor
22
	 *
23
	 * @param \phpbb\language\language				$language			Language object
24
	 * @param \phpbb\di\service_collection			$views				Service Collection
25
	 */
26 3
	public function __construct(\phpbb\language\language $language, \phpbb\di\service_collection $views)
27
	{
28 3
		$this->language = $language;
29 3
		$this->register_views($views);
30 3
	}
31
32
	/**
33
	 * Register available content views
34
	 * @param \phpbb\di\service_collection $views
35
	 */
36 3
	protected function register_views(\phpbb\di\service_collection $views)
37
	{
38 3
		$this->views = array();
39 3
		foreach ($views as $service => $driver)
40
		{
41 3
			$this->views[$service] = $driver;
42 3
		}
43 3
	}
44
45
	/**
46
	 * Get view handler
47
	 *
48
	 * @param string $service_name
49
	 * @param string $fallback
50
	 * @return \blitze\content\services\views\views_interface
51
	 */
52
	public function get($service_name, $fallback = 'blitze.content.view.portal')
53
	{
54
		if (!isset($this->views[$service_name]))
55
		{
56
			$service_name = $fallback;
57
		}
58
59
		return $this->views[$service_name];
60
	}
61
62
	/**
63
	 * Get available sitemaker content views
64
	 * @return array
65
	 */
66 2
	public function get_all_views()
67
	{
68 2
		$views = array();
69 2
		foreach ($this->views as $service => $driver)
70
		{
71 2
			$views[$service] = $this->language->lang($driver->get_langname());
72 2
		}
73
74 2
		asort($views);
75
76 2
		return $views;
77
	}
78
}
79