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 '
';
+ }
+ }
+
+ 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),
]);