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
4include_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 {
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) {
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}
An exception for terminatinating execution or to throw for unit testing.
static _lookupContainerSetting($a_id, $a_keyword, $a_default_value=null)
Lookup a container setting.
static _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, $a_set=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.
if(!array_key_exists('StateId', $_REQUEST)) $id
$s
Definition: pwgen.php:45
global $ilDB
$this data['403_header']