ILIAS  trunk Revision v11.0_alpha-1753-gb21ca8c4367
All Data Structures Namespaces Files Functions Variables Enumerations Enumerator Modules Pages
ilPDSelectedItemsBlockMembershipsObjectDatabaseRepository Class Reference
+ Inheritance diagram for ilPDSelectedItemsBlockMembershipsObjectDatabaseRepository:
+ Collaboration diagram for ilPDSelectedItemsBlockMembershipsObjectDatabaseRepository:

Public Member Functions

 __construct (ilDBInterface $db, int $recoveryFolderId)
 
 getValidObjectTypes ()
 
 getForUser (ilObjUser $user, array $objTypes, string $actorLanguageCode)
 

Private Attributes

const VALID_OBJECT_TYPES
 
ilDBInterface $db
 
int $recoveryFolderId
 

Detailed Description

Constructor & Destructor Documentation

◆ __construct()

ilPDSelectedItemsBlockMembershipsObjectDatabaseRepository::__construct ( ilDBInterface  $db,
int  $recoveryFolderId 
)

Member Function Documentation

◆ getForUser()

ilPDSelectedItemsBlockMembershipsObjectDatabaseRepository::getForUser ( ilObjUser  $user,
array  $objTypes,
string  $actorLanguageCode 
)
Parameters
string[]$objTypes

Implements ilPDSelectedItemsBlockMembershipsObjectRepository.

Definition at line 45 of file class.ilPDSelectedItemsBlockMembershipsObjectDatabaseRepository.php.

References $res, ilObject\getId(), null, ilDBConstants\T_INTEGER, and ilDBConstants\T_TEXT.

45  : Generator
46  {
47  $objTypes = array_intersect($objTypes, self::VALID_OBJECT_TYPES);
48  if ($objTypes === []) {
49  return;
50  }
51 
52  $odObjTypes = ' AND ' . $this->db->in(
53  'od.type',
54  $objTypes,
55  false,
57  );
58 
59  $res = $this->db->queryF(
60  "
61  SELECT DISTINCT
62  od.obj_id,
63  objr.ref_id,
64  (
65  CASE
66  WHEN (trans.title IS NOT NULL AND trans.title != '')
67  THEN trans.title
68  ELSE od.title
69  END
70  ) title,
71  (
72  CASE
73  WHEN (trans.description IS NOT NULL AND trans.description != '')
74  THEN trans.description
75  ELSE od.description
76  END
77  ) description,
78  od.type,
79  t.parent,
80  tp.lft parent_lft,
81  (
82  CASE
83  WHEN od.type = 'crs' THEN crs_settings.period_start
84  ELSE grp_settings.period_start
85  END
86  ) period_start,
87  (
88  CASE
89  WHEN od.type = 'crs' THEN crs_settings.period_end
90  ELSE grp_settings.period_end
91  END
92  ) period_end,
93  (
94  CASE
95  WHEN od.type = 'crs' THEN crs_settings.period_time_indication
96  ELSE grp_settings.period_time_indication
97  END
98  ) period_has_time
99  FROM rbac_ua ua
100  INNER JOIN rbac_fa fa ON fa.rol_id = ua.rol_id AND fa.assign = %s
101  INNER JOIN object_reference objr ON objr.ref_id = fa.parent
102  INNER JOIN object_data od ON od.obj_id = objr.obj_id $odObjTypes
103  INNER JOIN tree t ON t.child = objr.ref_id AND t.tree = %s AND t.parent != %s
104  INNER JOIN tree tp ON tp.child = t.parent
105  LEFT JOIN grp_settings ON grp_settings.obj_id = od.obj_id
106  LEFT JOIN crs_settings ON crs_settings.obj_id = od.obj_id
107  LEFT JOIN object_translation trans ON trans.obj_id = od.obj_id AND trans.lang_code = %s
108  WHERE ua.usr_id = %s
109  ",
111  ['y', 1, $this->recoveryFolderId, $actorLanguageCode, $user->getId()]
112  );
113 
114  while ($row = $this->db->fetchAssoc($res)) {
115  $periodStart = null;
116  if (!is_null($row['period_start'])) {
117  $periodStart = new DateTimeImmutable($row['period_start'], new DateTimeZone('UTC'));
118  }
119  $periodEnd = null;
120  if (!is_null($row['period_end'])) {
121  $periodEnd = new DateTimeImmutable($row['period_end'], new DateTimeZone('UTC'));
122  }
123 
125  (int) $row['ref_id'],
126  (int) $row['obj_id'],
127  (string) $row['type'],
128  (string) $row['title'],
129  (string) $row['description'],
130  (int) $row['parent'],
131  (int) $row['parent_lft'],
132  (bool) $row['period_has_time'],
133  $periodStart,
134  $periodEnd
135  );
136  }
137  }
$res
Definition: ltiservices.php:66
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
+ Here is the call graph for this function:

◆ getValidObjectTypes()

ilPDSelectedItemsBlockMembershipsObjectDatabaseRepository::getValidObjectTypes ( )
Returns
string[]

Definition at line 40 of file class.ilPDSelectedItemsBlockMembershipsObjectDatabaseRepository.php.

40  : array
41  {
42  return self::VALID_OBJECT_TYPES;
43  }

Field Documentation

◆ $db

ilDBInterface ilPDSelectedItemsBlockMembershipsObjectDatabaseRepository::$db
private

◆ $recoveryFolderId

int ilPDSelectedItemsBlockMembershipsObjectDatabaseRepository::$recoveryFolderId
private

◆ VALID_OBJECT_TYPES

const ilPDSelectedItemsBlockMembershipsObjectDatabaseRepository::VALID_OBJECT_TYPES
private
Initial value:
= [
'crs',
'grp',
]

Definition at line 23 of file class.ilPDSelectedItemsBlockMembershipsObjectDatabaseRepository.php.


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