diff options
| author | Murtaza Sultani <sultani@data-quest.de> | 2025-10-20 15:31:57 +0200 |
|---|---|---|
| committer | Rasmus Fuhse <fuhse@data-quest.de> | 2025-10-20 13:31:57 +0000 |
| commit | 93d6f8ea1adef72ddfe46e7508031938d172249a (patch) | |
| tree | 4508c11c16bdb86da9f151925b1786e1b331d32f /lib/models | |
| parent | aa7e597f94d34d352551e6963014f9a26e3e03a0 (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.php | 26 |
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> + '; + } } |
