ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
class.ilHelpDataSet.php
Go to the documentation of this file.
1<?php
2
25{
26 protected \ILIAS\Help\Tooltips\TooltipsManager $help_tooltips;
27 protected \ILIAS\Help\Map\MapManager $help_map;
28
29 public function __construct()
30 {
31 global $DIC;
32
33 $help_domain = $DIC->help()->internal()->domain();
34
36
37 $this->help_map = $help_domain->map();
38 $this->help_tooltips = $help_domain->tooltips();
39 }
40
41 public function getSupportedVersions(): array
42 {
43 return array("10.0", "4.3.0");
44 }
45
46 protected function getXmlNamespace(string $a_entity, string $a_schema_version): string
47 {
48 return "https://www.ilias.de/xml/Services/Help/" . $a_entity;
49 }
50
51 protected function getTypes(string $a_entity, string $a_version): array
52 {
53 if ($a_entity === "help_map") {
54 switch ($a_version) {
55 case "4.3.0":
56 return array(
57 "Chap" => "integer",
58 "Component" => "text",
59 "ScreenId" => "text",
60 "ScreenSubId" => "text",
61 "Perm" => "text"
62 );
63 case "10.0":
64 return array(
65 "Chap" => "integer",
66 "Component" => "text",
67 "ScreenId" => "text",
68 "ScreenSubId" => "text",
69 "Perm" => "text",
70 "FullId" => "text"
71 );
72 }
73 }
74
75 if ($a_entity === "help_tooltip") {
76 switch ($a_version) {
77 case "4.3.0":
78 case "10.0":
79 return array(
80 "Id" => "integer",
81 "TtText" => "text",
82 "TtId" => "text",
83 "Comp" => "text",
84 "Lang" => "text"
85 );
86 }
87 }
88 return [];
89 }
90
91 public function readData(string $a_entity, string $a_version, array $a_ids): void
92 {
94
95 if ($a_entity === "help_map") {
96 switch ($a_version) {
97 case "4.3.0":
98 $this->getDirectDataFromQuery("SELECT chap, component, screen_id, screen_sub_id, perm " .
99 " FROM help_map " .
100 "WHERE " .
101 $ilDB->in("chap", $a_ids, false, "integer"));
102 break;
103 case "10.0":
104 $this->getDirectDataFromQuery("SELECT chap, component, screen_id, screen_sub_id, perm, full_id " .
105 " FROM help_map " .
106 "WHERE " .
107 $ilDB->in("chap", $a_ids, false, "integer"));
108 break;
109 }
110 }
111
112 if ($a_entity === "help_tooltip") {
113 switch ($a_version) {
114 case "4.3.0":
115 case "10.0":
116 $this->getDirectDataFromQuery("SELECT id, tt_text, tt_id, comp, lang FROM help_tooltip " .
117 " WHERE module_id = " . $ilDB->quote(0, "integer"));
118 break;
119 }
120 }
121 }
122
123 public function importRecord(
124 string $a_entity,
125 array $a_types,
126 array $a_rec,
127 ilImportMapping $a_mapping,
128 string $a_schema_version
129 ): void {
130 $a_rec = $this->stripTags($a_rec);
131 switch ($a_entity) {
132 case "help_map":
133
134 // without module ID we do nothing
135 $module_id = $a_mapping->getMapping('components/ILIAS/Help', 'help_module', 0);
136 $t = $a_mapping->getAllMappings();
137 if ($module_id) {
138 $new_chap = $a_mapping->getMapping(
139 'components/ILIAS/Help',
140 'help_chap',
141 $a_rec["Chap"]
142 );
143
144 // new import (5.1): get chapter from learning module import mapping
145 if ((int) $new_chap === 0) {
146 $new_chap = $a_mapping->getMapping(
147 'components/ILIAS/LearningModule',
148 'lm_tree',
149 $a_rec["Chap"]
150 );
151 }
152
153 if ($new_chap > 0) {
154 $this->help_map->saveMappingEntry(
155 $new_chap,
156 $a_rec["Component"],
157 $a_rec["ScreenId"],
158 $a_rec["ScreenSubId"],
159 $a_rec["Perm"],
160 $module_id,
161 $a_rec["FullId"] ?? ""
162 );
163 }
164 }
165 break;
166
167 case "help_tooltip":
168
169 // without module ID we do nothing
170 $module_id = $a_mapping->getMapping('components/ILIAS/Help', 'help_module', 0);
171 if ($module_id) {
172 $this->help_tooltips->addTooltip($a_rec["TtId"], $a_rec["TtText"], $module_id);
173 }
174 break;
175 }
176 }
177}
A dataset contains in data in a common structure that can be shared and transformed for different pur...
stripTags(array $rec, array $omit_keys=[])
getDirectDataFromQuery(string $a_query, bool $a_convert_to_leading_upper=true, bool $a_set=true)
Get data from query.This is a standard procedure, all db field names are directly mapped to abstract ...
ilDBInterface $db
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
getTypes(string $a_entity, string $a_version)
Get (abstract) types for (abstract) field names.
importRecord(string $a_entity, array $a_types, array $a_rec, ilImportMapping $a_mapping, string $a_schema_version)
Needs to be overwritten for import use case.
ILIAS Help Map MapManager $help_map
readData(string $a_entity, string $a_version, array $a_ids)
Read data from DB.
getXmlNamespace(string $a_entity, string $a_schema_version)
ILIAS Help Tooltips TooltipsManager $help_tooltips
getMapping(string $a_comp, string $a_entity, string $a_old_id)
__construct(Container $dic, ilPlugin $plugin)
@inheritDoc
global $DIC
Definition: shib_login.php:26