Passed
Push — develop ( b3eda6...9f2d35 )
by Daniel
03:59 queued 40s
created

members::get_template()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
cc 1
eloc 1
nc 1
nop 0
dl 0
loc 3
ccs 0
cts 0
cp 0
crap 2
rs 10
c 0
b 0
f 0
1
<?php
2
3
/**
4
 *
5
 * @package sitemaker
6
 * @copyright (c) 2013 Daniel A. (blitze)
7
 * @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
8
 *
9
 */
10
11
namespace blitze\sitemaker\blocks;
12
13
use blitze\sitemaker\services\blocks\driver\block;
14
15
/**
16
 * Members Block
17
 */
18
class members extends block
19
{
20
	/** @var \phpbb\language\language */
21
	protected $translator;
22
23
	/** @var \phpbb\user */
24
	protected $user;
25
26
	/** @var \blitze\sitemaker\services\members */
27
	private $members;
28
29
	/** @var array */
30
	private $query_type_options;
31
32
	/** @var array */
33
	private $range_options;
34
35
	/**
36
	 * Constructor
37
	 *
38
	 * @param \phpbb\language\language				$translator		Language Object
39
	 * @param \phpbb\user							$user			User object
40
	 * @param \blitze\sitemaker\services\members	$members		Members object
41 6
	 */
42
	public function __construct(\phpbb\language\language $translator, \phpbb\user $user, \blitze\sitemaker\services\members $members)
43 6
	{
44 6
		$this->translator = $translator;
45 6
		$this->user = $user;
46
		$this->members = $members;
47 6
48 6
		$this->query_type_options = array(
49 6
			'visits'	=> 'LAST_VISITED',
50 6
			'bots'		=> 'RECENT_BOTS',
51 6
			'recent'	=> 'RECENT_MEMBERS',
52 6
			'tenured'	=> 'MOST_TENURED',
53
			'posts'		=> 'TOP_POSTERS',
54
		);
55 6
56 6
		$this->range_options = array(
57 6
			''		=> 'ALL_TIME',
58 6
			'today'	=> 'TODAY',
59 6
			'week'	=> 'THIS_WEEK',
60 6
			'month'	=> 'THIS_MONTH',
61
			'year'	=> 'THIS_YEAR',
62 6
		);
63
	}
64
65
	/**
66
	 * {@inheritdoc}
67 1
	 */
68
	public function get_config(array $settings)
69
	{
70 1
		return array(
71 1
			'legend1'		=> 'SETTINGS',
72 1
			'query_type'	=> array('lang' => 'QUERY_TYPE', 'validate' => 'string', 'type' => 'select', 'options' => $this->query_type_options, 'default' => 'recent', 'explain' => false),
73 1
			'date_range'	=> array('lang' => 'DATE_RANGE', 'validate' => 'string', 'type' => 'select', 'options' => $this->range_options, 'default' => '', 'explain' => false),
74 1
			'max_members'	=> array('lang' => 'MAX_MEMBERS', 'validate' => 'int:0', 'type' => 'number:0', 'maxlength' => 2, 'explain' => false, 'default' => 5),
75
		);
76
	}
77
78
	/**
79
	 * {@inheritdoc}
80 5
	 */
81
	public function display(array $bdata, $edit_mode = false)
82 5
	{
83
		$bdata['settings']['range'] = ($bdata['settings']['query_type'] != 'tenured') ? $bdata['settings']['date_range'] : '';
84 5
85
		$data = $this->members->get_list($bdata['settings']);
86
87 5
		$data['RANGE'] = $this->translator->lang($this->range_options[$bdata['settings']['range']]);
88 5
89 5
		if (empty($data['MEMBERS']))
90
		{
91
			$data = [];
92
		}
93
94
		return array(
95
			'title'	=> $this->query_type_options[$bdata['settings']['query_type']],
96
			'data'	=> $data,
97
		);
98
	}
99
100
	/**
101
	 * {@inheritdoc}
102
	 */
103
	public function get_template()
104
	{
105
		return '@blitze_sitemaker/blocks/members.html';
106
	}
107
}
108