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

SiteMeta   A

Complexity

Total Complexity 8

Size/Duplication

Total Lines 46
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 0

Importance

Changes 0
Metric Value
wmc 8
lcom 0
cbo 0
dl 0
loc 46
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A get() 0 13 4
A normalize() 0 16 4
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