ILIAS  trunk Revision v12.0_alpha-16-g3e876e53c80
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,
31 ) {
32 }
33
34 public function save(Settings $settings): void
35 {
36 $this->db->replace('help_gt_settings', [
37 'obj_id' => ['integer', $settings->getObjId()]
38 ], [
39 'active' => ['integer', $settings->isActive() ? 1 : 0],
40 'screen_ids' => ['text', $settings->getScreenIds()],
41 'permission' => ['integer', $settings->getPermission()->value],
42 'lang' => ['text', $settings->getLanguage()]
43 ]);
44 }
45
46 public function getByObjId(int $obj_id): ?Settings
47 {
48 $set = $this->db->queryF(
49 'SELECT * FROM help_gt_settings WHERE obj_id = %s',
50 ['integer'],
51 [$obj_id]
52 );
53
54 $record = $this->db->fetchAssoc($set);
55 if (!$record) {
56 return null;
57 }
58
59 return $this->data->settings(
60 (int) $record['obj_id'],
61 (bool) $record['active'],
62 (string) $record['screen_ids'],
63 PermissionType::from((int) $record['permission']),
64 (string) $record['lang'],
65 );
66 }
67
68 public function delete(int $obj_id): void
69 {
70 $this->db->manipulateF(
71 'DELETE FROM help_gt_settings WHERE obj_id = %s',
72 ['integer'],
73 [$obj_id]
74 );
75 }
76}
__construct(protected ilDBInterface $db, protected InternalDataService $data)
Interface ilDBInterface.