aboutsummaryrefslogtreecommitdiff
path: root/lib/models
diff options
context:
space:
mode:
authorMurtaza Sultani <sultani@data-quest.de>2025-10-20 15:31:57 +0200
committerRasmus Fuhse <fuhse@data-quest.de>2025-10-20 13:31:57 +0000
commit93d6f8ea1adef72ddfe46e7508031938d172249a (patch)
tree4508c11c16bdb86da9f151925b1786e1b331d32f /lib/models
parentaa7e597f94d34d352551e6963014f9a26e3e03a0 (diff)
Resolve "Vue-Komponenten UserAvatar und UserAvatarDropdown als globale Komponenten registrieren"
Closes #5924 Merge request studip/studip!4526
Diffstat (limited to 'lib/models')
-rw-r--r--lib/models/User.php26
1 files changed, 26 insertions, 0 deletions
diff --git a/lib/models/User.php b/lib/models/User.php
index 6f7cddb..87629ae 100644
--- a/lib/models/User.php
+++ b/lib/models/User.php
@@ -1750,4 +1750,30 @@ class User extends AuthUserMd5 implements Range, PrivacyObject, Studip\Calendar\
return $GLOBALS['perm']->have_studip_perm($permission, $for_range->id, $this->id);
}
+
+ public function getAvatarDropdownHTML(bool $with_name = false): string
+ {
+ $attributes = [
+ ':user' => json_encode([
+ 'id' => $this->id,
+ 'name' => $this->getFullName(),
+ 'username' => $this->username,
+ 'avatar_url' => Avatar::getAvatar($this->id)->getURL(Avatar::SMALL),
+ ])
+ ];
+
+ $user_profile_link = '';
+ if ($with_name) {
+ $user_profile_link = '<a href="' . URLHelper::getLink('dispatch.php/profile', ['username' => $this->username]) . '">' . htmlReady($this->getFullName()) . '</a>';
+ }
+
+ return '
+ <div class="user-avatar-container">
+ <div class="use-vue-components">
+ <user-avatar-dropdown ' . HTMLAttributes::from($attributes) . '/>
+ </div>
+ '. $user_profile_link .'
+ </div>
+ ';
+ }
}