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
21namespace ILIAS\Wiki\Settings;
22
24
26{
27 protected ilDBInterface $db;
28
29 public function __construct(ilDBInterface $db)
30 {
31 $this->db = $db;
32 }
33
34 public function getById(int $id): ?Settings
35 {
36 $query = "SELECT * FROM il_wiki_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_wiki_data", [
50 "startpage" => ["text", $settings->getStartPage()],
51 "short" => ["text", $settings->getShortTitle()],
52 "rating_overall" => ["integer", $settings->getRatingOverall()],
53 "rating" => ["integer", $settings->getRating()],
54 "rating_side" => ["integer", $settings->getRatingAsBlock()],
55 "rating_new" => ["integer", $settings->getRatingForNewPages()],
56 "rating_ext" => ["integer", $settings->getRatingCategories()],
57 "public_notes" => ["integer", (int) $settings->getPublicNotes()],
58 "introduction" => ["clob", $settings->getIntroduction()],
59 "page_toc" => ["integer", (int) $settings->getPageToc()],
60 "link_md_values" => ["integer", (int) $settings->getLinkMetadataValues()],
61 "empty_page_templ" => ["integer", (int) $settings->getEmptyPageTemplate()],
62 ], [
63 "id" => ["integer", $settings->getId()]
64 ]);
65 }
66
67 public function create(Settings $settings): void
68 {
69 $this->db->insert("il_wiki_data", [
70 "id" => ["integer", $settings->getId()],
71 "startpage" => ["text", $settings->getStartPage()],
72 "short" => ["text", $settings->getShortTitle()],
73 "rating_overall" => ["integer", $settings->getRatingOverall()],
74 "rating" => ["integer", $settings->getRating()],
75 "rating_side" => ["integer", $settings->getRatingAsBlock()],
76 "rating_new" => ["integer", $settings->getRatingForNewPages()],
77 "rating_ext" => ["integer", $settings->getRatingCategories()],
78 "public_notes" => ["integer", (int) $settings->getPublicNotes()],
79 "introduction" => ["clob", $settings->getIntroduction()],
80 "page_toc" => ["integer", (int) $settings->getPageToc()],
81 "link_md_values" => ["integer", (int) $settings->getLinkMetadataValues()],
82 "empty_page_templ" => ["integer", (int) $settings->getEmptyPageTemplate()],
83 ]);
84 }
85
86 protected function getSettingsFromRecord(array $rec): Settings
87 {
88 return new Settings(
89 (int) $rec['id'],
90 (string) $rec['startpage'],
91 (string) $rec['short'],
92 (bool) $rec['rating_overall'],
93 (bool) $rec['rating'],
94 (bool) $rec['rating_side'],
95 (bool) $rec['rating_new'],
96 (bool) $rec['rating_ext'],
97 (bool) $rec['public_notes'],
98 (string) $rec['introduction'],
99 (bool) $rec['page_toc'],
100 (bool) $rec['link_md_values'],
101 (bool) $rec['empty_page_templ']
102 );
103 }
104}
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
Definition: plugin.php:23
Interface ilDBInterface.