19declare(strict_types=1);
50 $objTypes = array_intersect($objTypes, self::VALID_OBJECT_TYPES);
51 if ($objTypes === []) {
55 $odObjTypes =
' AND ' . $this->db->in(
62 $res = $this->db->queryF(
69 WHEN (trans.title IS NOT NULL AND trans.title != '')
76 WHEN (trans.description IS NOT NULL AND trans.description != '')
77 THEN trans.description
86 WHEN od.type = 'crs' THEN crs_settings.period_start
87 ELSE grp_settings.period_start
92 WHEN od.type = 'crs' THEN crs_settings.period_end
93 ELSE grp_settings.period_end
98 WHEN od.type = 'crs' THEN crs_settings.period_time_indication
99 ELSE grp_settings.period_time_indication
103 INNER JOIN rbac_fa fa ON fa.rol_id = ua.rol_id AND fa.assign = %s
104 INNER JOIN object_reference objr ON objr.ref_id = fa.parent
105 INNER JOIN object_data od ON od.obj_id = objr.obj_id $odObjTypes
106 INNER JOIN tree t ON t.child = objr.ref_id AND t.tree = %s AND t.parent != %s
107 INNER JOIN tree tp ON tp.child = t.parent
108 LEFT JOIN grp_settings ON grp_settings.obj_id = od.obj_id
109 LEFT JOIN crs_settings ON crs_settings.obj_id = od.obj_id
110 LEFT JOIN object_translation trans ON trans.obj_id = od.obj_id AND trans.lang_code = %s
113 [
'text',
'integer',
'integer',
'text',
'integer'],
114 [
'y', 1, $this->recoveryFolderId, $actorLanguageCode, $user->
getId()]
117 while ($row = $this->db->fetchAssoc(
$res)) {
119 if (!is_null($row[
'period_start'])) {
120 $periodStart =
new DateTimeImmutable($row[
'period_start'],
new DateTimeZone(
'UTC'));
123 if (!is_null($row[
'period_end'])) {
124 $periodEnd =
new DateTimeImmutable($row[
'period_end'],
new DateTimeZone(
'UTC'));
128 (
int) $row[
'ref_id'],
129 (
int) $row[
'obj_id'],
130 (
string) $row[
'type'],
131 (
string) $row[
'title'],
132 (
string) $row[
'description'],
133 (
int) $row[
'parent'],
134 (
int) $row[
'parent_lft'],
135 (
bool) $row[
'period_has_time'],
__construct(ilDBInterface $db, int $recoveryFolderId)
getForUser(ilObjUser $user, array $objTypes, string $actorLanguageCode)
@inheritDoc