ILIAS  trunk Revision v11.0_alpha-1811-gd2d5443e411
All Data Structures Namespaces Files Functions Variables Enumerations Enumerator Modules Pages
SettingsDBRepository.php
Go to the documentation of this file.
1 <?php
2 
19 declare(strict_types=1);
20 
21 namespace ILIAS\MediaCast\Settings;
22 
23 use ilDBInterface;
25 
27 {
28  public function __construct(
29  protected ilDBInterface $db,
30  protected InternalDataService $data,
31  ) {
32  }
33 
34  public function getById(int $id): ?Settings
35  {
36  $query = "SELECT * FROM il_media_cast_data WHERE id = %s";
37  $set = $this->db->queryF($query, ["integer"], [$id]);
38  $record = $this->db->fetchAssoc($set);
39 
40  if ($record) {
41  return $this->getSettingsFromRecord($record);
42  }
43 
44  return null;
45  }
46 
47  public function update(Settings $settings): void
48  {
49  $this->db->update('il_media_cast_data', [
50  'public_files' => ['integer', (int) $settings->getPublicFiles()],
51  'downloadable' => ['integer', (int) $settings->getDownloadable()],
52  'def_access' => ['integer', $settings->getDefaultAccess()],
53  'sortmode' => ['integer', $settings->getSortMode()],
54  'viewmode' => ['text', $settings->getViewMode()],
55  'autoplaymode' => ['integer', (int) $settings->getAutoplayMode()],
56  'nr_initial_videos' => ['integer', $settings->getNumberInitialVideos()],
57  'new_items_in_lp' => ['integer', (int) $settings->getNewItemsInLearningProgress()],
58  ], [
59  'id' => ['integer', $settings->getId()],
60  ]);
61  }
62 
63  public function create(Settings $settings): void
64  {
65  $this->db->insert('il_media_cast_data', [
66  'id' => ['integer', $settings->getId()],
67  'public_files' => ['integer', (int) $settings->getPublicFiles()],
68  'downloadable' => ['integer', (int) $settings->getDownloadable()],
69  'def_access' => ['integer', $settings->getDefaultAccess()],
70  'sortmode' => ['integer', $settings->getSortMode()],
71  'viewmode' => ['text', $settings->getViewMode()],
72  'autoplaymode' => ['integer', (int) $settings->getAutoplayMode()],
73  'nr_initial_videos' => ['integer', $settings->getNumberInitialVideos()],
74  'new_items_in_lp' => ['integer', (int) $settings->getNewItemsInLearningProgress()],
75  ]);
76  }
77 
78  public function delete(int $id): void
79  {
80  $this->db->manipulateF(
81  "DELETE FROM il_media_cast_data WHERE id = %s",
82  ["integer"],
83  [$id]
84  );
85  }
86 
87  protected function getSettingsFromRecord(array $record): Settings
88  {
89  return $this->data->settings(
90  (int) $record['id'],
91  (bool) $record['public_files'],
92  (bool) $record['downloadable'],
93  (int) $record['def_access'],
94  (int) $record['sortmode'],
95  (string) $record['viewmode'],
96  (bool) $record['autoplaymode'],
97  (int) $record['nr_initial_videos'],
98  (bool) $record['new_items_in_lp']
99  );
100  }
101 }
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
Definition: plugin.php:23
__construct(protected ilDBInterface $db, protected InternalDataService $data,)