main_listener   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 117
Duplicated Lines 0 %

Importance

Changes 4
Bugs 0 Features 0
Metric Value
eloc 51
c 4
b 0
f 0
dl 0
loc 117
rs 10
wmc 4

4 Methods

Rating   Name   Duplication   Size   Complexity  
A mas_load_lang() 0 3 1
A getSubscribedEvents() 0 5 1
A mas_header() 0 50 1
A __construct() 0 6 1
1
<?php
2
/**
3
 *
4
 * Member Avatar & Status [MAS]. An extension for the phpBB Forum Software package.
5
 *
6
 * @copyright (c) 2018-forever, Dark❶ [dark1]
7
 * @license GNU General Public License, version 2 (GPL-2.0-only)
8
 *
9
 */
10
11
namespace dark1\memberavatarstatus\event;
12
13
/**
14
 * @ignore
15
 */
16
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
17
use dark1\memberavatarstatus\core\avatar;
18
use dark1\memberavatarstatus\core\status;
19
use phpbb\template\template;
20
use phpbb\language\language;
21
22
/**
23
 * Member Avatar & Status Event listener.
24
 */
25
class main_listener implements EventSubscriberInterface
26
{
27
	/** @var avatar*/
28
	protected $avatar;
29
30
	/** @var status*/
31
	protected $status;
32
33
	/** @var template */
34
	protected $template;
35
36
	/** @var language */
37
	protected $language;
38
39
	/**
40
	 * Constructor for listener
41
	 *
42
	 * @param avatar		$avatar		dark1 avatar
43
	 * @param status		$status		dark1 status
44
	 * @param template		$template	phpBB template
45
	 * @param language		$language	phpBB language
46
	 * @access public
47
	 */
48
	public function __construct(avatar $avatar, status $status, template $template, language $language)
49
	{
50
		$this->avatar		= $avatar;
51
		$this->status		= $status;
52
		$this->template		= $template;
53
		$this->language		= $language;
54
	}
55
56
	/**
57
	 * Assign functions defined in this class to event listeners in the core
58
	 *
59
	 * @return array
60
	 * @static
61
	 * @access public
62
	 */
63
	static public function getSubscribedEvents()
64
	{
65
		return [
66
			'core.user_setup_after'		=> 'mas_load_lang',
67
			'core.page_header_after'	=> 'mas_header',
68
		];
69
	}
70
71
72
73
	/**
74
	 * MAS Load language files during user setup after
75
	 *
76
	 * @return null
77
	 * @access public
78
	 */
79
	public function mas_load_lang()
80
	{
81
		$this->language->add_lang('lang_mas', 'dark1/memberavatarstatus');
82
	}
83
84
85
86
	/**
87
	 * MAS Header setup during page header after
88
	 *
89
	 * @return null
90
	 * @access public
91
	 */
92
	public function mas_header()
93
	{
94
		$ext_name_mas = 'Member Avatar & Status [MAS]';
95
		$ext_by_dark1 = 'Dark❶ [dark1]';
96
97
		// Assign template var's
98
		$this->template->assign_vars([
99
			'MAS_EXT_NAME'		=> $ext_name_mas,
100
			'MAS_EXT_DEV'		=> $ext_by_dark1,
101
			// General
102
			'MAS_AVATAR'		=> $this->avatar->mas_get_config_avatar(),
103
			'MAS_ONLINE'		=> $this->status->mas_get_config_online(),
104
			'MAS_COLOR_OFFLINE'	=> $this->status->mas_get_config_color('off'),
105
			'MAS_COLOR_ONLINE'	=> $this->status->mas_get_config_color('on'),
106
			// MemberList
107
			'MAS_ML_AVATAR'		=> $this->avatar->mas_get_config_avatar('dark1_mas_ml_av'),
108
			'MAS_ML_AV_SIZE'	=> $this->avatar->mas_get_config_avatar_size('dark1_mas_ml_av_sz', avatar::AV_DEF_SZ_BIG, avatar::AV_MAX_SZ_BIG),
109
			'MAS_ML_ONLINE'		=> $this->status->mas_get_config_online('dark1_mas_ml_ol'),
110
			// ViewOnline
111
			'MAS_VO_PG_AVATAR'	=> $this->avatar->mas_get_config_avatar('dark1_mas_vo_pg_av'),
112
			'MAS_VO_PG_AV_SIZE'	=> $this->avatar->mas_get_config_avatar_size('dark1_mas_vo_pg_av_sz', avatar::AV_DEF_SZ_SML, avatar::AV_MAX_SZ_SML),
113
			'MAS_VO_SB_AVATAR'	=> $this->avatar->mas_get_config_avatar('dark1_mas_vo_sb_av'),
114
			'MAS_VO_SB_AV_SIZE'	=> $this->avatar->mas_get_config_avatar_size('dark1_mas_vo_sb_av_sz', avatar::AV_DEF_SZ_SML, avatar::AV_MAX_SZ_SML),
115
			// ViewForum
116
			'MAS_VF_FP_AVATAR'	=> $this->avatar->mas_get_config_avatar('dark1_mas_vf_fp_av'),
117
			'MAS_VF_FP_AV_SIZE'	=> $this->avatar->mas_get_config_avatar_size('dark1_mas_vf_fp_av_sz', avatar::AV_DEF_SZ_SML, avatar::AV_MAX_SZ_SML),
118
			'MAS_VF_FP_ONLINE'	=> $this->status->mas_get_config_online('dark1_mas_vf_fp_ol'),
119
			'MAS_VF_LP_AVATAR'	=> $this->avatar->mas_get_config_avatar('dark1_mas_vf_lp_av'),
120
			'MAS_VF_LP_AV_SIZE'	=> $this->avatar->mas_get_config_avatar_size('dark1_mas_vf_lp_av_sz', avatar::AV_DEF_SZ_SML, avatar::AV_MAX_SZ_SML),
121
			'MAS_VF_LP_ONLINE'	=> $this->status->mas_get_config_online('dark1_mas_vf_lp_ol'),
122
			// Search
123
			'MAS_SH_FP_AVATAR'	=> $this->avatar->mas_get_config_avatar('dark1_mas_sh_fp_av'),
124
			'MAS_SH_FP_AV_SIZE'	=> $this->avatar->mas_get_config_avatar_size('dark1_mas_sh_fp_av_sz', avatar::AV_DEF_SZ_SML, avatar::AV_MAX_SZ_SML),
125
			'MAS_SH_FP_ONLINE'	=> $this->status->mas_get_config_online('dark1_mas_sh_fp_ol'),
126
			'MAS_SH_LP_AVATAR'	=> $this->avatar->mas_get_config_avatar('dark1_mas_sh_lp_av'),
127
			'MAS_SH_LP_AV_SIZE'	=> $this->avatar->mas_get_config_avatar_size('dark1_mas_sh_lp_av_sz', avatar::AV_DEF_SZ_SML, avatar::AV_MAX_SZ_SML),
128
			'MAS_SH_LP_ONLINE'	=> $this->status->mas_get_config_online('dark1_mas_sh_lp_ol'),
129
			'MAS_SH_UP_AVATAR'	=> $this->avatar->mas_get_config_avatar('dark1_mas_sh_up_av'),
130
			'MAS_SH_UP_AV_SIZE'	=> $this->avatar->mas_get_config_avatar_size('dark1_mas_sh_up_av_sz', avatar::AV_DEF_SZ_SML, avatar::AV_MAX_SZ_SML),
131
			'MAS_SH_UP_ONLINE'	=> $this->status->mas_get_config_online('dark1_mas_sh_up_ol'),
132
			// Review
133
			'MAS_RV_AVATAR'		=> $this->avatar->mas_get_config_avatar('dark1_mas_rv_av'),
134
			'MAS_RV_AV_SIZE'	=> $this->avatar->mas_get_config_avatar_size('dark1_mas_rv_av_sz', avatar::AV_DEF_SZ_SML, avatar::AV_MAX_SZ_SML),
135
			'MAS_RV_ONLINE'		=> $this->status->mas_get_config_online('dark1_mas_rv_ol'),
136
			// Friendlist
137
			'MAS_FL_AVATAR'		=> $this->avatar->mas_get_config_avatar('dark1_mas_fl_av'),
138
			'MAS_FL_AV_SIZE'	=> $this->avatar->mas_get_config_avatar_size('dark1_mas_fl_av_sz', avatar::AV_DEF_SZ_SML, avatar::AV_MAX_SZ_SML),
139
			'MAS_FL_ONLINE'		=> $this->status->mas_get_config_online('dark1_mas_fl_ol'),
140
			// No Avatar IMG
141
			'MAS_NO_AVATAR_IMG'	=> $this->avatar->mas_get_no_avatar_img(),
142
		]);
143
	}
144
145
}
146