Completed
Push — develop ( f9723d...671ae6 )
by Daniel
08:23
created

member_menu::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 8
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 7
CRAP Score 1

Importance

Changes 2
Bugs 1 Features 1
Metric Value
c 2
b 1
f 1
dl 0
loc 8
ccs 7
cts 7
cp 1
rs 9.4285
cc 1
eloc 6
nc 1
nop 5
crap 1
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\sitemaker\blocks;
11
12
/**
13
 * Featured Member Block
14
 */
15
class member_menu extends \blitze\sitemaker\services\blocks\driver\block
16
{
17
	/** @var \phpbb\auth\auth */
18
	protected $auth;
19
20
	/** @var \phpbb\user */
21
	protected $user;
22
23
	/** @var \blitze\sitemaker\services\forum\data */
24
	protected $forum_data;
25
26
	/** @var string */
27
	protected $phpbb_root_path;
28
29
	/** @var string */
30
	protected $php_ext;
31
32
	/**
33
	 * Constructor
34
	 *
35
	 * @param \phpbb\auth\auth							$auth				Permission object
36
	 * @param \phpbb\user								$user				User object
37
	 * @param \blitze\sitemaker\services\forum\data		$forum_data			Forum Data object
38
	 * @param string									$phpbb_root_path	Path to the phpbb includes directory.
39
	 * @param string									$php_ext			php file extension
40
	 */
41 3
	public function __construct(\phpbb\auth\auth $auth, \phpbb\user $user, \blitze\sitemaker\services\forum\data $forum_data, $phpbb_root_path, $php_ext)
42
	{
43 3
		$this->auth = $auth;
44 3
		$this->user = $user;
45 3
		$this->forum_data = $forum_data;
46 3
		$this->phpbb_root_path = $phpbb_root_path;
47 3
		$this->php_ext = $php_ext;
48 3
	}
49
50
	/**
51
	 * {@inheritdoc}
52
	 */
53 2
	public function display(array $bdata, $edit_mode = false)
54
	{
55 2
		$content = '';
56 2
		if ($this->user->data['is_registered'])
57 2
		{
58 1
			$this->ptemplate->assign_vars(array(
59 1
				'USER_AVATAR'	=> phpbb_get_user_avatar($this->user->data),
60 1
				'USERNAME'		=> get_username_string('no_profile', $this->user->data['user_id'], $this->user->data['username'], $this->user->data['user_colour']),
61 1
				'USERNAME_FULL' => get_username_string('full', $this->user->data['user_id'], $this->user->data['username'], $this->user->data['user_colour']),
62 1
				'USER_POSTS'	=> $this->user->data['user_posts'],
63 1
				'NEW_POSTS'		=> $this->_get_new_posts_count(),
64
65 1
				'U_PROFILE'		=> append_sid($this->phpbb_root_path . 'memberlist.' . $this->php_ext, 'mode=viewprofile&amp;u=' . $this->user->data['user_id']),
66 1
				'U_SEARCH_NEW'	=> append_sid($this->phpbb_root_path . 'search.' . $this->php_ext, 'search_id=newposts'),
67 1
				'U_SEARCH_SELF'	=> append_sid($this->phpbb_root_path . 'search.' . $this->php_ext, 'search_id=egosearch'),
68 1
				'U_PRIVATE_MSG'	=> append_sid($this->phpbb_root_path . 'ucp.' . $this->php_ext, 'i=pm&amp;folder=inbox'),
69 1
				'U_LOGOUT'		=> append_sid($this->phpbb_root_path . 'ucp.' . $this->php_ext, 'mode=logout', true, $this->user->session_id),
70 1
				'U_MCP' 		=> ($this->auth->acl_get('m_')) ? append_sid($this->phpbb_root_path . 'mcp.' . $this->php_ext, false, true, $this->user->session_id) : '',
71 1
				'U_ACP'			=> ($this->auth->acl_get('a_')) ? append_sid($this->phpbb_root_path . 'adm/index.' . $this->php_ext, 'i=-blitze-sitemaker-acp-menu_module', true, $this->user->session_id) : '')
72 1
			);
73
74 1
			$content = $this->ptemplate->render_view('blitze/sitemaker', 'blocks/member_menu.html', 'member_menu_block');
75 1
		}
76
77
		return array(
78 2
			'title'		=> 'WELCOME',
79 2
			'content'	=> $content,
80 2
		);
81
	}
82
83
	/**
84
	 * @return int
85
	 */
86 1
	protected function _get_new_posts_count()
87
	{
88
		$sql_array = array(
89
			'FROM'		=> array(
90 1
				POSTS_TABLE		=> 'p',
91 1
			),
92
			'WHERE'		=> array(
93 1
				't.topic_id = p.topic_id AND p.post_time > ' . $this->user->data['user_lastvisit'],
94 1
			),
95 1
		);
96
97 1
		$this->forum_data->query(false)
98 1
			->fetch_custom($sql_array)
99 1
			->build(true, false);
100
101 1
		return (int) $this->forum_data->get_topics_count();
102
	}
103
}
104