diff options
| -rw-r--r-- | build/build.xml | 2 | ||||
| -rw-r--r-- | phpBB/docs/events.md | 48 | ||||
| -rw-r--r-- | phpBB/includes/functions.php | 27 | ||||
| -rw-r--r-- | phpBB/includes/functions_content.php | 66 | ||||
| -rw-r--r-- | phpBB/includes/functions_messenger.php | 12 | ||||
| -rw-r--r-- | phpBB/includes/functions_posting.php | 34 | ||||
| -rw-r--r-- | phpBB/language/en/ucp.php | 2 | ||||
| -rw-r--r-- | phpBB/phpbb/controller/helper.php | 9 | ||||
| -rw-r--r-- | phpBB/phpbb/db/migration/data/v310/passwords_convert_p1.php | 13 | ||||
| -rw-r--r-- | phpBB/phpbb/notification/manager.php | 8 | ||||
| -rw-r--r-- | phpBB/phpbb/notification/method/messenger_base.php | 2 | ||||
| -rw-r--r-- | phpBB/styles/prosilver/template/memberlist_view.html | 6 | ||||
| -rw-r--r-- | phpBB/styles/subsilver2/template/memberlist_view.html | 6 | 
13 files changed, 201 insertions, 34 deletions
diff --git a/build/build.xml b/build/build.xml index 1827fe8ab3..7d9def981a 100644 --- a/build/build.xml +++ b/build/build.xml @@ -3,7 +3,7 @@  <project name="phpBB" description="The phpBB forum software" default="all" basedir="../">  	<!-- a few settings for the build -->  	<property name="newversion" value="3.1.9-dev" /> -	<property name="newversion" value="3.1.8" /> +	<property name="prevversion" value="3.1.8" />  	<property name="olderversions" value="3.0.14, 3.1.0, 3.1.1, 3.1.2, 3.1.3, 3.1.4, 3.1.5, 3.1.6, 3.1.7, 3.1.7-pl1" />  	<!-- no configuration should be needed beyond this point --> diff --git a/phpBB/docs/events.md b/phpBB/docs/events.md index 04c531c5a3..fced20ecfe 100644 --- a/phpBB/docs/events.md +++ b/phpBB/docs/events.md @@ -991,6 +991,22 @@ memberlist_view_contact_before  * Since: 3.1.0-b2  * Purpose: Add content before the user contact part of any user profile +memberlist_view_contact_custom_fields_after +=== +* Locations: +    + styles/prosilver/template/memberlist_view.html +    + styles/subsilver2/template/memberlist_view.html +* Since: 3.1.9-RC1 +* Purpose: Add content after the user contact related custom fields + +memberlist_view_contact_custom_fields_before +=== +* Locations: +    + styles/prosilver/template/memberlist_view.html +    + styles/subsilver2/template/memberlist_view.html +* Since: 3.1.9-RC1 +* Purpose: Add content before the user contact related custom fields +  memberlist_view_content_append  ===  * Locations: @@ -1007,6 +1023,22 @@ memberlist_view_content_prepend  * Since: 3.1.0-b3  * Purpose: Add custom content to the user profile view before the main content +memberlist_view_non_contact_custom_fields_after +=== +* Locations: +    + styles/prosilver/template/memberlist_view.html +    + styles/subsilver2/template/memberlist_view.html +* Since: 3.1.9-RC1 +* Purpose: Add content after the user not contact related custom fields + +memberlist_view_non_contact_custom_fields_before +=== +* Locations: +    + styles/prosilver/template/memberlist_view.html +    + styles/subsilver2/template/memberlist_view.html +* Since: 3.1.9-RC1 +* Purpose: Add content before the user not contact related custom fields +  memberlist_view_rank_after  ===  * Locations: @@ -1065,6 +1097,22 @@ memberlist_view_user_statistics_before  * Since: 3.1.0-a1  * Purpose: Add entries before the user statistics part of any user profile +memberlist_view_zebra_after +=== +* Locations: +    + styles/prosilver/template/memberlist_view.html +    + styles/subsilver2/template/memberlist_view.html +* Since: 3.1.9-RC1 +* Purpose: Add content after the user friends/foes links + +memberlist_view_zebra_before +=== +* Locations: +    + styles/prosilver/template/memberlist_view.html +    + styles/subsilver2/template/memberlist_view.html +* Since: 3.1.9-RC1 +* Purpose: Add content before the user friends/foes links +  navbar_header_logged_out_content  ===  * Locations: diff --git a/phpBB/includes/functions.php b/phpBB/includes/functions.php index b6334a2bca..ad361107af 100644 --- a/phpBB/includes/functions.php +++ b/phpBB/includes/functions.php @@ -4909,7 +4909,7 @@ function phpbb_get_avatar($row, $alt, $ignore_config = false, $lazy = false)  /**  * Generate page header  */ -function page_header($page_title = '', $display_online_list = false, $item_id = 0, $item = 'forum') +function page_header($page_title = '', $display_online_list = false, $item_id = 0, $item = 'forum', $send_headers = true)  {  	global $db, $config, $template, $SID, $_SID, $_EXTRA_URL, $user, $auth, $phpEx, $phpbb_root_path;  	global $phpbb_dispatcher, $request, $phpbb_container, $phpbb_admin_path; @@ -5249,17 +5249,22 @@ function page_header($page_title = '', $display_online_list = false, $item_id =  		'SITE_LOGO_IMG'			=> $user->img('site_logo'),  	)); -	// An array of http headers that phpbb will set. The following event may override these. -	$http_headers = array( -		// application/xhtml+xml not used because of IE -		'Content-type' => 'text/html; charset=UTF-8', -		'Cache-Control' => 'private, no-cache="set-cookie"', -		'Expires' => gmdate('D, d M Y H:i:s', time()) . ' GMT', -	); -	if (!empty($user->data['is_bot'])) +	$http_headers = array(); + +	if ($send_headers)  	{ -		// Let reverse proxies know we detected a bot. -		$http_headers['X-PHPBB-IS-BOT'] = 'yes'; +		// An array of http headers that phpbb will set. The following event may override these. +		$http_headers += array( +			// application/xhtml+xml not used because of IE +			'Content-type' => 'text/html; charset=UTF-8', +			'Cache-Control' => 'private, no-cache="set-cookie"', +			'Expires' => gmdate('D, d M Y H:i:s', time()) . ' GMT', +		); +		if (!empty($user->data['is_bot'])) +		{ +			// Let reverse proxies know we detected a bot. +			$http_headers['X-PHPBB-IS-BOT'] = 'yes'; +		}  	}  	/** diff --git a/phpBB/includes/functions_content.php b/phpBB/includes/functions_content.php index 6f861b8607..36d7dfc03c 100644 --- a/phpBB/includes/functions_content.php +++ b/phpBB/includes/functions_content.php @@ -47,7 +47,7 @@ if (!defined('IN_PHPBB'))  */  function gen_sort_selects(&$limit_days, &$sort_by_text, &$sort_days, &$sort_key, &$sort_dir, &$s_limit_days, &$s_sort_key, &$s_sort_dir, &$u_sort_param, $def_st = false, $def_sk = false, $def_sd = false)  { -	global $user; +	global $user, $phpbb_dispatcher;  	$sort_dir_text = array('a' => $user->lang['ASCENDING'], 'd' => $user->lang['DESCENDING']); @@ -106,6 +106,42 @@ function gen_sort_selects(&$limit_days, &$sort_by_text, &$sort_days, &$sort_key,  		$u_sort_param .= ($selected !== $sort_ary['default']) ? ((strlen($u_sort_param)) ? '&' : '') . "{$name}={$selected}" : '';  	} +	/** +	 * Run code before generated sort selects are returned +	 * +	 * @event core.gen_sort_selects_after +	 * @var	int      limit_days     Days limit +	 * @var	array    sort_by_text   Sort by text options +	 * @var	int      sort_days      Sort by days flag +	 * @var	string   sort_key       Sort key +	 * @var	string   sort_dir       Sort dir +	 * @var	string   s_limit_days   String of days limit +	 * @var	string   s_sort_key     String of sort key +	 * @var	string   s_sort_dir     String of sort dir +	 * @var	string   u_sort_param   Sort URL params +	 * @var	bool     def_st         Default sort days +	 * @var	bool     def_sk         Default sort key +	 * @var	bool     def_sd         Default sort dir +	 * @var	array    sorts          Sorts +	 * @since 3.1.9-RC1 +	 */ +	$vars = array( +		'limit_days', +		'sort_by_text', +		'sort_days', +		'sort_key', +		'sort_dir', +		's_limit_days', +		's_sort_key', +		's_sort_dir', +		'u_sort_param', +		'def_st', +		'def_sk', +		'def_sd', +		'sorts', +	); +	extract($phpbb_dispatcher->trigger_event('core.gen_sort_selects_after', compact($vars))); +  	return;  } @@ -392,7 +428,7 @@ function phpbb_clean_search_string($search_string)  */  function decode_message(&$message, $bbcode_uid = '')  { -	global $config; +	global $config, $phpbb_dispatcher;  	if ($bbcode_uid)  	{ @@ -405,12 +441,38 @@ function decode_message(&$message, $bbcode_uid = '')  		$replace = array("\n");  	} +	/** +	* Use this event to modify the message before it is decoded +	* +	* @event core.decode_message_before +	* @var string	message_text	The message content +	* @var string	bbcode_uid		The message BBCode UID +	* @since 3.1.9-RC1 +	*/ +	$message_text = $message; +	$vars = array('message_text', 'bbcode_uid'); +	extract($phpbb_dispatcher->trigger_event('core.decode_message_before', compact($vars))); +	$message = $message_text; +  	$message = str_replace($match, $replace, $message);  	$match = get_preg_expression('bbcode_htm');  	$replace = array('\1', '\1', '\2', '\1', '', '');  	$message = preg_replace($match, $replace, $message); + +	/** +	* Use this event to modify the message after it is decoded +	* +	* @event core.decode_message_after +	* @var string	message_text	The message content +	* @var string	bbcode_uid		The message BBCode UID +	* @since 3.1.9-RC1 +	*/ +	$message_text = $message; +	$vars = array('message_text', 'bbcode_uid'); +	extract($phpbb_dispatcher->trigger_event('core.decode_message_after', compact($vars))); +	$message = $message_text;  }  /** diff --git a/phpBB/includes/functions_messenger.php b/phpBB/includes/functions_messenger.php index aaecd9de0c..0525cfc29e 100644 --- a/phpBB/includes/functions_messenger.php +++ b/phpBB/includes/functions_messenger.php @@ -210,10 +210,12 @@ class messenger  	/**  	* Set email template to use  	*/ -	function template($template_file, $template_lang = '', $template_path = '') +	function template($template_file, $template_lang = '', $template_path = '', $template_dir_prefix = '')  	{  		global $config, $phpbb_root_path, $phpEx, $user, $phpbb_extension_manager; +		$template_dir_prefix = (!$template_dir_prefix || $template_dir_prefix[0] === '/') ? $template_dir_prefix : '/' . $template_dir_prefix; +  		$this->setup_template();  		if (!trim($template_file)) @@ -232,7 +234,7 @@ class messenger  		if ($template_path)  		{  			$template_paths = array( -				$template_path, +				$template_path . $template_dir_prefix,  			);  		}  		else @@ -241,7 +243,7 @@ class messenger  			$template_path .= $template_lang . '/email';  			$template_paths = array( -				$template_path, +				$template_path . $template_dir_prefix,  			);  			// we can only specify default language fallback when the path is not a custom one for which we @@ -251,14 +253,14 @@ class messenger  				$fallback_template_path = (!empty($user->lang_path)) ? $user->lang_path : $phpbb_root_path . 'language/';  				$fallback_template_path .= basename($config['default_lang']) . '/email'; -				$template_paths[] = $fallback_template_path; +				$template_paths[] = $fallback_template_path . $template_dir_prefix;  			}  		}  		$this->set_template_paths(array(  			array(  				'name' 		=> $template_lang . '_email', -				'ext_path' 	=> 'language/' . $template_lang . '/email' +				'ext_path' 	=> 'language/' . $template_lang . '/email' . $template_dir_prefix,  			),  		), $template_paths); diff --git a/phpBB/includes/functions_posting.php b/phpBB/includes/functions_posting.php index 75d77285a0..b2713fef07 100644 --- a/phpBB/includes/functions_posting.php +++ b/phpBB/includes/functions_posting.php @@ -1129,6 +1129,32 @@ function topic_review($topic_id, $forum_id, $mode = 'topic_review', $cur_post_id  		$db->sql_freeresult($result);  	} +	/** +	* Event to modify the posts list for topic reviews +	* +	* @event core.topic_review_modify_post_list +	* @var	array	attachments			Array with the post attachments data +	* @var	int		cur_post_id			Post offset ID +	* @var	int		forum_id			The topic's forum ID +	* @var	string	mode				The topic review mode +	* @var	array	post_list			Array with the post IDs +	* @var	array	rowset				Array with the posts data +	* @var	bool	show_quote_button	Flag indicating if the quote button should be displayed +	* @var	int		topic_id			The topic ID that is being reviewed +	* @since 3.1.9-RC1 +	*/ +	$vars = array( +		'attachments', +		'cur_post_id', +		'forum_id', +		'mode', +		'post_list', +		'rowset', +		'show_quote_button', +		'topic_id', +	); +	extract($phpbb_dispatcher->trigger_event('core.topic_review_modify_post_list', compact($vars))); +  	for ($i = 0, $end = sizeof($post_list); $i < $end; ++$i)  	{  		// A non-existing rowset only happens if there was no user present for the entered poster_id @@ -1610,6 +1636,10 @@ function submit_post($mode, $subject, $username, $topic_type, &$poll, &$data, $u  			break;  		}  	} +	else if (isset($data['post_visibility']) && $data['post_visibility'] !== false) +	{ +		$post_visibility = $data['post_visibility']; +	}  	// MODs/Extensions are able to force any visibility on posts  	if (isset($data['force_approved_state'])) @@ -2403,7 +2433,9 @@ function submit_post($mode, $subject, $username, $topic_type, &$poll, &$data, $u  	$params = $add_anchor = ''; -	if ($post_visibility == ITEM_APPROVED) +	if ($post_visibility == ITEM_APPROVED || +		($auth->acl_get('m_softdelete', $data['forum_id']) && $post_visibility == ITEM_DELETED) || +		($auth->acl_get('m_approve', $data['forum_id']) && in_array($post_visibility, array(ITEM_UNAPPROVED, ITEM_REAPPROVE))))  	{  		$params .= '&t=' . $data['topic_id']; diff --git a/phpBB/language/en/ucp.php b/phpBB/language/en/ucp.php index 1faa623b44..59525c6b16 100644 --- a/phpBB/language/en/ucp.php +++ b/phpBB/language/en/ucp.php @@ -66,7 +66,7 @@ $lang = array_merge($lang, array(  	'ACCOUNT_COPPA'					=> 'Your account has been created but has to be approved, please check your email for details.',  	'ACCOUNT_EMAIL_CHANGED'			=> 'Your account has been updated. However, this board requires account reactivation on email changes. An activation key has been sent to the new email address you provided. Please check your email for further information.',  	'ACCOUNT_EMAIL_CHANGED_ADMIN'	=> 'Your account has been updated. However, this board requires account reactivation by the administrators on email changes. An email has been sent to them and you will be informed when your account has been reactivated.', -	'ACCOUNT_INACTIVE'				=> 'Your account has been created. However, this board requires account activation, an activation key has been sent to the email address you provided. Please check your email for further information.', +	'ACCOUNT_INACTIVE'				=> 'Your account has been created. However, this board requires account activation. An activation key has been sent to the email address you provided. Please check your email for further information and also be sure to check your junk mail box. It may take a while to get the email depending on your email provider.',  	'ACCOUNT_INACTIVE_ADMIN'		=> 'Your account has been created. However, this board requires account activation by the administrator group. An email has been sent to them and you will be informed when your account has been activated.',  	'ACTIVATION_EMAIL_SENT'			=> 'The activation email has been sent to your email address.',  	'ACTIVATION_EMAIL_SENT_ADMIN'	=> 'The activation email has been sent to the administrators email addresses.', diff --git a/phpBB/phpbb/controller/helper.php b/phpBB/phpbb/controller/helper.php index 79378c2434..08a63639b9 100644 --- a/phpBB/phpbb/controller/helper.php +++ b/phpBB/phpbb/controller/helper.php @@ -102,12 +102,13 @@ class helper  	* @param bool $display_online_list Do we display online users list  	* @param int $item_id Restrict online users to item id  	* @param string $item Restrict online users to a certain session item, e.g. forum for session_forum_id +	* @param bool $send_headers Whether headers should be sent by page_header(). Defaults to false for controllers.  	*  	* @return Response object containing rendered page  	*/ -	public function render($template_file, $page_title = '', $status_code = 200, $display_online_list = false, $item_id = 0, $item = 'forum') +	public function render($template_file, $page_title = '', $status_code = 200, $display_online_list = false, $item_id = 0, $item = 'forum', $send_headers = false)  	{ -		page_header($page_title, $display_online_list, $item_id, $item); +		page_header($page_title, $display_online_list, $item_id, $item, $send_headers);  		$this->template->set_filenames(array(  			'body'	=> $template_file, @@ -115,7 +116,9 @@ class helper  		page_footer(true, false, false); -		return new Response($this->template->assign_display('body'), $status_code); +		$headers = !empty($this->user->data['is_bot']) ? array('X-PHPBB-IS-BOT' => 'yes') : array(); + +		return new Response($this->template->assign_display('body'), $status_code, $headers);  	}  	/** diff --git a/phpBB/phpbb/db/migration/data/v310/passwords_convert_p1.php b/phpBB/phpbb/db/migration/data/v310/passwords_convert_p1.php index aad8e44681..295f2d2a14 100644 --- a/phpBB/phpbb/db/migration/data/v310/passwords_convert_p1.php +++ b/phpBB/phpbb/db/migration/data/v310/passwords_convert_p1.php @@ -56,19 +56,16 @@ class passwords_convert_p1 extends \phpbb\db\migration\migration  			{  				// Use $CP$ prefix for passwords that need to  				// be converted and set pass convert to false. -				$update_users[$user_id] = array( -					'user_password'		=> '$CP$' . $row['user_password'], -					'user_pass_convert'	=> 0, -				); +				$update_users[$user_id] = '$CP$' . $row['user_password'];  			}  		}  		$this->db->sql_freeresult($result); -		foreach ($update_users as $user_id => $user_data) +		foreach ($update_users as $user_id => $user_password)  		{ -			$sql = 'UPDATE ' . $this->table_prefix . 'users -				SET ' . $this->db->sql_build_array('UPDATE', $user_data) . ' -				WHERE user_id = ' . $user_id; +			$sql = 'UPDATE ' . $this->table_prefix . "users +				SET user_password = '" . $this->db->sql_escape($user_password) . "' +				WHERE user_id = $user_id";  			$this->sql_query($sql);  		} diff --git a/phpBB/phpbb/notification/manager.php b/phpBB/phpbb/notification/manager.php index db92170dd8..222d9fe9e6 100644 --- a/phpBB/phpbb/notification/manager.php +++ b/phpBB/phpbb/notification/manager.php @@ -186,6 +186,7 @@ class manager  		if (!$options['count_total'] || $total_count)  		{  			$rowset = array(); +			$selected_unread_count = 0;  			// Get the main notifications  			$sql = 'SELECT n.*, nt.notification_type_name @@ -200,11 +201,12 @@ class manager  			while ($row = $this->db->sql_fetchrow($result))  			{  				$rowset[$row['notification_id']] = $row; +				$selected_unread_count += (int) !$row['notification_read'];  			}  			$this->db->sql_freeresult($result);  			// Get all unread notifications -			if ($unread_count && $options['all_unread'] && !empty($rowset)) +			if ($selected_unread_count < $unread_count && $options['all_unread'] && !empty($rowset))  			{  				$sql = 'SELECT n.*, nt.notification_type_name  				FROM ' . $this->notifications_table . ' n, ' . $this->notification_types_table . ' nt @@ -923,6 +925,8 @@ class manager  	{  		$notification_type_ids = $this->cache->get('notification_type_ids'); +		$this->db->sql_transaction('begin'); +  		if ($notification_type_ids === false)  		{  			$notification_type_ids = array(); @@ -957,6 +961,8 @@ class manager  			$this->cache->put('notification_type_ids', $notification_type_ids);  		} +		$this->db->sql_transaction('commit'); +  		return $notification_type_ids[$notification_type_name];  	} diff --git a/phpBB/phpbb/notification/method/messenger_base.php b/phpBB/phpbb/notification/method/messenger_base.php index c3aee088f9..5ae96282c4 100644 --- a/phpBB/phpbb/notification/method/messenger_base.php +++ b/phpBB/phpbb/notification/method/messenger_base.php @@ -74,7 +74,7 @@ abstract class messenger_base extends \phpbb\notification\method\base  				continue;  			} -			$messenger->template($template_dir_prefix . $notification->get_email_template(), $user['user_lang']); +			$messenger->template($notification->get_email_template(), $user['user_lang'], '', $template_dir_prefix);  			$messenger->set_addresses($user); diff --git a/phpBB/styles/prosilver/template/memberlist_view.html b/phpBB/styles/prosilver/template/memberlist_view.html index 8ecca49a60..a7439bc759 100644 --- a/phpBB/styles/prosilver/template/memberlist_view.html +++ b/phpBB/styles/prosilver/template/memberlist_view.html @@ -36,11 +36,14 @@  		<!-- IF S_USER_INACTIVE --><dt>{L_USER_IS_INACTIVE}{L_COLON}</dt> <dd>{USER_INACTIVE_REASON}</dd><!-- ENDIF -->  		<!-- IF AGE !== '' --><dt>{L_AGE}{L_COLON}</dt> <dd>{AGE}</dd><!-- ENDIF -->  		<!-- IF S_GROUP_OPTIONS --><dt>{L_USERGROUPS}{L_COLON}</dt> <dd><select name="g">{S_GROUP_OPTIONS}</select> <input type="submit" name="submit" value="{L_GO}" class="button2" /></dd><!-- ENDIF --> +		<!-- EVENT memberlist_view_non_contact_custom_fields_before -->  		<!-- BEGIN custom_fields -->  			<!-- IF not custom_fields.S_PROFILE_CONTACT -->  				<dt>{custom_fields.PROFILE_FIELD_NAME}{L_COLON}</dt> <dd>{custom_fields.PROFILE_FIELD_VALUE}</dd>  			<!-- ENDIF -->  		<!-- END custom_fields --> +		<!-- EVENT memberlist_view_non_contact_custom_fields_after --> +		<!-- EVENT memberlist_view_zebra_before -->  		<!-- IF S_USER_LOGGED_IN and S_ZEBRA -->  			<!-- IF U_REMOVE_FRIEND -->  				<dt> </dt> <dd class="zebra"><a href="{U_REMOVE_FRIEND}" data-ajax="zebra"><strong>{L_REMOVE_FRIEND}</strong></a></dd> @@ -55,6 +58,7 @@  				<!-- ENDIF -->  			<!-- ENDIF -->  		<!-- ENDIF --> +		<!-- EVENT memberlist_view_zebra_after -->  	</dl>  	</div> @@ -71,6 +75,7 @@  		<!-- IF U_EMAIL --><dt>{L_EMAIL_ADDRESS}{L_COLON}</dt> <dd><a href="{U_EMAIL}">{L_SEND_EMAIL_USER}</a></dd><!-- ENDIF -->  		<!-- IF U_PM --><dt>{L_PM}{L_COLON}</dt> <dd><a href="{U_PM}">{L_SEND_PRIVATE_MESSAGE}</a></dd><!-- ENDIF -->  		<!-- IF U_JABBER and S_JABBER_ENABLED --><dt>{L_JABBER}{L_COLON}</dt> <dd><a href="{U_JABBER}" onclick="popup(this.href, 750, 320); return false;">{L_SEND_JABBER_MESSAGE}</a></dd><!-- ELSEIF USER_JABBER --><dt>{L_JABBER}{L_COLON}</dt> <dd>{USER_JABBER}</dd><!-- ENDIF --> +		<!-- EVENT memberlist_view_contact_custom_fields_before -->  		<!-- BEGIN custom_fields -->  			<!-- IF custom_fields.S_PROFILE_CONTACT -->  				<dt>{custom_fields.PROFILE_FIELD_NAME}{L_COLON}</dt> @@ -81,6 +86,7 @@  				<!-- ENDIF -->  			<!-- ENDIF -->  		<!-- END custom_fields --> +		<!-- EVENT memberlist_view_contact_custom_fields_after -->  		<!-- IF S_PROFILE_FIELD1 -->  			<!-- NOTE: Use a construct like this to include admin defined profile fields. Replace FIELD1 with the name of your field. -->  			<dt>{PROFILE_FIELD1_NAME}{L_COLON}</dt> <dd>{PROFILE_FIELD1_VALUE}</dd> diff --git a/phpBB/styles/subsilver2/template/memberlist_view.html b/phpBB/styles/subsilver2/template/memberlist_view.html index 24e96c412c..731d2c8bca 100644 --- a/phpBB/styles/subsilver2/template/memberlist_view.html +++ b/phpBB/styles/subsilver2/template/memberlist_view.html @@ -53,6 +53,7 @@  					<td class="genmed" align="center">[ <a href="{U_SWITCH_PERMISSIONS}">{L_USE_PERMISSIONS}</a> ]</td>  				</tr>  			<!-- ENDIF --> +			<!-- EVENT memberlist_view_zebra_before -->  			<!-- IF S_USER_LOGGED_IN and S_ZEBRA -->  				<tr>  					<td class="genmed" align="center">[ @@ -66,6 +67,7 @@  					]</td>  				</tr>  			<!-- ENDIF --> +			<!-- EVENT memberlist_view_zebra_after -->  			</table>  		</td>  		<td class="row1"> @@ -129,6 +131,7 @@  				<td><!-- IF U_JABBER --><a href="{U_JABBER}" onclick="popup(this.href, 550, 320); return false" class="imageset">{JABBER_IMG}</a><!-- ELSEIF USER_JABBER -->{USER_JABBER_IMG}<!-- ENDIF --></td>  			</tr>  			<!-- ENDIF --> +			<!-- EVENT memberlist_view_contact_custom_fields_before -->  			<!-- BEGIN custom_fields -->  				<!-- IF custom_fields.S_PROFILE_CONTACT -->  				<tr> @@ -141,6 +144,7 @@  				</tr>  				<!-- ENDIF -->  			<!-- END custom_fields --> +			<!-- EVENT memberlist_view_contact_custom_fields_after -->  			</table>  		</td>  		<td class="row1"> @@ -162,6 +166,7 @@  					<td><b class="genmed">{PROFILE_FIELD1_VALUE}</b></td>  				</tr>  			<!-- ENDIF --> +			<!-- EVENT memberlist_view_non_contact_custom_fields_before -->  			<!-- BEGIN custom_fields -->  				<!-- IF not custom_fields.S_PROFILE_CONTACT -->  				<tr> @@ -170,6 +175,7 @@  				</tr>  				<!-- ENDIF -->  			<!-- END custom_fields --> +			<!-- EVENT memberlist_view_non_contact_custom_fields_after -->  			</table>  		</td>  	</tr>  | 
