ILIAS  release_5-3 Revision v5.3.23-19-g915713cf615
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 
4 include_once("./Services/DataSet/classes/class.ilDataSet.php");
5 
18 {
25  public function getSupportedVersions()
26  {
27  return array("4.4.0", "5.1.0", "5.2.0");
28  }
29 
36  public 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  switch ($a_version) {
51  case "4.4.0":
52  case "5.1.0":
53  case "5.2.0":
54  return array(
55  "ObjId" => "integer",
56  "Title" => "text",
57  "Description" => "text",
58  "LangCode" => "text",
59  "LangDefault" => "integer");
60  }
61  }
62  if ($a_entity == "transl") {
63  switch ($a_version) {
64  case "4.4.0":
65  case "5.1.0":
66  case "5.2.0":
67  return array(
68  "ObjId" => "integer",
69  "MasterLang" => "text");
70  }
71  }
72  if ($a_entity == "service_settings") {
73  switch ($a_version) {
74  case "5.1.0":
75  case "5.2.0":
76  return array(
77  "ObjId" => "integer",
78  "Setting" => "text",
79  "Value" => "text");
80  }
81  }
82  }
83 
90  public function readData($a_entity, $a_version, $a_ids, $a_field = "")
91  {
92  $ilDB = $this->db;
93 
94  if (!is_array($a_ids)) {
95  $a_ids = array($a_ids);
96  }
97 
98  if ($a_entity == "transl_entry") {
99  switch ($a_version) {
100  case "4.4.0":
101  case "5.1.0":
102  case "5.2.0":
103  $this->getDirectDataFromQuery("SELECT obj_id, title, description," .
104  " lang_code, lang_default" .
105  " FROM object_translation" .
106  " WHERE " . $ilDB->in("obj_id", $a_ids, false, "integer"));
107  break;
108  }
109  }
110 
111  if ($a_entity == "transl") {
112  switch ($a_version) {
113  case "4.4.0":
114  case "5.1.0":
115  case "5.2.0":
116  $this->getDirectDataFromQuery("SELECT obj_id, master_lang" .
117  " FROM obj_content_master_lng" .
118  " WHERE " . $ilDB->in("obj_id", $a_ids, false, "integer"));
119  break;
120  }
121  }
122 
123  if ($a_entity == "service_settings") {
124  switch ($a_version) {
125  case "5.1.0":
126  case "5.2.0":
127  include_once("./Services/Object/classes/class.ilObjectServiceSettingsGUI.php");
128  include_once("./Services/Container/classes/class.ilContainer.php");
129 
130  $this->data = array();
131  foreach ($a_ids as $id) {
132  // info, news, custom metadata, tags, taxonomies, auto rating (all stored in container settings)
133  $settings = array(
141  );
142  if ($a_version == "5.2.0") {
144  }
145  foreach ($settings as $s) {
146  $val = ilContainer::_lookupContainerSetting($id, $s);
147  if ($val) {
148  $this->data[] = array(
149  "ObjId" => $id,
150  "Setting" => $s,
151  "Value" => $val
152  );
153  }
154  }
155  }
156  break;
157  }
158  }
159  }
160 
164  protected function getDependencies($a_entity, $a_version, $a_rec, $a_ids)
165  {
166  switch ($a_entity) {
167  case "transl":
168  return array(
169  "transl_entry" => array("ids" => $a_rec["ObjId"])
170  );
171  }
172 
173  return false;
174  }
175 
176 
183  public function importRecord($a_entity, $a_types, $a_rec, $a_mapping, $a_schema_version)
184  {
185  switch ($a_entity) {
186  case "transl_entry":
187  $new_id = $a_mapping->getMapping('Services/Container', 'objs', $a_rec['ObjId']);
188  if (!$new_id) {
189  $new_id = $a_mapping->getMapping('Services/Object', 'obj', $a_rec['ObjId']);
190  }
191  if ($new_id > 0) {
192  include_once("./Services/Object/classes/class.ilObjectTranslation.php");
193  $transl = ilObjectTranslation::getInstance($new_id);
194  $transl->addLanguage($a_rec["LangCode"], $a_rec["Title"], $a_rec["Description"], $a_rec["LangDefault"], true);
195  $transl->save();
196  }
197  break;
198 
199  case "transl":
200  $new_id = $a_mapping->getMapping('Services/Container', 'objs', $a_rec['ObjId']);
201  if (!$new_id) {
202  $new_id = $a_mapping->getMapping('Services/Object', 'obj', $a_rec['ObjId']);
203  }
204  if ($new_id > 0) {
205  include_once("./Services/Object/classes/class.ilObjectTranslation.php");
206  $transl = ilObjectTranslation::getInstance($new_id);
207  $transl->setMasterLanguage($a_rec["MasterLang"]);
208  $transl->save();
209  }
210  break;
211 
212  case "service_settings":
213  include_once("./Services/Object/classes/class.ilObjectServiceSettingsGUI.php");
214  include_once("./Services/Container/classes/class.ilContainer.php");
215 
216  // info, news, custom metadata, tags, taxonomies, auto rating (all stored in container settings)
217  $settings = array(
226  );
227  $new_id = $a_mapping->getMapping('Services/Container', 'objs', $a_rec['ObjId']);
228  if (!$new_id) {
229  $new_id = $a_mapping->getMapping('Services/Object', 'objs', $a_rec['ObjId']);
230  }
231  if (!$new_id) {
232  $new_id = $a_mapping->getMapping('Services/Object', 'obj', $a_rec['ObjId']);
233  }
234  if ($new_id > 0) {
235  if (in_array($a_rec["Setting"], $settings)) {
236  ilContainer::_writeContainerSetting($new_id, $a_rec["Setting"], $a_rec["Value"]);
237  }
238  }
239  break;
240  }
241  }
242 }
Add some data
getDirectDataFromQuery($a_query, $a_convert_to_leading_upper=true, $a_set=true)
Get data from query.This is a standard procedure, all db field names are directly mapped to abstract ...
if(!array_key_exists('StateId', $_REQUEST)) $id
Object data set class.
$s
Definition: pwgen.php:45
Create styles array
The data for the language used.
getDependencies($a_entity, $a_version, $a_rec, $a_ids)
Determine the dependent sets of data.
importRecord($a_entity, $a_types, $a_rec, $a_mapping, $a_schema_version)
Import record.
getSupportedVersions()
Get supported versions.
static getInstance($a_obj_id)
Get instance.
global $ilDB
static _writeContainerSetting($a_id, $a_keyword, $a_value)
getXmlNamespace($a_entity, $a_schema_version)
Get xml namespace.
A dataset contains in data in a common structure that can be shared and transformed for different pur...
getTypes($a_entity, $a_version)
Get field types for entity.
static _lookupContainerSetting($a_id, $a_keyword, $a_default_value=null)
Lookup a container setting.
readData($a_entity, $a_version, $a_ids, $a_field="")
Read data.