ILIAS  release_6 Revision v6.24-5-g0c8bfefb3b8
All Data Structures Namespaces Files Functions Variables Modules Pages
ilBookingPreferencesDBRepository Class Reference

Booking preferences repo. More...

+ Collaboration diagram for ilBookingPreferencesDBRepository:

Public Member Functions

 __construct (ilBookingPreferencesFactory $factory, ilDBInterface $db=null)
 Constructor. More...
 
 getPreferences (int $a_pool_id)
 Get booking preferences for a pool id. More...
 
 getPreferencesOfUser (int $a_pool_id, int $a_user_id)
 Get booking preferences for a pool id. More...
 
 savePreferences (int $a_pool_id, ilBookingPreferences $preferences)
 Save all preferences of a pool. More...
 
 savePreferencesOfUser (int $a_pool_id, int $a_user_id, ilBookingPreferences $preferences)
 Save all preferences of a user for a pool. More...
 

Protected Attributes

 $db
 
 $factory
 

Detailed Description

Booking preferences repo.

Author
killi.nosp@m.ng@l.nosp@m.eifos.nosp@m..de

Definition at line 10 of file class.ilBookingPreferencesDBRepository.php.

Constructor & Destructor Documentation

◆ __construct()

ilBookingPreferencesDBRepository::__construct ( ilBookingPreferencesFactory  $factory,
ilDBInterface  $db = null 
)

Constructor.

Definition at line 25 of file class.ilBookingPreferencesDBRepository.php.

References $db, $DIC, and $factory.

26  {
27  global $DIC;
28 
29  $this->db = ($db)
30  ? $db
31  : $DIC->database();
32  $this->factory = $factory;
33  }
$DIC
Definition: xapitoken.php:46

Member Function Documentation

◆ getPreferences()

ilBookingPreferencesDBRepository::getPreferences ( int  $a_pool_id)

Get booking preferences for a pool id.

Parameters
int$a_pool_id
Returns
ilBookingPreferences

Definition at line 41 of file class.ilBookingPreferencesDBRepository.php.

References $db.

42  {
43  $db = $this->db;
44 
45  $set = $db->queryF(
46  "SELECT * FROM booking_preferences " .
47  " WHERE book_pool_id = %s ",
48  array("integer"),
49  array($a_pool_id)
50  );
51  $preferences = [];
52  while ($rec = $db->fetchAssoc($set)) {
53  if (!is_array($preferences[$rec["user_id"]]) || !in_array($rec["book_obj_id"], $preferences[$rec["user_id"]])) {
54  $preferences[$rec["user_id"]][] = $rec["book_obj_id"];
55  }
56  }
57  return $this->factory->preferences($preferences);
58  }

◆ getPreferencesOfUser()

ilBookingPreferencesDBRepository::getPreferencesOfUser ( int  $a_pool_id,
int  $a_user_id 
)

Get booking preferences for a pool id.

Parameters
int$a_pool_id
int$a_user_id
Returns
ilBookingPreferences

Definition at line 67 of file class.ilBookingPreferencesDBRepository.php.

References $db.

68  {
69  $db = $this->db;
70 
71  $set = $db->queryF(
72  "SELECT * FROM booking_preferences " .
73  " WHERE book_pool_id = %s " .
74  " AND user_id = %s ",
75  array("integer", "integer"),
76  array($a_pool_id, $a_user_id)
77  );
78  $preferences = [];
79  while ($rec = $db->fetchAssoc($set)) {
80  if (!is_array($preferences[$rec["user_id"]]) || !in_array($rec["book_obj_id"], $preferences[$rec["user_id"]])) {
81  $preferences[$rec["user_id"]][] = $rec["book_obj_id"];
82  }
83  }
84  return $this->factory->preferences($preferences);
85  }

◆ savePreferences()

ilBookingPreferencesDBRepository::savePreferences ( int  $a_pool_id,
ilBookingPreferences  $preferences 
)

Save all preferences of a pool.

Parameters
int$a_pool_id
ilBookingPreferences$

Definition at line 93 of file class.ilBookingPreferencesDBRepository.php.

References $db.

94  {
95  $db = $this->db;
96 
97  $db->manipulateF(
98  "DELETE FROM booking_preferences WHERE " .
99  " book_pool_id = %s",
100  array("integer"),
101  array($a_pool_id)
102  );
103 
104  foreach ($preferences as $user_id => $obj_ids) {
105  if (is_array($obj_ids) && $user_id > 0) {
106  foreach ($obj_ids as $obj_id) {
107  $db->insert("booking_preferences", array(
108  "book_pool_id" => array("integer", $a_pool_id),
109  "user_id" => array("integer", $user_id),
110  "book_obj_id" => array("integer", $obj_id),
111  ));
112  }
113  }
114  }
115  }

◆ savePreferencesOfUser()

ilBookingPreferencesDBRepository::savePreferencesOfUser ( int  $a_pool_id,
int  $a_user_id,
ilBookingPreferences  $preferences 
)

Save all preferences of a user for a pool.

Parameters
int$a_pool_id
int$a_user_id
ilBookingPreferences$preferences

Definition at line 124 of file class.ilBookingPreferencesDBRepository.php.

References $db, and ilBookingPreferences\getPreferences().

125  {
126  $db = $this->db;
127 
128  $db->manipulateF(
129  "DELETE FROM booking_preferences WHERE " .
130  " book_pool_id = %s" .
131  " AND user_id = %s",
132  array("integer","integer"),
133  array($a_pool_id, $a_user_id)
134  );
135 
136  foreach ($preferences->getPreferences() as $user_id => $obj_ids) {
137  if (is_array($obj_ids) && $user_id == $a_user_id) {
138  foreach ($obj_ids as $obj_id) {
139  $db->insert("booking_preferences", array(
140  "book_pool_id" => array("integer", $a_pool_id),
141  "user_id" => array("integer", $user_id),
142  "book_obj_id" => array("integer", $obj_id),
143  ));
144  }
145  }
146  }
147  }
getPreferences()
Get user preferences.
+ Here is the call graph for this function:

Field Documentation

◆ $db

ilBookingPreferencesDBRepository::$db
protected

◆ $factory

ilBookingPreferencesDBRepository::$factory
protected

Definition at line 20 of file class.ilBookingPreferencesDBRepository.php.

Referenced by __construct().


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