1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-05-04 14:47:52 +02:00

[ticket/9758] Adds global template variable CURRENT_USER_AVATAR

PHPBB3-9758
This commit is contained in:
Crizzo 2014-03-15 14:57:12 +01:00
parent 0be6582d7f
commit ddbdde53ab
11 changed files with 111 additions and 94 deletions

View File

@ -4619,6 +4619,92 @@ function phpbb_build_hidden_fields_for_query_params($request, $exclude = null)
return $hidden;
}
/**
* Get user avatar
*
* @param array $user_row Row from the users table
* @param string $alt Optional language string for alt tag within image, can be a language key or text
* @param bool $ignore_config Ignores the config-setting, to be still able to view the avatar in the UCP
*
* @return string Avatar html
*/
function phpbb_get_user_avatar($user_row, $alt = 'USER_AVATAR', $ignore_config = false)
{
$row = \phpbb\avatar\manager::clean_row($user_row, 'user');
return phpbb_get_avatar($row, $alt, $ignore_config);
}
/**
* Get group avatar
*
* @param array $group_row Row from the groups table
* @param string $alt Optional language string for alt tag within image, can be a language key or text
* @param bool $ignore_config Ignores the config-setting, to be still able to view the avatar in the UCP
*
* @return string Avatar html
*/
function phpbb_get_group_avatar($user_row, $alt = 'GROUP_AVATAR', $ignore_config = false)
{
$row = \phpbb\avatar\manager::clean_row($user_row, 'group');
return phpbb_get_avatar($row, $alt, $ignore_config);
}
/**
* Get avatar
*
* @param array $row Row cleaned by \phpbb\avatar\driver\driver::clean_row
* @param string $alt Optional language string for alt tag within image, can be a language key or text
* @param bool $ignore_config Ignores the config-setting, to be still able to view the avatar in the UCP
*
* @return string Avatar html
*/
function phpbb_get_avatar($row, $alt, $ignore_config = false)
{
global $user, $config, $cache, $phpbb_root_path, $phpEx;
global $request;
global $phpbb_container;
if (!$config['allow_avatar'] && !$ignore_config)
{
return '';
}
$avatar_data = array(
'src' => $row['avatar'],
'width' => $row['avatar_width'],
'height' => $row['avatar_height'],
);
$phpbb_avatar_manager = $phpbb_container->get('avatar.manager');
$driver = $phpbb_avatar_manager->get_driver($row['avatar_type'], $ignore_config);
$html = '';
if ($driver)
{
$html = $driver->get_custom_html($user, $row, $alt);
if (!empty($html))
{
return $html;
}
$avatar_data = $driver->get_data($row, $ignore_config);
}
else
{
$avatar_data['src'] = '';
}
if (!empty($avatar_data['src']))
{
$html = '<img src="' . $avatar_data['src'] . '" ' .
($avatar_data['width'] ? ('width="' . $avatar_data['width'] . '" ') : '') .
($avatar_data['height'] ? ('height="' . $avatar_data['height'] . '" ') : '') .
'alt="' . ((!empty($user->lang[$alt])) ? $user->lang[$alt] : $alt) . '" />';
}
return $html;
}
/**
* Generate page header
*/
@ -4830,6 +4916,7 @@ function page_header($page_title = '', $display_online_list = false, $item_id =
// The following assigns all _common_ variables that may be used at any point in a template.
$template->assign_vars(array(
'CURRENT_USER_AVATAR' => phpbb_get_user_avatar($user->data),
'SITENAME' => $config['sitename'],
'SITE_DESCRIPTION' => $config['site_desc'],
'PAGE_TITLE' => $page_title,

View File

@ -43,7 +43,7 @@ function get_user_avatar($avatar, $avatar_type, $avatar_width, $avatar_height, $
{
global $phpbb_root_path, $phpEx;
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
include($phpbb_root_path . 'includes/functions.' . $phpEx);
}
return phpbb_get_avatar($row, $alt, $ignore_config);

View File

@ -1376,92 +1376,6 @@ function get_user_rank($user_rank, $user_posts, &$rank_title, &$rank_img, &$rank
}
}
/**
* Get user avatar
*
* @param array $user_row Row from the users table
* @param string $alt Optional language string for alt tag within image, can be a language key or text
* @param bool $ignore_config Ignores the config-setting, to be still able to view the avatar in the UCP
*
* @return string Avatar html
*/
function phpbb_get_user_avatar($user_row, $alt = 'USER_AVATAR', $ignore_config = false)
{
$row = \phpbb\avatar\manager::clean_row($user_row, 'user');
return phpbb_get_avatar($row, $alt, $ignore_config);
}
/**
* Get group avatar
*
* @param array $group_row Row from the groups table
* @param string $alt Optional language string for alt tag within image, can be a language key or text
* @param bool $ignore_config Ignores the config-setting, to be still able to view the avatar in the UCP
*
* @return string Avatar html
*/
function phpbb_get_group_avatar($user_row, $alt = 'GROUP_AVATAR', $ignore_config = false)
{
$row = \phpbb\avatar\manager::clean_row($user_row, 'group');
return phpbb_get_avatar($row, $alt, $ignore_config);
}
/**
* Get avatar
*
* @param array $row Row cleaned by \phpbb\avatar\driver\driver::clean_row
* @param string $alt Optional language string for alt tag within image, can be a language key or text
* @param bool $ignore_config Ignores the config-setting, to be still able to view the avatar in the UCP
*
* @return string Avatar html
*/
function phpbb_get_avatar($row, $alt, $ignore_config = false)
{
global $user, $config, $cache, $phpbb_root_path, $phpEx;
global $request;
global $phpbb_container;
if (!$config['allow_avatar'] && !$ignore_config)
{
return '';
}
$avatar_data = array(
'src' => $row['avatar'],
'width' => $row['avatar_width'],
'height' => $row['avatar_height'],
);
$phpbb_avatar_manager = $phpbb_container->get('avatar.manager');
$driver = $phpbb_avatar_manager->get_driver($row['avatar_type'], $ignore_config);
$html = '';
if ($driver)
{
$html = $driver->get_custom_html($user, $row, $alt);
if (!empty($html))
{
return $html;
}
$avatar_data = $driver->get_data($row, $ignore_config);
}
else
{
$avatar_data['src'] = '';
}
if (!empty($avatar_data['src']))
{
$html = '<img src="' . $avatar_data['src'] . '" ' .
($avatar_data['width'] ? ('width="' . $avatar_data['width'] . '" ') : '') .
($avatar_data['height'] ? ('height="' . $avatar_data['height'] . '" ') : '') .
'alt="' . ((!empty($user->lang[$alt])) ? $user->lang[$alt] : $alt) . '" />';
}
return $html;
}
/**
* Generate a list of archive types available for compressing attachments
*

View File

@ -176,7 +176,7 @@ class mcp_notes
// Generate the appropriate user information for the user we are looking at
if (!function_exists('phpbb_get_user_avatar'))
{
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
include($phpbb_root_path . 'includes/functions.' . $phpEx);
}
$rank_title = $rank_img = '';

View File

@ -295,7 +295,7 @@ class mcp_warn
// Generate the appropriate user information for the user we are looking at
if (!function_exists('phpbb_get_user_avatar'))
{
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
include($phpbb_root_path . 'includes/functions.' . $phpEx);
}
get_user_rank($user_row['user_rank'], $user_row['user_posts'], $rank_title, $rank_img, $rank_img_src);
@ -400,7 +400,7 @@ class mcp_warn
// Generate the appropriate user information for the user we are looking at
if (!function_exists('phpbb_get_user_avatar'))
{
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
include($phpbb_root_path . 'includes/functions.' . $phpEx);
}
get_user_rank($user_row['user_rank'], $user_row['user_posts'], $rank_title, $rank_img, $rank_img_src);

View File

@ -340,7 +340,7 @@ function get_user_information($user_id, $user_row)
if (!function_exists('phpbb_get_user_avatar'))
{
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
include($phpbb_root_path . 'includes/functions.' . $phpEx);
}
$user_row['avatar'] = ($user->optionget('viewavatars')) ? phpbb_get_user_avatar($user_row) : '';

View File

@ -517,7 +517,7 @@ class ucp_profile
case 'avatar':
if (!function_exists('phpbb_get_user_avatar'))
{
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
include($phpbb_root_path . 'includes/functions.' . $phpEx);
}
add_form_key('ucp_avatar');

View File

@ -547,7 +547,12 @@ switch ($mode)
$parse_flags = ($member['user_sig_bbcode_bitfield'] ? OPTION_FLAG_BBCODE : 0) | OPTION_FLAG_SMILIES;
$member['user_sig'] = generate_text_for_display($member['user_sig'], $member['user_sig_bbcode_uid'], $member['user_sig_bbcode_bitfield'], $parse_flags, true);
}
if (!function_exists('phpbb_get_user_avatar'))
{
include($phpbb_root_path . 'includes/functions.' . $phpEx);
}
$poster_avatar = phpbb_get_user_avatar($member);
// We need to check if the modules 'zebra' ('friends' & 'foes' mode), 'notes' ('user_notes' mode) and 'warn' ('warn_user' mode) are accessible to decide if we can display appropriate links

View File

@ -163,7 +163,7 @@
<!-- EVENT overall_header_navigation_append -->
<!-- IF not S_IS_BOT -->
<li class="small-icon icon-logout rightside no-bulletin"><a href="{U_LOGIN_LOGOUT}" title="{L_LOGIN_LOGOUT}" accesskey="x">{L_LOGIN_LOGOUT}</a></li>
<li class="small-icon icon-logout rightside no-bulletin"><a href="{U_LOGIN_LOGOUT}" title="{L_LOGIN_LOGOUT}" accesskey="x">{L_LOGIN_LOGOUT}</a> <span class="avatar-index">{CURRENT_USER_AVATAR}</span></li>
<!-- IF not S_USER_LOGGED_IN and S_REGISTER_ENABLED and not (S_SHOW_COPPA or S_REGISTRATION) --><li class="small-icon icon-register rightside no-bulletin"><a href="{U_REGISTER}">{L_REGISTER}</a></li><!-- ENDIF -->
<!-- IF S_DISPLAY_MEMBERLIST --><li class="small-icon icon-members rightside no-bulletin"><a href="{U_MEMBERLIST}" title="{L_MEMBERLIST_EXPLAIN}">{L_MEMBERLIST}</a></li><!-- ENDIF -->
<!-- ENDIF -->

View File

@ -444,6 +444,13 @@ ul.linklist.bulletin li.no-bulletin:before {
display: none !important;
}
/* Avatar in overall_header.html */
span.avatar-index img {
max-height: 25px;
vertical-align: top;
width: auto;
}
/* Dropdown menu
----------------------------------------*/
.dropdown-container {

View File

@ -16,6 +16,10 @@ $phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
include($phpbb_root_path . 'includes/bbcode.' . $phpEx);
if (!function_exists('phpbb_get_user_avatar'))
{
include($phpbb_root_path . 'includes/functions.' . $phpEx);
}
// Start session management
$user->session_begin();