ILIAS  release_9 Revision v9.13-25-g2c18ec4c24f
class.ObjectsDBRepository.php
Go to the documentation of this file.
1 <?php
2 
20 
26 {
27  protected const NR_OF_COLORS = 9;
28  protected static $color_number = [];
29  protected static $pool_objects = [];
30  protected \ilDBInterface $db;
31  protected static array $raw_data = [];
32  protected static array $pool_loaded = [];
33 
34  public function __construct(
35  \ilDBInterface $db
36  ) {
37  $this->db = $db;
38  }
39 
40  public function loadDataOfPool(int $pool_id) : void
41  {
42  $db = $this->db;
43 
44  if (isset(self::$pool_loaded[$pool_id]) && self::$pool_loaded[$pool_id]) {
45  return;
46  }
47 
48  $set = $db->queryF(
49  "SELECT * FROM booking_object " .
50  " WHERE pool_id = %s ORDER BY title ASC, booking_object_id ASC",
51  ["integer"],
52  [$pool_id]
53  );
54  self::$pool_objects[$pool_id] = [];
55  $cnt = 0;
56  while ($rec = $db->fetchAssoc($set)) {
57  self::$raw_data[$rec["booking_object_id"]] = $rec;
58  self::$color_number[$rec["booking_object_id"]] = ($cnt % self::NR_OF_COLORS) + 1;
59  self::$pool_objects[$pool_id][] = $rec;
60  $cnt++;
61  }
62  self::$pool_loaded[$pool_id] = true;
63  }
64 
65  public function getNrOfItemsForObject(int $book_obj_id) : int
66  {
67  if (!isset(self::$raw_data[$book_obj_id])) {
68  throw new \ilBookingPoolException("Data for booking object $book_obj_id not loaded.");
69  }
70  return (int) self::$raw_data[$book_obj_id]["nr_of_items"];
71  }
72 
73  public function getColorNrForObject(int $book_obj_id) : int
74  {
75  if (!isset(self::$raw_data[$book_obj_id])) {
76  throw new \ilBookingPoolException("Data for booking object $book_obj_id not loaded.");
77  }
78  return (int) self::$color_number[$book_obj_id];
79  }
80 
81  public function getObjectDataForPool(
82  int $pool_id
83  ) : array {
84  $this->loadDataOfPool($pool_id);
85  return self::$pool_objects[$pool_id] ?? [];
86  }
87 
88 }
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
queryF(string $query, array $types, array $values)