ILIAS  trunk Revision v11.0_alpha-1715-g7fc467680fb
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\Wiki\Settings;
22 
23 use ilDBInterface;
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 }
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
Definition: plugin.php:23