Completed
Push — master ( ad675b...6d8a17 )
by Daryl
01:37
created

Map_View::_make_markers_args()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 15
Code Lines 8

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 8
CRAP Score 2

Importance

Changes 0
Metric Value
dl 0
loc 15
ccs 8
cts 8
cp 1
rs 9.4285
c 0
b 0
f 0
cc 2
eloc 8
nc 2
nop 0
crap 2
1
<?php
2
3
namespace Clubdeuce\WPGoogleMaps;
4
5
/**
6
 * Class Map_View
7
 * @package Clubdeuce\WPGoogleMaps
8
 */
9
class Map_View {
10
11
	/**
12
	 * @var Map
13
	 */
14
	protected $_model;
15
16
	/**
17
	 * Map_View constructor.
18
	 *
19
	 * @param Map $model
20
	 */
21 3
	public function __construct( $model ) {
22
		
23 3
		$this->_model = $model;
24
		
25 3
	}
26
27
	/**
28
	 * @param array $args
29
	 */
30 1
	public function the_map( $args = array() ) { 
31
		
32 1
		$args = wp_parse_args( $args, array(
33 1
			'template' => Google_Maps::source_dir() . '/templates/map-view.php',
34
		) );
35
36 1
		require $args['template'];
37
		
38 1
	}
39
	
40
	/**
41
	 * @return array
42
	 */
43 1
	protected function _make_markers_args() {
44
45 1
		$marker_args = array();
46
47 1
		foreach ( $this->_model->markers() as $marker ) {
48 1
			$marker_args[] = array(
49 1
				'position'  => $marker->position(),
50 1
				'title'     => $marker->title(),
51 1
				'label'     => self::_make_label_args( $marker->label() ),
52
			);
53
		}
54
55 1
		return array_filter( $marker_args );
56
57
	}
58
59
	/**
60
	 * @param  Marker_Label $label
61
	 *
62
	 * @return array
63
	 */
64 1
	protected function _make_label_args( $label ) {
65
66 1
		$args = array();
67
68 1
		if ( ! empty( $label->text() ) ) {
69
			$args = array(
70 1
				'color'      => $label->color(),
71 1
				'fontFamily' => $label->font_family(),
72 1
				'fontSize'   => $label->font_size(),
73 1
				'fontWeight' => $label->font_weight(),
74 1
				'text'       => $label->text(),
75
			);
76
		}
77
78 1
		return $args;
79
80
	}
81
82
	/**
83
	 * @return array
84
	 */
85 1
	protected function _make_info_windows() {
86
87 1
		$windows = array();
88
89
		/**
90
		 * @var Marker $marker
91
		 */
92 1
		foreach( $this->_model->markers() as $marker ) {
93 1
			$info_window = $marker->info_window();
94 1
			$windows[]   = array(
95 1
				'content'      => $info_window->content(),
96 1
				'pixel_offset' => $info_window->pixel_offset(),
97 1
				'position'     => $info_window->position(),
98 1
				'max_width'    => $info_window->max_width(),
99
			);
100
		}
101
102 1
		return $windows;
103
104
	}
105
	
106
}