Completed
Push — develop ( 0c2880...71ecd6 )
by Paul
02:08
created

SiteMeta::get()   A

Complexity

Conditions 4
Paths 3

Size

Total Lines 13
Code Lines 8

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 13
rs 9.2
c 0
b 0
f 0
cc 4
eloc 8
nc 3
nop 3
1
<?php
2
3
namespace GeminiLabs\Castor\Helpers;
4
5
class SiteMeta
6
{
7
	/**
8
	 * @param string       $group
9
	 * @param false|string $key
10
	 * @param mixed        $fallback
11
	 *
12
	 * @return mixed
13
	 */
14
	public function get( $group, $key = false, $fallback = '' )
15
	{
16
		$metaKey = sprintf( '%ssettings-%s', apply_filters( 'castor/sitemeta/prefix', 'pollux_' ), $group );
17
		$options = get_option( $metaKey, false );
18
19
		if( !$options || !is_array( $options )) {
20
			return $fallback;
21
		}
22
23
		return is_string( $key )
24
			? $this->normalize( $options, $key, $fallback )
25
			: $options;
26
	}
27
28
	/**
29
	 * @param string $key
30
	 * @param mixed  $fallback
31
	 *
32
	 * @return mixed
33
	 */
34
	protected function normalize( array $options, $key, $fallback )
35
	{
36
		if( !array_key_exists( $key, $options )) {
37
			return $fallback;
38
		}
39
40
		$option = $options[$key];
41
42
		$option = is_array( $option )
43
			? array_filter( $option )
44
			: trim( $option );
45
46
		return empty( $option )
47
			? $fallback
48
			: $option;
49
	}
50
}
51