ILIAS  release_5-4 Revision v5.4.26-12-gabc799a52e6
class.ilPDSelectedItemsBlockMembershipsProvider.php
Go to the documentation of this file.
1<?php
2/* Copyright (c) 1998-2017 ILIAS open source, Extended GPL, see docs/LICENSE */
3
4require_once 'Services/Membership/classes/class.ilParticipants.php';
5require_once 'Services/PersonalDesktop/ItemsBlock/interfaces/interface.ilPDSelectedItemsBlockProvider.php';
6
11{
15 protected $actor;
16
20 protected $tree;
21
26 public function __construct(ilObjUser $actor)
27 {
28 global $DIC;
29
30 $this->actor = $actor;
31 $this->tree = $DIC->repositoryTree();
32 }
33
39 protected function getObjectsByMembership($types = array())
40 {
41 $items = array();
42
43 if (is_array($types) && count($types)) {
44 foreach ($types as $type) {
45 switch ($type) {
46 case 'grp':
47 $items = array_merge(ilParticipants::_getMembershipByType($this->actor->getId(), 'grp'), $items);
48 break;
49 case 'crs':
50 $items = array_merge(ilParticipants::_getMembershipByType($this->actor->getId(), 'crs'), $items);
51 break;
52 default:
53 break;
54 }
55 }
56 } else {
57 $crs_mbs = ilParticipants::_getMembershipByType($this->actor->getId(), 'crs');
58 $grp_mbs = ilParticipants::_getMembershipByType($this->actor->getId(), 'grp');
59 $items = array_merge($crs_mbs, $grp_mbs);
60 }
61
62 $references = array();
63
64 foreach ($items as $key => $obj_id) {
65 $item_references = ilObject::_getAllReferences($obj_id);
66 foreach ($item_references as $ref_id) {
67 if ($this->tree->isInTree($ref_id)) {
68 $object = ilObjectFactory::getInstanceByRefId($ref_id);
69
70 $parent_ref_id = $this->tree->getParentId($ref_id);
71 $par_left = $this->tree->getLeftValue($parent_ref_id);
72 $par_left = sprintf("%010d", $par_left);
73
74 $references[$par_left . $object->getTitle() . $ref_id] = array(
75 'ref_id' => $ref_id,
76 'obj_id' => $obj_id,
77 'type' => $object->getType(),
78 'title' => $object->getTitle(),
79 'description' => $object->getDescription(),
80 'parent_ref' => $parent_ref_id,
81 'start' => $object->getType() == 'grp' ? $object->getStart() : $object->getCourseStart(),
82 'end' => $object->getType() == 'grp' ? $object->getEnd() : $object->getCourseEnd()
83 );
84 }
85 }
86 }
87
88 ksort($references);
89
90 return $references;
91 }
92
96 public function getItems($object_type_white_list = array())
97 {
98 return $this->getObjectsByMembership($object_type_white_list);
99 }
100}
An exception for terminatinating execution or to throw for unit testing.
static getInstanceByRefId($a_ref_id, $stop_on_error=true)
get an instance of an Ilias object by reference id
static _getAllReferences($a_id)
get all reference ids of object
__construct(ilObjUser $actor)
ilPDSelectedItemsBlockSelectedItemsProvider constructor.
getItems($object_type_white_list=array())
array An array of repository items, each given as a structured array
getObjectsByMembership($types=array())
Gets all objects the current user is member of.
static _getMembershipByType($a_usr_id, $a_type, $a_only_member_role=false)
get membership by type Get course or group membership
$key
Definition: croninfo.php:18
Interface ilPDSelectedItemsBlockProvider.
$type
global $DIC
Definition: saml.php:7