ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
SettingsDBRepository.php
Go to the documentation of this file.
1<?php
2
19declare(strict_types=1);
20
22
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}
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
Definition: plugin.php:23
__construct(protected ilDBInterface $db, protected InternalDataService $data,)
Interface ilDBInterface.