ILIAS  release_5-1 Revision 5.0.0-5477-g43f3e3fab5f
ilObjectXMLWriter Class Reference

XML writer class. More...

+ Inheritance diagram for ilObjectXMLWriter:
+ Collaboration diagram for ilObjectXMLWriter:

Public Member Functions

 ilObjectXMLWriter ()
 constructor More...
 
 setMode ($a_mode)
 
 setHighlighter ($a_highlighter)
 
 enablePermissionCheck ($a_status)
 
 isPermissionCheckEnabled ()
 
 setUserId ($a_id)
 
 getUserId ()
 
 enableOperations ($a_status)
 
 enabledOperations ()
 
 enableReferences ($a_stat)
 
 enabledReferences ()
 
 setObjects ($objects)
 
 __getObjects ()
 
 start ()
 
 getXML ()
 
 __appendObject (&$object)
 
 __appendTimeTargets ($a_ref_id)
 Append time target settings for items inside of courses. More...
 
 __appendObjectProperties (ilObject $obj)
 Append object properties. More...
 
 __appendOperations ($a_ref_id, $a_type)
 
 __appendPath ($refid)
 
 __buildHeader ()
 
 __buildFooter ()
 
 __getAccessInfo (&$object, $ref_id)
 
- Public Member Functions inherited from ilXmlWriter
 ilXmlWriter ($version="1.0", $outEnc="utf-8", $inEnc="utf-8")
 constructor More...
 
 _ilXmlWriter ()
 destructor @access public More...
 
 xmlSetDtdDef ($dtdDef)
 Sets dtd definition. More...
 
 xmlSetStSheet ($stSheet)
 Sets stylesheet. More...
 
 xmlSetGenCmt ($genCmt)
 Sets generated comment. More...
 
 _xmlEscapeData ($data)
 Escapes reserved characters. More...
 
 xmlEncodeData ($data)
 Encodes text from input encoding into output encoding. More...
 
 xmlFormatData ($data)
 Indents text for better reading. More...
 
 xmlFormatElement ($array)
 Callback function for xmlFormatData; do not invoke directly. More...
 
 xmlHeader ()
 Writes xml header @access public. More...
 
 xmlStartTag ($tag, $attrs=NULL, $empty=FALSE, $encode=TRUE, $escape=TRUE)
 Writes a starttag. More...
 
 xmlEndTag ($tag)
 Writes an endtag. More...
 
 xmlComment ($comment)
 Writes a comment. More...
 
 xmlData ($data, $encode=TRUE, $escape=TRUE)
 Writes data. More...
 
 xmlElement ($tag, $attrs=NULL, $data=Null, $encode=TRUE, $escape=TRUE)
 Writes a basic element (no children, just textual content) More...
 
 xmlDumpFile ($file, $format=TRUE)
 Dumps xml document from memory into a file. More...
 
 xmlDumpMem ($format=TRUE)
 Returns xml document from memory. More...
 
 appendXML ($a_str)
 append xml string to document More...
 
 xmlClear ()
 clears xmlStr @access public More...
 

Static Public Member Functions

static appendPathToObject ($writer, $refid)
 

Data Fields

const MODE_SEARCH_RESULT = 1
 
const TIMING_DEACTIVATED = 0
 
const TIMING_TEMPORARILY_AVAILABLE = 1
 
const TIMING_PRESETTING = 2
 
const TIMING_VISIBILITY_OFF = 0
 
const TIMING_VISIBILITY_ON = 1
 
 $ilias
 
 $xml
 
 $enable_operations = false
 
 $objects = array()
 
 $user_id = 0
 
- Data Fields inherited from ilXmlWriter
 $xmlStr
 
 $version
 
 $outEnc
 
 $inEnc
 
 $dtdDef = ""
 
 $stSheet = ""
 
 $genCmt = "Generated by ILIAS XmlWriter"
 

Protected Attributes

 $check_permission = false
 

Private Attributes

 $mode = 0
 
 $highlighter = null
 
 $enable_references = true
 

Detailed Description

XML writer class.

Class to simplify manual writing of xml documents. It only supports writing xml sequentially, because the xml document is saved in a string with no additional structure information. The author is responsible for well-formedness and validity of the xml document.

Author
Stefan Meyer meyer.nosp@m.@lei.nosp@m.fos.c.nosp@m.om
Version
$Id$

Definition at line 19 of file class.ilObjectXMLWriter.php.

Member Function Documentation

◆ __appendObject()

ilObjectXMLWriter::__appendObject ( $object)

Definition at line 162 of file class.ilObjectXMLWriter.php.

163 {
164
165 global $tree, $rbacreview;
166
167 $id = $object->getId();
168 if ($object->getType() == "role" && $rbacreview->isRoleDeleted($id))
169 {
170 return;
171 }
172
173 $attrs = array('type' => $object->getType(),
174 'obj_id' => $id);
175
176 $this->xmlStartTag('Object',$attrs);
177 //$this->xmlElement('Title',null,$object->getTitle());
178 //$this->xmlElement('Description',null,$object->getDescription());
179
180 // begin-patch fm
181 if($this->mode == self::MODE_SEARCH_RESULT)
182 {
183 $title = $object->getTitle();
184 if($this->highlighter->getTitle($object->getId(),0))
185 {
186 $title = $this->highlighter->getTitle($object->getId(),0);
187 }
188 $description = $object->getDescription();
189 if($this->highlighter->getDescription($object->getId(),0))
190 {
191 $description = $this->highlighter->getDescription($object->getId(),0);
192 }
193
194 // Currently disabled
195 #$this->xmlElement('Title', null, $title);
196 #$this->xmlElement('Description',null,$description);
197 #$this->xmlElement('SearchResultContent', null, $this->highlighter->getContent($object->getId(),0));
198
199 $this->xmlElement('Title',null,$object->getTitle());
200 $this->xmlElement('Description',null,$object->getDescription());
201 }
202 else
203 {
204 $this->xmlElement('Title',null,$object->getTitle());
205 $this->xmlElement('Description',null,$object->getDescription());
206 }
207 // end-patch fm
208
209 $this->xmlElement('Owner',null,$object->getOwner());
210 $this->xmlElement('CreateDate',null,$object->getCreateDate());
211 $this->xmlElement('LastUpdate',null,$object->getLastUpdateDate());
212 $this->xmlElement('ImportId',null,$object->getImportId());
213
214 $this->__appendObjectProperties($object);
215
216 // begin-patch filemanager
217 if($this->enabledReferences())
218 {
219 $refs = ilObject::_getAllReferences($object->getId());
220 }
221 else
222 {
223 $refs = array($object->getRefId());
224 }
225
226 foreach($refs as $ref_id)
227 // end-patch filemanager
228 {
229 if (!$tree->isInTree($ref_id))
230 continue;
231
232 $attr = array('ref_id' => $ref_id, 'parent_id'=> $tree->getParentId(intval($ref_id)));
233 $attr['accessInfo'] = $this->__getAccessInfo($object,$ref_id);
234 $this->xmlStartTag('References',$attr);
235 $this->__appendTimeTargets($ref_id);
236 $this->__appendOperations($ref_id,$object->getType());
237 $this->__appendPath ($ref_id);
238 $this->xmlEndTag('References');
239 }
240 $this->xmlEndTag('Object');
241 }
__appendOperations($a_ref_id, $a_type)
__getAccessInfo(&$object, $ref_id)
__appendTimeTargets($a_ref_id)
Append time target settings for items inside of courses.
__appendObjectProperties(ilObject $obj)
Append object properties.
static _getAllReferences($a_id)
get all reference ids of object
xmlEndTag($tag)
Writes an endtag.
xmlStartTag($tag, $attrs=NULL, $empty=FALSE, $encode=TRUE, $escape=TRUE)
Writes a starttag.
xmlElement($tag, $attrs=NULL, $data=Null, $encode=TRUE, $escape=TRUE)
Writes a basic element (no children, just textual content)
$ref_id
Definition: sahs_server.php:39

References $ref_id, __appendObjectProperties(), __appendOperations(), __appendPath(), __appendTimeTargets(), __getAccessInfo(), ilObject\_getAllReferences(), enabledReferences(), ilXmlWriter\xmlElement(), ilXmlWriter\xmlEndTag(), and ilXmlWriter\xmlStartTag().

Referenced by start().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ __appendObjectProperties()

ilObjectXMLWriter::__appendObjectProperties ( ilObject  $obj)

Append object properties.

Parameters
ilObject$obj

Definition at line 313 of file class.ilObjectXMLWriter.php.

314 {
315 switch($obj->getType()) {
316
317 case 'file':
318 include_once './Modules/File/classes/class.ilObjFileAccess.php';
320 $extension = ilObjFileAccess::_lookupSuffix($obj->getId());
321 $this->xmlStartTag('Properties');
322 $this->xmlElement("Property",array('name' => 'fileSize'),(int) $size);
323 $this->xmlElement("Property",array('name' => 'fileExtension'),(string) $extension);
324 // begin-patch fm
325 $this->xmlElement('Property',array('name' => 'fileVersion'), (string) ilObjFileAccess::_lookupVersion($obj->getId()));
326 // end-patch fm
327 $this->xmlEndTag('Properties');
328 break;
329 }
330
331 }
$size
Definition: RandomTest.php:79
static _lookupFileSize($a_id)
Quickly looks up the file size from the database and returns the number of bytes.
_lookupVersion($a_id)
lookup version
_lookupSuffix($a_id)
lookup suffix
getType()
get object type @access public
getId()
get object id @access public

References $size, ilObjFileAccess\_lookupFileSize(), ilObjFileAccess\_lookupSuffix(), ilObjFileAccess\_lookupVersion(), ilObject\getId(), ilObject\getType(), ilXmlWriter\xmlElement(), ilXmlWriter\xmlEndTag(), and ilXmlWriter\xmlStartTag().

Referenced by __appendObject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ __appendOperations()

ilObjectXMLWriter::__appendOperations (   $a_ref_id,
  $a_type 
)

Definition at line 334 of file class.ilObjectXMLWriter.php.

335 {
336 global $ilAccess,$rbacreview,$objDefinition;
337
338 if($this->enabledOperations())
339 {
340 $ops = $rbacreview->getOperationsOnTypeString($a_type);
341 if (is_array($ops))
342 {
343 foreach($ops as $ops_id)
344 {
345 $operation = $rbacreview->getOperation($ops_id);
346
347 if(count ($operation) && $ilAccess->checkAccessOfUser($this->getUserId(),$operation['operation'],'view',$a_ref_id))
348 {
349 $this->xmlElement('Operation',null,$operation['operation']);
350 }
351 }
352 }
353
354 // Create operations
355 // Get creatable objects
356 $objects = $objDefinition->getCreatableSubObjects($a_type);
357 $ops_ids = ilRbacReview::lookupCreateOperationIds(array_keys($objects));
358 $creation_operations = array();
359 foreach($objects as $type => $info)
360 {
361 $ops_id = $ops_ids[$type];
362
363 if(!$ops_id)
364 {
365 continue;
366 }
367
368 $operation = $rbacreview->getOperation($ops_id);
369
370 if(count ($operation) && $ilAccess->checkAccessOfUser($this->getUserId(),$operation['operation'],'view',$a_ref_id))
371 {
372 $this->xmlElement('Operation',null,$operation['operation']);
373 }
374 }
375 }
376 return true;
377 }
static lookupCreateOperationIds($a_type_arr)
Lookup operation ids.
$info
Definition: example_052.php:80

References $info, $objects, enabledOperations(), ilRbacReview\lookupCreateOperationIds(), and ilXmlWriter\xmlElement().

Referenced by __appendObject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ __appendPath()

ilObjectXMLWriter::__appendPath (   $refid)

Definition at line 380 of file class.ilObjectXMLWriter.php.

380 {
382 }
static appendPathToObject($writer, $refid)

References appendPathToObject().

Referenced by __appendObject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ __appendTimeTargets()

ilObjectXMLWriter::__appendTimeTargets (   $a_ref_id)

Append time target settings for items inside of courses.

Parameters
int$ref_idReference id of object
Returns
void

Definition at line 248 of file class.ilObjectXMLWriter.php.

249 {
250 global $tree;
251
252 if(!$tree->checkForParentType($a_ref_id,'crs')) {
253 return;
254 }
255 include_once('./Services/Object/classes/class.ilObjectActivation.php');
256 $time_targets = ilObjectActivation::getItem($a_ref_id);
257
258 switch($time_targets['timing_type'])
259 {
262 break;
265 break;
268 break;
269 default:
271 break;
272 }
273
274 $this->xmlStartTag('TimeTarget',array('type' => $type));
275
276# if($type == self::TIMING_TEMPORARILY_AVAILABLE)
277 {
278 $vis = $time_targets['visible'] == 0 ? self::TIMING_VISIBILITY_OFF : self::TIMING_VISIBILITY_ON;
279 $this->xmlElement('Timing',
280 array('starting_time' => $time_targets['timing_start'],
281 'ending_time' => $time_targets['timing_end'],
282 'visibility' => $vis));
283
284 }
285# if($type == self::TIMING_PRESETTING)
286 {
287 if($time_targets['changeable'] or 1)
288 {
289 $this->xmlElement('Suggestion',
290 array('starting_time' => $time_targets['suggestion_start'],
291 'ending_time' => $time_targets['suggestion_end'],
292 'changeable' => $time_targets['changeable'],
293 'earliest_start' => $time_targets['earliest_start'],
294 'latest_end' => $time_targets['latest_end']));
295 }
296 else
297 {
298 $this->xmlElement('Suggestion',
299 array('starting_time' => $time_targets['suggestion_start'],
300 'ending_time' => $time_targets['suggestion_end'],
301 'changeable' => $time_targets['changeable']));
302 }
303 }
304 $this->xmlEndTag('TimeTarget');
305 return;
306 }
static getItem($a_ref_id)
Get item data.

References ilObjectActivation\getItem(), TIMING_DEACTIVATED, TIMING_PRESETTING, TIMING_TEMPORARILY_AVAILABLE, TIMING_VISIBILITY_OFF, TIMING_VISIBILITY_ON, ilObjectActivation\TIMINGS_ACTIVATION, ilObjectActivation\TIMINGS_DEACTIVATED, ilObjectActivation\TIMINGS_PRESETTING, ilXmlWriter\xmlElement(), ilXmlWriter\xmlEndTag(), and ilXmlWriter\xmlStartTag().

Referenced by __appendObject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ __buildFooter()

ilObjectXMLWriter::__buildFooter ( )

Definition at line 393 of file class.ilObjectXMLWriter.php.

394 {
395 $this->xmlEndTag('Objects');
396 }

References ilXmlWriter\xmlEndTag().

Referenced by start().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ __buildHeader()

ilObjectXMLWriter::__buildHeader ( )

Definition at line 384 of file class.ilObjectXMLWriter.php.

385 {
386 $this->xmlSetDtdDef("<!DOCTYPE Objects PUBLIC \"-//ILIAS//DTD ILIAS Repositoryobjects//EN\" \"".ILIAS_HTTP_PATH."/xml/ilias_object_4_0.dtd\">");
387 $this->xmlSetGenCmt("Export of ILIAS objects");
388 $this->xmlHeader();
389 $this->xmlStartTag("Objects");
390 return true;
391 }
xmlSetGenCmt($genCmt)
Sets generated comment.
xmlHeader()
Writes xml header @access public.
xmlSetDtdDef($dtdDef)
Sets dtd definition.

References ilXmlWriter\xmlHeader(), ilXmlWriter\xmlSetDtdDef(), ilXmlWriter\xmlSetGenCmt(), and ilXmlWriter\xmlStartTag().

Referenced by start().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ __getAccessInfo()

ilObjectXMLWriter::__getAccessInfo ( $object,
  $ref_id 
)

Definition at line 398 of file class.ilObjectXMLWriter.php.

399 {
400 global $ilAccess;
401
402 include_once 'Services/AccessControl/classes/class.ilAccessHandler.php';
403
404 $ilAccess->checkAccessOfUser($this->getUserId(),'read','view',$ref_id,$object->getType(),$object->getId());
405
406 if(!$info = $ilAccess->getInfo())
407 {
408 return 'granted';
409 }
410 else
411 {
412 return $info[0]['type'];
413 }
414 }

References $info, $ref_id, and getUserId().

Referenced by __appendObject().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ __getObjects()

ilObjectXMLWriter::__getObjects ( )

Definition at line 128 of file class.ilObjectXMLWriter.php.

129 {
130 return $this->objects ? $this->objects : array();
131 }

Referenced by start().

+ Here is the caller graph for this function:

◆ appendPathToObject()

static ilObjectXMLWriter::appendPathToObject (   $writer,
  $refid 
)
static

Definition at line 417 of file class.ilObjectXMLWriter.php.

417 {
418 global $tree, $lng;
419 $items = $tree->getPathFull($refid);
420 $writer->xmlStartTag("Path");
421 foreach ($items as $item) {
422 if ($item["ref_id"] == $refid)
423 continue;
424 if ($item["type"] == "root")
425 {
426 $item["title"] = $lng->txt("repository");
427 }
428 $writer->xmlElement("Element", array("ref_id" => $item["ref_id"], "type" => $item["type"]), $item["title"]);
429 }
430 $writer->xmlEndTag("Path");
431 }
global $lng
Definition: privfeed.php:40

References $lng.

Referenced by __appendPath(), and ilSoapRoleObjectXMLWriter\start().

+ Here is the caller graph for this function:

◆ enabledOperations()

ilObjectXMLWriter::enabledOperations ( )

Definition at line 105 of file class.ilObjectXMLWriter.php.

References $enable_operations.

Referenced by __appendOperations().

+ Here is the caller graph for this function:

◆ enabledReferences()

ilObjectXMLWriter::enabledReferences ( )

Definition at line 116 of file class.ilObjectXMLWriter.php.

References $enable_references.

Referenced by __appendObject().

+ Here is the caller graph for this function:

◆ enableOperations()

ilObjectXMLWriter::enableOperations (   $a_status)

Definition at line 98 of file class.ilObjectXMLWriter.php.

99 {
100 $this->enable_operations = $a_status;
101
102 return true;
103 }

◆ enablePermissionCheck()

ilObjectXMLWriter::enablePermissionCheck (   $a_status)

Definition at line 79 of file class.ilObjectXMLWriter.php.

80 {
81 $this->check_permission = $a_status;
82 }

◆ enableReferences()

ilObjectXMLWriter::enableReferences (   $a_stat)

Definition at line 111 of file class.ilObjectXMLWriter.php.

112 {
113 $this->enable_references = $a_stat;
114 }

◆ getUserId()

ilObjectXMLWriter::getUserId ( )

Definition at line 93 of file class.ilObjectXMLWriter.php.

References $user_id.

Referenced by __getAccessInfo().

+ Here is the caller graph for this function:

◆ getXML()

ilObjectXMLWriter::getXML ( )

Definition at line 155 of file class.ilObjectXMLWriter.php.

156 {
157 return $this->xmlDumpMem(false);
158 }
xmlDumpMem($format=TRUE)
Returns xml document from memory.

References ilXmlWriter\xmlDumpMem().

+ Here is the call graph for this function:

◆ ilObjectXMLWriter()

ilObjectXMLWriter::ilObjectXMLWriter ( )

constructor

Parameters
stringxml version
stringoutput encoding
stringinput encoding @access public

Definition at line 56 of file class.ilObjectXMLWriter.php.

57 {
58 global $ilias,$ilUser;
59
60 parent::ilXmlWriter();
61
62 $this->ilias =& $ilias;
63 $this->user_id = $ilUser->getId();
64 }
redirection script todo: (a better solution should control the processing via a xml file)
global $ilUser
Definition: imgupload.php:15

References $ilias, and $ilUser.

◆ isPermissionCheckEnabled()

ilObjectXMLWriter::isPermissionCheckEnabled ( )

Definition at line 84 of file class.ilObjectXMLWriter.php.

References $check_permission.

Referenced by start().

+ Here is the caller graph for this function:

◆ setHighlighter()

ilObjectXMLWriter::setHighlighter (   $a_highlighter)

Definition at line 72 of file class.ilObjectXMLWriter.php.

73 {
74 $this->highlighter = $a_highlighter;
75 }

◆ setMode()

ilObjectXMLWriter::setMode (   $a_mode)

Definition at line 67 of file class.ilObjectXMLWriter.php.

68 {
69 $this->mode = $a_mode;
70 }

◆ setObjects()

ilObjectXMLWriter::setObjects (   $objects)

Definition at line 123 of file class.ilObjectXMLWriter.php.

124 {
125 $this->objects = $objects;
126 }

References $objects.

◆ setUserId()

ilObjectXMLWriter::setUserId (   $a_id)

Definition at line 89 of file class.ilObjectXMLWriter.php.

90 {
91 $this->user_id = $a_id;
92 }

◆ start()

ilObjectXMLWriter::start ( )

Definition at line 133 of file class.ilObjectXMLWriter.php.

134 {
135 global $ilAccess,$objDefinition;
136
137 $this->__buildHeader();
138
139 foreach($this->__getObjects() as $object)
140 {
141 if(method_exists($object, 'getType') and $objDefinition->isRBACObject($object->getType()))
142 {
143 if($this->isPermissionCheckEnabled() and !$ilAccess->checkAccessOfUser($this->getUserId(),'read','',$object->getRefId()))
144 {
145 continue;
146 }
147 }
148 $this->__appendObject($object);
149 }
150 $this->__buildFooter();
151
152 return true;
153 }

References __appendObject(), __buildFooter(), __buildHeader(), __getObjects(), and isPermissionCheckEnabled().

+ Here is the call graph for this function:

Field Documentation

◆ $check_permission

ilObjectXMLWriter::$check_permission = false
protected

Definition at line 47 of file class.ilObjectXMLWriter.php.

Referenced by isPermissionCheckEnabled().

◆ $enable_operations

ilObjectXMLWriter::$enable_operations = false

Definition at line 40 of file class.ilObjectXMLWriter.php.

Referenced by enabledOperations().

◆ $enable_references

ilObjectXMLWriter::$enable_references = true
private

Definition at line 42 of file class.ilObjectXMLWriter.php.

Referenced by enabledReferences().

◆ $highlighter

ilObjectXMLWriter::$highlighter = null
private

Definition at line 25 of file class.ilObjectXMLWriter.php.

◆ $ilias

ilObjectXMLWriter::$ilias

Definition at line 37 of file class.ilObjectXMLWriter.php.

Referenced by ilObjectXMLWriter().

◆ $mode

ilObjectXMLWriter::$mode = 0
private

Definition at line 24 of file class.ilObjectXMLWriter.php.

◆ $objects

ilObjectXMLWriter::$objects = array()

Definition at line 44 of file class.ilObjectXMLWriter.php.

Referenced by __appendOperations(), and setObjects().

◆ $user_id

ilObjectXMLWriter::$user_id = 0

Definition at line 45 of file class.ilObjectXMLWriter.php.

Referenced by getUserId().

◆ $xml

ilObjectXMLWriter::$xml

Definition at line 39 of file class.ilObjectXMLWriter.php.

◆ MODE_SEARCH_RESULT

const ilObjectXMLWriter::MODE_SEARCH_RESULT = 1

Definition at line 22 of file class.ilObjectXMLWriter.php.

◆ TIMING_DEACTIVATED

const ilObjectXMLWriter::TIMING_DEACTIVATED = 0

◆ TIMING_PRESETTING

const ilObjectXMLWriter::TIMING_PRESETTING = 2

◆ TIMING_TEMPORARILY_AVAILABLE

const ilObjectXMLWriter::TIMING_TEMPORARILY_AVAILABLE = 1

◆ TIMING_VISIBILITY_OFF

const ilObjectXMLWriter::TIMING_VISIBILITY_OFF = 0

Definition at line 33 of file class.ilObjectXMLWriter.php.

Referenced by __appendTimeTargets().

◆ TIMING_VISIBILITY_ON

const ilObjectXMLWriter::TIMING_VISIBILITY_ON = 1

Definition at line 34 of file class.ilObjectXMLWriter.php.

Referenced by __appendTimeTargets().


The documentation for this class was generated from the following file: