random_member::get_template_acp()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 7
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
cc 1
eloc 4
nc 1
nop 1
dl 0
loc 7
ccs 0
cts 7
cp 0
crap 2
rs 9.4285
c 0
b 0
f 0
1
<?php
2
/**
3
*
4
* @package Board3 Portal v2.1
5
* @copyright (c) 2013 Board3 Group ( www.board3.de )
6
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
7
*
8
*/
9
10
namespace board3\portal\modules;
11
12
/**
13
* @package Random Member
14
*/
15
class random_member extends module_base
16
{
17
	/**
18
	* Allowed columns: Just sum up your options (Exp: left + right = 10)
19
	* top		1
20
	* left		2
21
	* center	4
22
	* right		8
23
	* bottom	16
24
	*/
25
	public $columns = 10;
26
27
	/**
28
	* Default modulename
29
	*/
30
	public $name = 'PORTAL_RANDOM_MEMBER';
31
32
	/**
33
	* Default module-image:
34
	* file must be in "{T_THEME_PATH}/images/portal/"
35
	*/
36
	public $image_src = 'portal_random_member.png';
37
38
	/**
39
	* module-language file
40
	* file must be in "language/{$user->lang}/mods/portal/"
41
	*/
42
	public $language = 'portal_random_member_module';
43
44
	/**
45
	* custom acp template
46
	* file must be in "adm/style/portal/"
47
	*/
48
	public $custom_acp_tpl = '';
49
50
	/** @var \phpbb\db\driver */
51
	protected $db;
52
53
	/** @var \phpbb\template */
54
	protected $template;
55
56
	/** @var \phpbb\user */
57
	protected $user;
58
59
	/**
60
	* Construct a random member object
61
	*
62
	* @param \phpbb\db\driver $db phpBB database system
63
	* @param \phpbb\template $template phpBB template
64
	* @param \phpbb\user $user phpBB user object
65
	*/
66
	public function __construct($db, $template, $user)
67
	{
68
		$this->db = $db;
69
		$this->template = $template;
70
		$this->user = $user;
71
	}
72
73
	/**
74
	* {@inheritdoc}
75
	*/
76
	public function get_template_side($module_id)
77
	{
78
		switch ($this->db->get_sql_layer())
79
		{
80 View Code Duplication
			case 'postgres':
81
			$sql = 'SELECT *
82
				FROM ' . USERS_TABLE . '
83
				WHERE user_type <> ' . USER_IGNORE . '
84
				AND user_type <> ' . USER_INACTIVE . '
85
				ORDER BY RANDOM()';
86
			break;
87
88
			case 'mssql':
89 View Code Duplication
			case 'mssql_odbc':
90
			$sql = 'SELECT *
91
				FROM ' . USERS_TABLE . '
92
				WHERE user_type <> ' . USER_IGNORE . '
93
				AND user_type <> ' . USER_INACTIVE . '
94
				ORDER BY NEWID()';
95
			break;
96
97 View Code Duplication
			default:
98
			$sql = 'SELECT *
99
				FROM ' . USERS_TABLE . '
100
				WHERE user_type <> ' . USER_IGNORE . '
101
				AND user_type <> ' . USER_INACTIVE . '
102
				ORDER BY RAND()';
103
			break;
104
		}
105
106
		$result = $this->db->sql_query_limit($sql, 1);
107
		$row = $this->db->sql_fetchrow($result);
108
109
		$avatar_img = phpbb_get_avatar(\phpbb\avatar\manager::clean_row($row, 'user'), 'USER_AVATAR');
110
111
		$rank_data = phpbb_get_user_rank($row, $row['user_posts']);
112
113
		$username = $row['username'];
114
		$user_id = (int) $row['user_id'];
115
		$colour = $row['user_colour'];
116
117
		$this->template->assign_block_vars('random_member', array(
118
			'USERNAME_FULL'		=> get_username_string('full', $user_id, $username, $colour),
119
			'USERNAME'			=> get_username_string('username', $user_id, $username, $colour),
120
			'USER_COLOR'		=> get_username_string('colour', $user_id, $username, $colour),
121
			'U_VIEW_PROFILE'	=> get_username_string('profile', $user_id, $username, $colour),
122
123
			'RANK_TITLE'		=> $rank_data['title'],
124
			'RANK_IMG'			=> $rank_data['img'],
125
			'RANK_IMG_SRC'		=> $rank_data['img_src'],
126
127
			'USER_POSTS'	=> (int) $row['user_posts'],
128
			'AVATAR_IMG'	=> $avatar_img,
129
			'JOINED'		=> $this->user->format_date($row['user_regdate']),
130
//			'USER_OCC'		=> censor_text($row['user_occ']),
131
//			'USER_FROM'		=> censor_text($row['user_from']),
132
//			'U_WWW'			=> censor_text($row['user_website']),
133
		));
134
		$this->db->sql_freeresult($result);
135
136
		return 'random_member_side.html';
137
	}
138
139
	/**
140
	* {@inheritdoc}
141
	*/
142
	public function get_template_acp($module_id)
143
	{
144
		return array(
145
			'title'	=> 'PORTAL_RANDOM_MEMBER',
146
			'vars'	=> array(),
147
		);
148
	}
149
}
150