19 declare(strict_types=1);
52 $this->
ctrl = $DIC->ctrl();
53 $this->tpl = $DIC->ui()->mainTemplate();
54 $this->
lng = $DIC->language();
55 $this->
user = $DIC->user();
56 $this->rbacsystem = $DIC->rbac()->system();
57 $this->ui_factory = $DIC->ui()->factory();
58 $this->ui_renderer = $DIC->ui()->renderer();
59 $this->
http = $DIC->http();
76 $next_class = $this->
ctrl->getNextClass();
77 $cmd = $this->
ctrl->getCmd(
'view');
79 switch (strtolower($next_class)) {
80 case strtolower(ilPublicUserProfileGUI::class):
82 $this->
http->wrapper()->query()->retrieve(
87 $profile_gui->setBackUrl($this->
ctrl->getLinkTarget($this,
'view'));
88 $this->
ctrl->forwardCommand($profile_gui);
101 protected function view(): void
103 $template = $this->
populateTemplate($this->collection_provider->getGroupedCollections());
104 $this->tpl->setContent($template->get());
112 $tpl =
new ilTemplate(
'tpl.users_gallery.html',
true,
true,
'Services/User');
115 $panel->setBody($this->
lng->txt(
'no_gallery_users_available'));
116 $tpl->
setVariable(
'NO_ENTRIES_HTML', json_encode($panel->getHTML(), JSON_THROW_ON_ERROR));
118 $groups_with_users = array_filter(
123 if (count($groups_with_users) === 0) {
124 $tpl->
setVariable(
'NO_GALLERY_USERS', $panel->getHTML());
130 foreach ($gallery_groups as $group) {
133 foreach ($sorted_group as $user) {
138 $tpl->
setVariable(
'GALLERY_HTML', $this->ui_renderer->render($this->ui_factory->deck($cards)));
140 if ($this->collection_provider->hasRemovableUsers()) {
151 $card = $this->ui_factory->card()->standard($user->
getPublicName())
153 $avatar = $this->ui_factory->image()->standard(
160 $sections[] = $this->ui_factory->listing()->descriptive(
163 $this->
lng->txt(
"crs_contact_responsibility") => $group->
getLabel()
168 if ($actions_section !== null) {
169 $sections[] = $actions_section;
180 return $card->withImage($avatar)->withSections($sections);
185 $contact_btn_html =
"";
187 if (!$this->
user->isAnonymous() &&
195 $list_html = $this->user_action_gui->renderDropDown($user->
getId());
197 if ($contact_btn_html || $list_html) {
198 return $this->ui_factory->legacy(
199 "<div style='display:grid; grid-template-columns: max-content max-content;'>" 202 .
"</div><div style='margin-left: 5px;'>" 216 $this->
ctrl->setParameterByClass(
217 ilPublicUserProfileGUI::class,
221 $public_profile_url = $this->
ctrl->getLinkTargetByClass(
222 ilPublicUserProfileGUI::class,
227 $avatar->withAction($public_profile_url),
228 $card->withTitleAction($public_profile_url)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
addPublicProfileLinksToAvatarAndCard(Image $avatar, StandardCard $card, int $user_id)
Interface GlobalHttpState.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This describes a standard Card.
An entity that renders components to a string output.
touchBlock(string $block)
overwrites ITX::touchBlock.
A class that provides a collection of actions on users.
ilUsersGalleryGUI: ilPublicUserProfileGUI ilUsersGalleryGUI: ilCourseMembershipGUI, ilGroupMembershipGUI
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
setVariable(string $variable, $value='')
Sets the given variable to the given value.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
GUI class for public user profile presentation.
static http()
Fetches the global http state from ILIAS.
ilGlobalTemplateInterface $tpl
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
getActionsSection(ilObjUser $user)
populateTemplate(array $gallery_groups)
ilUserActionGUI $user_action_gui
getCardForUser(ilUsersGalleryUser $user, ilUsersGalleryUserCollection $group)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...