XML writer class. More...
Public Member Functions | |
ilObjectXMLWriter () | |
constructor | |
setUserId ($a_id) | |
getUserId () | |
enableOperations ($a_status) | |
enabledOperations () | |
setObjects ($objects) | |
__getObjects () | |
start () | |
getXML () | |
__appendObject (&$object) | |
__appendOperations ($a_ref_id, $a_type) | |
__buildHeader () | |
__buildFooter () | |
__getAccessInfo (&$object, $ref_id) | |
Data Fields | |
$ilias | |
$xml | |
$enable_operations = false | |
$objects = array() | |
$user_id = 0 |
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.
Definition at line 40 of file class.ilObjectXMLWriter.php.
ilObjectXMLWriter::__appendObject | ( | &$ | object | ) |
Definition at line 122 of file class.ilObjectXMLWriter.php.
References $id, $ref_id, $tree, __appendOperations(), __getAccessInfo(), ilObject::_getAllReferences(), ilXmlWriter::xmlElement(), ilXmlWriter::xmlEndTag(), and ilXmlWriter::xmlStartTag().
Referenced by start().
{ global $tree; $id = $object->getId(); $attrs = array('type' => $object->getType(), 'obj_id' => $id); $this->xmlStartTag('Object',$attrs); $this->xmlElement('Title',null,$object->getTitle()); $this->xmlElement('Description',null,$object->getDescription()); $this->xmlElement('Owner',null,$object->getOwner()); $this->xmlElement('CreateDate',null,$object->getCreateDate()); $this->xmlElement('LastUpdate',null,$object->getLastUpdateDate()); $this->xmlElement('ImportId',null,$object->getImportId()); foreach(ilObject::_getAllReferences($object->getId()) as $ref_id) { $attr = array('ref_id' => $ref_id, 'parent_id'=> $tree->getParentId(intval($ref_id))); $attr['accessInfo'] = $this->__getAccessInfo($object,$ref_id); $this->xmlStartTag('References',$attr); $this->__appendOperations($ref_id,$object->getType()); $this->xmlEndTag('References'); } $this->xmlEndTag('Object'); }
ilObjectXMLWriter::__appendOperations | ( | $ | a_ref_id, | |
$ | a_type | |||
) |
Definition at line 153 of file class.ilObjectXMLWriter.php.
References $ops, $ops_id, $rbacreview, enabledOperations(), and ilXmlWriter::xmlElement().
Referenced by __appendObject().
{ global $ilAccess,$rbacreview; if($this->enabledOperations()) { $ops = $rbacreview->getOperationsOnTypeString($a_type); if (is_array($ops)) { foreach($ops as $ops_id) { $operation = $rbacreview->getOperation($ops_id); if($ilAccess->checkAccessOfUser($this->getUserId(),$operation['operation'],'view',$a_ref_id)) { $this->xmlElement('Operation',null,$operation['operation']); } } } } return true; }
ilObjectXMLWriter::__buildFooter | ( | ) |
Definition at line 188 of file class.ilObjectXMLWriter.php.
References ilXmlWriter::xmlEndTag().
Referenced by start().
{ $this->xmlEndTag('Objects'); }
ilObjectXMLWriter::__buildHeader | ( | ) |
Definition at line 177 of file class.ilObjectXMLWriter.php.
References ilXmlWriter::xmlHeader(), ilXmlWriter::xmlSetDtdDef(), ilXmlWriter::xmlSetGenCmt(), and ilXmlWriter::xmlStartTag().
Referenced by start().
{ $this->xmlSetDtdDef("<!DOCTYPE Objects PUBLIC \"-//ILIAS//DTD ILIAS Repositoryobjects//EN\" \"".ILIAS_HTTP_PATH."/xml/ilias_object_3_7.dtd\">"); $this->xmlSetGenCmt("Export of ILIAS objects"); $this->xmlHeader(); $this->xmlStartTag("Objects"); return true; }
ilObjectXMLWriter::__getAccessInfo | ( | &$ | object, | |
$ | ref_id | |||
) |
Definition at line 193 of file class.ilObjectXMLWriter.php.
References $ref_id, and getUserId().
Referenced by __appendObject().
{ global $ilAccess; include_once 'Services/AccessControl/classes/class.ilAccessHandler.php'; $ilAccess->checkAccessOfUser($this->getUserId(),'read','view',$ref_id,$object->getType(),$object->getId()); if(!$info = $ilAccess->getInfo()) { return 'granted'; } else { return $info[0]['type']; } }
ilObjectXMLWriter::__getObjects | ( | ) |
Definition at line 92 of file class.ilObjectXMLWriter.php.
Referenced by start().
{
return $this->objects ? $this->objects : array();
}
ilObjectXMLWriter::enabledOperations | ( | ) |
Definition at line 82 of file class.ilObjectXMLWriter.php.
Referenced by __appendOperations().
{
return $this->enable_operations;
}
ilObjectXMLWriter::enableOperations | ( | $ | a_status | ) |
Definition at line 75 of file class.ilObjectXMLWriter.php.
{ $this->enable_operations = $a_status; return true; }
ilObjectXMLWriter::getUserId | ( | ) |
Definition at line 70 of file class.ilObjectXMLWriter.php.
Referenced by __getAccessInfo().
{
return $this->user_id;
}
ilObjectXMLWriter::getXML | ( | ) |
Definition at line 115 of file class.ilObjectXMLWriter.php.
References ilXmlWriter::xmlDumpMem().
{ return $this->xmlDumpMem(FALSE); }
ilObjectXMLWriter::ilObjectXMLWriter | ( | ) |
constructor
string | xml version | |
string | output encoding | |
string | input encoding public |
Definition at line 56 of file class.ilObjectXMLWriter.php.
References $ilias, and ilXmlWriter::ilXmlWriter().
{ global $ilias,$ilUser; parent::ilXmlWriter(); $this->ilias =& $ilias; $this->user_id = $ilUser->getId(); }
ilObjectXMLWriter::setObjects | ( | $ | objects | ) |
Definition at line 87 of file class.ilObjectXMLWriter.php.
References $objects.
{ $this->objects = $objects; }
ilObjectXMLWriter::setUserId | ( | $ | a_id | ) |
Definition at line 66 of file class.ilObjectXMLWriter.php.
{ $this->user_id = $a_id; }
ilObjectXMLWriter::start | ( | ) |
Definition at line 97 of file class.ilObjectXMLWriter.php.
References $objects, __appendObject(), __buildFooter(), __buildHeader(), and __getObjects().
{ if(!count($objects = $this->__getObjects())) { return false; } $this->__buildHeader(); foreach($this->__getObjects() as $object) { $this->__appendObject($object); } $this->__buildFooter(); return true; }
ilObjectXMLWriter::$enable_operations = false |
Definition at line 45 of file class.ilObjectXMLWriter.php.
ilObjectXMLWriter::$ilias |
Definition at line 42 of file class.ilObjectXMLWriter.php.
Referenced by ilObjectXMLWriter().
ilObjectXMLWriter::$objects = array() |
Definition at line 46 of file class.ilObjectXMLWriter.php.
Referenced by setObjects(), and start().
ilObjectXMLWriter::$user_id = 0 |
Definition at line 47 of file class.ilObjectXMLWriter.php.
ilObjectXMLWriter::$xml |
Definition at line 44 of file class.ilObjectXMLWriter.php.