ILIAS  release_5-4 Revision v5.4.26-12-gabc799a52e6
class.ilObjectFactory.php
Go to the documentation of this file.
1<?php
2/* Copyright (c) 1998-2009 ILIAS open source, Extended GPL, see docs/LICENSE */
3
4
21{
28 public function ObjectIdExists($a_obj_id)
29 {
30 global $DIC;
31
32 $ilDB = $DIC->database();
33
34 $query = "SELECT * FROM object_data " .
35 "WHERE obj_id = " . $ilDB->quote($a_obj_id, 'integer');
36
37 $res = $ilDB->query($query);
38
39 return $res->numRows() ? true : false;
40 }
41
49 public function getObjectsForOwner($object_type, $owner_id)
50 {
51 global $DIC;
52
53 $ilDB = $DIC->database();
54
55 $query = "SELECT * FROM object_data,object_reference " .
56 "WHERE object_reference.obj_id = object_data.obj_id " .
57 " AND object_data.type=" . $ilDB->quote($object_type, 'text') .
58 " AND object_data.owner = " . $ilDB->quote($owner_id, 'integer');
59 $res = $ilDB->query($query);
60
61 $obj_ids = array();
62 while ($object_rec = $res->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) {
63 $obj_ids [] = $object_rec["obj_id"];
64 }
65
66 return $obj_ids;
67 }
68
77 public static function getInstanceByObjId($a_obj_id, $stop_on_error = true)
78 {
79 global $DIC;
80
81 $objDefinition = $DIC["objDefinition"];
82 $ilDB = $DIC->database();
83
84 // check object id
85 if (!isset($a_obj_id)) {
86 $message = "ilObjectFactory::getInstanceByObjId(): No obj_id given!";
87 if ($stop_on_error === true) {
89 }
90
91 return false;
92 }
93
94 // read object data
95 $q = "SELECT * FROM object_data " .
96 "WHERE obj_id = " . $ilDB->quote($a_obj_id, 'integer');
97 $object_set = $ilDB->query($q);
98 // check number of records
99 if ($object_set->numRows() == 0) {
100 $message = "ilObjectFactory::getInstanceByObjId(): Object with obj_id: " . $a_obj_id . " not found!";
101 if ($stop_on_error === true) {
103 }
104 return false;
105 }
106
107 $object_rec = $object_set->fetchRow(ilDBConstants::FETCHMODE_ASSOC);
108 $class_name = "ilObj" . $objDefinition->getClassName($object_rec["type"]);
109
110 // check class
111 if ($class_name == "ilObj") {
112 $message = "ilObjectFactory::getInstanceByObjId(): Not able to determine object " .
113 "class for type" . $object_rec["type"] . ".";
114 if ($stop_on_error === true) {
116 }
117 return false;
118 }
119
120 // get location
121 $location = $objDefinition->getLocation($object_rec["type"]);
122
123 // create instance
124 include_once($location . "/class." . $class_name . ".php");
125 $obj = new $class_name(0, false); // this avoids reading of data
126 $obj->setId($a_obj_id);
127 $obj->read();
128
129 return $obj;
130 }
131
132
141 public static function getInstanceByRefId($a_ref_id, $stop_on_error = true)
142 {
143 global $DIC;
144
145 $objDefinition = $DIC["objDefinition"];
146 $ilDB = $DIC->database();
147
148 // check reference id
149 if (!isset($a_ref_id)) {
150 if ($stop_on_error === true) {
151 $message = "ilObjectFactory::getInstanceByRefId(): No ref_id given!";
153 }
154
155 return false;
156 }
157
158 // read object data
159
160 $query = "SELECT * FROM object_data,object_reference " .
161 "WHERE object_reference.obj_id = object_data.obj_id " .
162 "AND object_reference.ref_id = " . $ilDB->quote($a_ref_id, 'integer');
163 $object_set = $ilDB->query($query);
164
165 // check number of records
166 if ($object_set->numRows() == 0) {
167 if ($stop_on_error === true) {
168 $message = "ilObjectFactory::getInstanceByRefId(): Object with ref_id " . $a_ref_id . " not found!";
170 }
171
172 return false;
173 }
174
175 $object_rec = $object_set->fetchRow(ilDBConstants::FETCHMODE_ASSOC);
176 $class_name = "ilObj" . $objDefinition->getClassName($object_rec["type"]);
177
178 // check class
179 if ($class_name == "ilObj") {
180 if ($stop_on_error === true) {
181 $message = "ilObjectFactory::getInstanceByRefId(): Not able to determine object " .
182 "class for type" . $object_rec["type"] . ".";
184 }
185
186 return false;
187 }
188
189 // get location
190 $location = $objDefinition->getLocation($object_rec["type"]);
191
192 // create instance
193 include_once($location . "/class." . $class_name . ".php");
194 $obj = new $class_name(0, false); // this avoids reading of data
195 $obj->setId($object_rec["obj_id"]);
196 $obj->setRefId($a_ref_id);
197 $obj->read();
198 return $obj;
199 }
200
211 public static function getTypeByRefId($a_ref_id, $stop_on_error = true)
212 {
213 global $DIC;
214
215 $ilDB = $DIC->database();
216
217 // check reference id
218 if (!isset($a_ref_id)) {
219 if ($stop_on_error === true) {
220 $message = "ilObjectFactory::getTypeByRefId(): No ref_id given!";
222 }
223
224 return false;
225 }
226
227 // read object data
228 $q = "SELECT * FROM object_data " .
229 "LEFT JOIN object_reference ON object_data.obj_id=object_reference.obj_id " .
230 "WHERE object_reference.ref_id=" . $ilDB->quote($a_ref_id, 'integer');
231 $object_set = $ilDB->query($q);
232
233 if ($object_set->numRows() == 0) {
234 if ($stop_on_error === true) {
235 $message = "ilObjectFactory::getTypeByRefId(): Object with ref_id " . $a_ref_id . " not found!";
237 }
238
239 return false;
240 }
241
242 $object_rec = $object_set->fetchRow(ilDBConstants::FETCHMODE_ASSOC);
243 return $object_rec["type"];
244 }
245
251 public static function getClassByType($a_obj_type)
252 {
253 global $DIC;
254
255 $objDefinition = $DIC["objDefinition"];
256
257 $location = $objDefinition->getLocation($a_obj_type);
258 $class_name = "ilObj" . $objDefinition->getClassName($a_obj_type);
259
260 // create instance
261 include_once($location . "/class." . $class_name . ".php");
262 return $class_name;
263 }
264}
$location
Definition: buildRTE.php:44
An exception for terminatinating execution or to throw for unit testing.
Class ilObjectFactory.
static getInstanceByObjId($a_obj_id, $stop_on_error=true)
get an instance of an Ilias object by object id
static getInstanceByRefId($a_ref_id, $stop_on_error=true)
get an instance of an Ilias object by reference id
ObjectIdExists($a_obj_id)
check if obj_id exists.
getObjectsForOwner($object_type, $owner_id)
returns all objects of an owner, filtered by type, objects are not deleted!
static getTypeByRefId($a_ref_id, $stop_on_error=true)
get object type by reference id
static getClassByType($a_obj_type)
Get class by type.
catch(Exception $e) $message
$query
global $DIC
Definition: saml.php:7
foreach($_POST as $key=> $value) $res
global $ilDB