ILIAS  release_5-1 Revision 5.0.0-5477-g43f3e3fab5f
class.ilObjectDataSet.php
Go to the documentation of this file.
1<?php
2/* Copyright (c) 1998-2010 ILIAS open source, Extended GPL, see docs/LICENSE */
3
4include_once("./Services/DataSet/classes/class.ilDataSet.php");
5
18{
25 public function getSupportedVersions()
26 {
27 return array("4.4.0", "5.1.0");
28 }
29
36 function getXmlNamespace($a_entity, $a_schema_version)
37 {
38 return "http://www.ilias.de/xml/Services/Object/".$a_entity;
39 }
40
47 protected function getTypes($a_entity, $a_version)
48 {
49 if ($a_entity == "transl_entry")
50 {
51 switch ($a_version)
52 {
53 case "4.4.0":
54 case "5.1.0":
55 return array(
56 "ObjId" => "integer",
57 "Title" => "text",
58 "Description" => "text",
59 "LangCode" => "text",
60 "LangDefault" => "integer");
61 }
62 }
63 if ($a_entity == "transl")
64 {
65 switch ($a_version)
66 {
67 case "4.4.0":
68 case "5.1.0":
69 return array(
70 "ObjId" => "integer",
71 "MasterLang" => "text");
72 }
73 }
74 if ($a_entity == "service_settings")
75 {
76 switch ($a_version)
77 {
78 case "5.1.0":
79 return array(
80 "ObjId" => "integer",
81 "Setting" => "text",
82 "Value" => "text");
83 }
84 }
85 }
86
93 function readData($a_entity, $a_version, $a_ids, $a_field = "")
94 {
95 global $ilDB;
96
97 if (!is_array($a_ids))
98 {
99 $a_ids = array($a_ids);
100 }
101
102 if ($a_entity == "transl_entry")
103 {
104 switch ($a_version)
105 {
106 case "4.4.0":
107 case "5.1.0":
108 $this->getDirectDataFromQuery("SELECT obj_id, title, description,".
109 " lang_code, lang_default".
110 " FROM object_translation".
111 " WHERE ".$ilDB->in("obj_id", $a_ids, false, "integer"));
112 break;
113 }
114 }
115
116 if ($a_entity == "transl")
117 {
118 switch ($a_version)
119 {
120 case "4.4.0":
121 case "5.1.0":
122 $this->getDirectDataFromQuery("SELECT obj_id, master_lang".
123 " FROM obj_content_master_lng".
124 " WHERE ".$ilDB->in("obj_id", $a_ids, false, "integer"));
125 break;
126 }
127 }
128
129 if ($a_entity == "service_settings")
130 {
131 switch ($a_version)
132 {
133 case "5.1.0":
134 include_once("./Services/Object/classes/class.ilObjectServiceSettingsGUI.php");
135 include_once("./Services/Container/classes/class.ilContainer.php");
136
137 $this->data = array();
138 foreach ($a_ids as $id)
139 {
140 // info, news, custom metadata, tags, taxonomies, auto rating (all stored in container settings)
141 $settings = array(
149 );
150 foreach ($settings as $s)
151 {
153 if ($val)
154 {
155 $this->data[] = array(
156 "ObjId" => $id,
157 "Setting" => $s,
158 "Value" => $val
159 );
160 }
161 }
162 }
163 break;
164 }
165 }
166
167 }
168
172 protected function getDependencies($a_entity, $a_version, $a_rec, $a_ids)
173 {
174 switch ($a_entity)
175 {
176 case "transl":
177 return array (
178 "transl_entry" => array("ids" => $a_rec["ObjId"])
179 );
180 }
181
182 return false;
183 }
184
185
192 function importRecord($a_entity, $a_types, $a_rec, $a_mapping, $a_schema_version)
193 {
194 switch ($a_entity)
195 {
196 case "transl_entry":
197 $new_id = $a_mapping->getMapping('Services/Container','objs',$a_rec['ObjId']);
198 if (!$new_id)
199 {
200 $new_id = $a_mapping->getMapping('Services/Object','obj',$a_rec['ObjId']);
201 }
202 if ($new_id > 0)
203 {
204 include_once("./Services/Object/classes/class.ilObjectTranslation.php");
205 $transl = ilObjectTranslation::getInstance($new_id);
206 $transl->addLanguage($a_rec["LangCode"], $a_rec["Title"], $a_rec["Description"], $a_rec["LangDefault"], true);
207 $transl->save();
208 }
209 break;
210
211 case "transl":
212 $new_id = $a_mapping->getMapping('Services/Container','objs',$a_rec['ObjId']);
213 if (!$new_id)
214 {
215 $new_id = $a_mapping->getMapping('Services/Object','obj',$a_rec['ObjId']);
216 }
217 if ($new_id > 0)
218 {
219 include_once("./Services/Object/classes/class.ilObjectTranslation.php");
220 $transl = ilObjectTranslation::getInstance($new_id);
221 $transl->setMasterLanguage($a_rec["MasterLang"]);
222 $transl->save();
223 }
224 break;
225
226 case "service_settings":
227 include_once("./Services/Object/classes/class.ilObjectServiceSettingsGUI.php");
228 include_once("./Services/Container/classes/class.ilContainer.php");
229
230 // info, news, custom metadata, tags, taxonomies, auto rating (all stored in container settings)
231 $settings = array(
239 );
240
241 $new_id = $a_mapping->getMapping('Services/Container','objs',$a_rec['ObjId']);
242 if (!$new_id)
243 {
244 $new_id = $a_mapping->getMapping('Services/Object','obj',$a_rec['ObjId']);
245 }
246 if ($new_id > 0)
247 {
248 if (in_array($a_rec["Setting"], $settings))
249 {
250 ilContainer::_writeContainerSetting($new_id, $a_rec["Setting"], $a_rec["Value"]);
251 }}
252 break;
253 }
254 }
255}
256?>
_lookupContainerSetting($a_id, $a_keyword, $a_default_value=NULL)
Lookup a container setting.
_writeContainerSetting($a_id, $a_keyword, $a_value)
A dataset contains in data in a common structure that can be shared and transformed for different pur...
getDirectDataFromQuery($a_query, $a_convert_to_leading_upper=true)
Get data from query.This is a standard procedure, all db field names are directly mapped to abstract ...
Object data set class.
getSupportedVersions()
Get supported versions.
importRecord($a_entity, $a_types, $a_rec, $a_mapping, $a_schema_version)
Import record.
readData($a_entity, $a_version, $a_ids, $a_field="")
Read data.
getTypes($a_entity, $a_version)
Get field types for entity.
getXmlNamespace($a_entity, $a_schema_version)
Get xml namespace.
getDependencies($a_entity, $a_version, $a_rec, $a_ids)
Determine the dependent sets of data.
static getInstance($a_obj_id)
Get instance.
global $ilDB