diff --git a/phpBB/assets/javascript/editor.js b/phpBB/assets/javascript/editor.js index 1e652cadea..7945924b84 100644 --- a/phpBB/assets/javascript/editor.js +++ b/phpBB/assets/javascript/editor.js @@ -416,17 +416,36 @@ function getCaretPosition(txtarea) { /** * Get default avatar - * @param {string} type Type of avatar; either group or user on any other value + * @param {string} type Type of avatar; either 'g' for group or user on any other value * @returns {string} Default avatar svg code */ function defaultAvatar(type) { - if (type === 'group') { + if (type === 'g') { return ''; } else { return ''; } } + /** + * Get avatar HTML for data and type of avatar + * + * @param {object} data + * @param {string} type + * @return {string} Avatar HTML + */ + function getAvatar(data, type) { + const avatarToHtml = (avatarData) => { + if (avatarData.html !== '') { + return avatarData.html; + } else { + return '' + avatarData.title + ''; + } + } + + return data.html === '' && data.src === '' ? defaultAvatar(type) : "" + avatarToHtml(data)+ ""; + } + /** * Get cached keyword for query string * @param {string} query Query string @@ -620,8 +639,8 @@ function getCaretPosition(txtarea) { itemClass: 'mention-item', menuItemTemplate: function (data) { const itemData = data; - let avatar = (itemData.avatar.img) ? "" + itemData.avatar.img + "" : defaultAvatar(itemData.avatar.type), - rank = (itemData.rank) ? "" + itemData.rank + "" : ''; + let avatar = getAvatar(itemData.avatar, itemData.type); + let rank = (itemData.rank) ? "" + itemData.rank + "" : ''; return "" + avatar + "" + itemData.name + rank + ""; }, selectTemplate: function (item) { diff --git a/phpBB/phpbb/mention/source/base_group.php b/phpBB/phpbb/mention/source/base_group.php index 1f3f063e33..126c01fa58 100644 --- a/phpBB/phpbb/mention/source/base_group.php +++ b/phpBB/phpbb/mention/source/base_group.php @@ -159,10 +159,7 @@ abstract class base_group implements source_interface 'name' => $groups[$group_id]['group_name'], 'type' => 'g', 'id' => $group_id, - 'avatar' => [ - 'type' => 'group', - 'img' => phpbb_get_group_avatar($groups[$group_id]), - ], + 'avatar' => $this->helper->get_avatar($groups[$group_id]), 'rank' => (isset($group_rank['title'])) ? $group_rank['title'] : '', 'priority' => $this->get_priority($groups[$group_id]), ]); diff --git a/phpBB/phpbb/mention/source/base_user.php b/phpBB/phpbb/mention/source/base_user.php index 8b6c7a8540..f0d01fa8e1 100644 --- a/phpBB/phpbb/mention/source/base_user.php +++ b/phpBB/phpbb/mention/source/base_user.php @@ -152,10 +152,7 @@ abstract class base_user implements source_interface 'name' => $this->user_loader->get_username($user['user_id'], 'username'), 'type' => 'u', 'id' => $user['user_id'], - 'avatar' => [ - 'type' => 'user', - 'img' => $this->user_loader->get_avatar($user['user_id']), - ], + 'avatar' => $this->user_loader->get_avatar($user['user_id']), 'rank' => (isset($user_rank['rank_title'])) ? $user_rank['rank_title'] : '', 'priority' => $this->get_priority($user), ]);