ILIAS  trunk Revision v11.0_alpha-1843-g9e1fad99175
All Data Structures Namespaces Files Functions Variables Enumerations Enumerator Modules Pages
class.ilUsersGalleryContacts.php
Go to the documentation of this file.
1 <?php
2 
19 declare(strict_types=1);
20 
22 {
26  protected function getRelationSequence(): Generator
27  {
28  yield ilBuddyList::getInstanceByGlobalUser()->getRequestRelationsForOwner()->toArray();
29  yield ilBuddyList::getInstanceByGlobalUser()->getLinkedRelations()->toArray();
30  yield ilBuddyList::getInstanceByGlobalUser()->getRequestRelationsByOwner()->toArray() + ilBuddyList::getInstanceByGlobalUser()->getIgnoredRelationsByOwner()->toArray();
31  yield ilBuddyList::getInstanceByGlobalUser()->getIgnoredRelationsForOwner()->toArray();
32  }
33 
34  public function getGroupedCollections(bool $ignore_myself = false): array
35  {
36  global $DIC;
37 
38  $groups = [];
39 
40  foreach ($this->getRelationSequence() as $relations) {
41  $user_data = [];
42 
43  foreach ($relations as $usr_id => $relation) {
44  if (!($user = ilObjectFactory::getInstanceByObjId($usr_id, false)) || !($user instanceof ilObjUser)) {
45  continue;
46  }
47 
48  if (!$user->getActive()) {
49  continue;
50  }
51 
52  if ($ignore_myself && $user->getId() === $DIC->user()->getId()) {
53  continue;
54  }
55 
56  $user_data[$user->getId()] = $user;
57  }
58 
59  $groups[] = $this->getPopulatedGroup($user_data);
60  }
61 
62  return $groups;
63  }
64 
65  public function hasRemovableUsers(): bool
66  {
67  return true;
68  }
69 }
$relation
getGroupedCollections(bool $ignore_myself=false)
global $DIC
Definition: shib_login.php:22
static getInstanceByObjId(?int $obj_id, bool $stop_on_error=true)
get an instance of an Ilias object by object id
static getInstanceByGlobalUser(?ilObjUser $user=null)