ILIAS  trunk Revision v13.0_alpha-62-g3b72d83f2e5
ILIAS\PersonalWorkspace\WorkspaceShareRetrieval Class Reference
+ Inheritance diagram for ILIAS\PersonalWorkspace\WorkspaceShareRetrieval:
+ Collaboration diagram for ILIAS\PersonalWorkspace\WorkspaceShareRetrieval:

Public Member Functions

 __construct (protected \ilWorkspaceAccessHandler|\ilPortfolioAccessHandler $handler, protected bool $portfolio_mode, protected array $crs_ids, protected array $grp_ids, protected \ilLanguage $lng)
 
 getData (array $fields, ?Range $range=null, ?Order $order=null, array $filter=[], array $parameters=[])
 
 count (array $filter=[], array $parameters=[])
 
 isFieldNumeric (string $field)
 
 getData (array $fields, ?Range $range=null, ?Order $order=null, array $filter=[], array $parameters=[])
 
 count (array $filter, array $parameters)
 
 isFieldNumeric (string $field)
 

Protected Member Functions

 collectData (array $filter)
 
 normalizeFilter (array $filter)
 

Detailed Description

Definition at line 28 of file WorkspaceShareRetrieval.php.

Constructor & Destructor Documentation

◆ __construct()

ILIAS\PersonalWorkspace\WorkspaceShareRetrieval::__construct ( protected \ilWorkspaceAccessHandler|\ilPortfolioAccessHandler  $handler,
protected bool  $portfolio_mode,
protected array  $crs_ids,
protected array  $grp_ids,
protected \ilLanguage  $lng 
)

Definition at line 32 of file WorkspaceShareRetrieval.php.

38 {
39 }

Member Function Documentation

◆ collectData()

ILIAS\PersonalWorkspace\WorkspaceShareRetrieval::collectData ( array  $filter)
protected

Definition at line 73 of file WorkspaceShareRetrieval.php.

73 : array
74 {
75 $filter = $this->normalizeFilter($filter);
76 $objects = $this->handler->findSharedObjects($filter, $this->crs_ids, $this->grp_ids);
77 if (!is_array($objects)) {
78 return [];
79 }
80 $user_data = [];
81 $data = [];
82
83 foreach ($objects as $wsp_id => $item) {
84 $owner_id = (int) $item["owner"];
85 if (!isset($user_data[$owner_id])) {
86 $user_data[$owner_id] = \ilObjUser::_lookupName($owner_id);
87 }
88 if (($user_data[$owner_id]["login"] ?? "") === "") {
89 continue;
90 }
91
92 $type = (string) ($item["type"] ?? "");
93 $data[] = [
94 "id" => $this->portfolio_mode
95 ? $owner_id . "_" . (int) $item["obj_id"]
96 : (string) $wsp_id,
97 "wsp_id" => (int) $wsp_id,
98 "obj_id" => (int) $item["obj_id"],
99 "type" => $type,
100 "obj_type" => $this->lng->txt("wsp_type_" . $type),
101 "title" => (string) $item["title"],
102 "owner_id" => $owner_id,
103 "lastname" => (string) $user_data[$owner_id]["lastname"],
104 "firstname" => (string) $user_data[$owner_id]["firstname"],
105 "login" => (string) $user_data[$owner_id]["login"],
106 "acl_type" => $item["acl_type"],
107 "acl_date" => (int) $item["acl_date"]
108 ];
109 }
110
111 return $data;
112 }
static _lookupName(int $a_user_id)
$data
Definition: storeScorm.php:45

References $data, ilObjUser\_lookupName(), ILIAS\Repository\int(), and ILIAS\Repository\lng().

+ Here is the call graph for this function:

◆ count()

ILIAS\PersonalWorkspace\WorkspaceShareRetrieval::count ( array  $filter = [],
array  $parameters = [] 
)

Implements ILIAS\Repository\RetrievalInterface.

Definition at line 61 of file WorkspaceShareRetrieval.php.

64 : int {
65 return count($this->collectData($filter));
66 }
count(array $filter=[], array $parameters=[])

◆ getData()

ILIAS\PersonalWorkspace\WorkspaceShareRetrieval::getData ( array  $fields,
?Range  $range = null,
?Order  $order = null,
array  $filter = [],
array  $parameters = [] 
)

Implements ILIAS\Repository\RetrievalInterface.

Definition at line 41 of file WorkspaceShareRetrieval.php.

47 : \Generator {
48 $data = $this->collectData($filter);
49 if ($order === null) {
50 $data = array_reverse($data);
51 } else {
52 $data = $this->applyOrder($data, $order);
53 }
54 $data = $this->applyRange($data, $range);
55
56 foreach ($data as $row) {
57 yield $row;
58 }
59 }

References $data.

◆ isFieldNumeric()

ILIAS\PersonalWorkspace\WorkspaceShareRetrieval::isFieldNumeric ( string  $field)

Implements ILIAS\Repository\RetrievalInterface.

Definition at line 68 of file WorkspaceShareRetrieval.php.

68 : bool
69 {
70 return in_array($field, ["wsp_id", "obj_id", "owner_id", "acl_date"], true);
71 }

◆ normalizeFilter()

ILIAS\PersonalWorkspace\WorkspaceShareRetrieval::normalizeFilter ( array  $filter)
protected

Definition at line 114 of file WorkspaceShareRetrieval.php.

114 : array
115 {
116 if (isset($filter["acl_date"]) && is_array($filter["acl_date"])) {
117 $start = $filter["acl_date"]["start"] ?? null;
118 $filter["acl_date"] = $start instanceof \DateTimeInterface
119 ? new \ilDateTime($start->format("Y-m-d"), IL_CAL_DATE)
120 : null;
121 }
122
123 return $filter;
124 }
const IL_CAL_DATE

References IL_CAL_DATE.


The documentation for this class was generated from the following file: